Skip to content

ThinkAM/neurospark

Repository files navigation

React 19 TypeScript Tailwind CSS 4 tRPC 11 Drizzle ORM MIT License

🇧🇷 Português | 🇺🇸 English - Read this in English | 🇪🇸 Español - Leer en español

NeuroSpark

Tecnologia e Código Aberto a Serviço da Neurodiversidade

NeuroSpark é uma plataforma web de código aberto que utiliza avaliação cognitiva adaptativa para personalizar conteúdos educacionais e recursos de bem-estar. A aplicação não diagnostica condições neurológicas, mas ajuda usuários a entender melhor seus padrões cognitivos e receber recomendações de conteúdo otimizadas para seu perfil.

Acesse a plataforma: neurospark.tbldr.com.br


A História por Trás do NeuroSpark

NeuroSpark nasceu de uma jornada pessoal de autoconhecimento. Felipe Albuquerque, seu criador, passou por uma avaliação neuropsicológica que revelou um padrão cognitivo diferenciado: altas habilidades/superdotação com hiperfoco intenso e alta criatividade, apesar de um QI médio. Este diagnóstico mudou sua perspectiva sobre como seu cérebro funciona.

Antes da avaliação, Felipe enfrentava dificuldades em regular seu hiperfoco e alternar entre tarefas prazerosas e menos prazerosas. Após validação psiquiátrica e prescrição de lítio 450mg, experimentou transformações significativas: melhor qualidade de sono, acordar mais descansado e, principalmente, conseguir dosar melhor seu hiperfoco e executar tarefas menos prazerosas com maior facilidade.

Esta experiência pessoal revelou uma verdade importante: neurodiversidade não é um problema a ser corrigido, mas uma realidade a ser compreendida e acomodada. NeuroSpark existe para ajudar outras pessoas a encontrar ferramentas e conteúdos adaptados ao seu próprio padrão cognitivo.


Missão

Democratizar o acesso a ferramentas de autoconhecimento cognitivo e criar uma ponte entre tecnologia e neurodiversidade, permitindo que cada pessoa receba conteúdo adaptado ao seu próprio estilo de aprendizagem e processamento de informações.


Funcionalidades

Avaliação Cognitiva Adaptativa

A aplicação oferece um quiz de 12 perguntas que avalia seis dimensões cognitivas: foco, atenção, sobrecarga, estrutura, tomada de decisão e preferência de conteúdo. Com base nos resultados, o usuário é classificado em um de três perfis cognitivos, cada um recebendo conteúdo adaptado de forma diferente.

Perfil Descrição Estilo de Conteúdo
Sobrecarga Cognitiva Tende a se sentir sobrecarregado em ambientes complexos Resumos curtos, timestamps, passos claros, pausas definidas
Baixa Atenção Dificuldade em manter atenção prolongada Checklists de ação, próximas ações, progresso visível, reforço positivo
Analítico Prefere análise profunda e fundamentada Contexto completo, links relacionados, fundamentação científica

Jornada do Usuário em 4 Níveis

O fluxo da aplicação é organizado em quatro níveis progressivos de profundidade:

Nível 1 - Quiz Geral: O usuário responde 12 perguntas sobre seus padrões cognitivos (aproximadamente 5 minutos). O resultado é salvo no banco de dados vinculado à conta do usuário.

Nível 2 - Conteúdo Adaptado: Com base no perfil, o usuário recebe recomendações de vídeos do YouTube adaptados. Cada vídeo é apresentado com resumos, checklists e contexto otimizados para o perfil cognitivo do usuário. Quando não há conteúdo pré-curado, a aplicação busca dinamicamente no YouTube Data API v3.

Nível 3 - Aprofundamento por Categoria: O usuário escolhe uma das seis categorias (foco, organização, ansiedade, comunicação, rotina, aprendizagem) e responde um deep quiz específico. A LLM gera insights personalizados com base nas respostas.

Nível 4 - Comunidade de Profissionais: Diretório de profissionais curados por Felipe (neuropsicólogos, psiquiatras, psicólogos) com notas pessoais sobre cada um, além da jornada pessoal de autoconhecimento e tratamento. Usuários autenticados podem sugerir novos profissionais e compartilhar suas próprias experiências.

Autenticação e Conta

O sistema possui autenticação própria por email com cadastro completo (nome, nickname, email, senha). O campo "Como quer ser chamado" (nickname) é usado para personalizar a experiência na plataforma e nos emails. A recuperação de senha funciona via email com token de uso único e expiração de 1 hora.

Busca Dinâmica no YouTube

Quando não há conteúdo pré-curado disponível para uma categoria, a aplicação busca automaticamente no YouTube Data API v3 vídeos relevantes, aplicando filtros de duração, canal e data otimizados para cada perfil cognitivo.


Stack Tecnológico

O projeto utiliza uma arquitetura full-stack moderna com tipagem end-to-end:

Camada Tecnologias
Frontend React 19, TypeScript, Tailwind CSS 4, shadcn/ui, Wouter
Backend Express 4, tRPC 11 (API type-safe), Superjson
Banco de Dados MySQL/TiDB, Drizzle ORM, Drizzle Kit (migrações)
Autenticação JWT (jose), bcrypt, Nodemailer (SMTP)
APIs YouTube iframe embed, YouTube Data API v3, LLM (adaptação de conteúdo)
Build Vite, esbuild, TypeScript 5.9
Testes Vitest

Começando

Pré-requisitos

O projeto requer Node.js 22+ e pnpm como gerenciador de pacotes. Para funcionalidade completa, é necessário um banco de dados MySQL/TiDB e configuração de SMTP para envio de emails.

Instalação

# Clonar o repositório
git clone https://github.com/ThinkAM/neurospark.git
cd neurospark

# Instalar dependências
pnpm install

# Configurar variáveis de ambiente
# Crie um arquivo .env com as credenciais necessárias:
# DATABASE_URL, JWT_SECRET, SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_FROM

# Aplicar migrações do banco de dados
pnpm db:push

# Iniciar servidor de desenvolvimento
pnpm dev

A aplicação estará disponível em http://localhost:3000.

Build para Produção

# Compilar para produção
pnpm build

# O build gera arquivos em dist/ (frontend + backend)

Testes

# Executar todos os testes
pnpm test

Estrutura do Projeto

neurospark/
├── client/
│   ├── src/
│   │   ├── components/
│   │   │   ├── AdaptiveVideoCard.tsx      # Card de vídeo adaptativo por perfil
│   │   │   ├── AuthModal.tsx              # Modal de login/cadastro
│   │   │   ├── CognitiveQuiz.tsx          # Quiz de avaliação cognitiva
│   │   │   ├── AddProfessionalModal.tsx   # Modal para adicionar profissional
│   │   │   └── AddJourneyModal.tsx        # Modal para entrada de jornada
│   │   ├── contexts/
│   │   │   ├── CognitiveProfileContext.tsx # Estado do perfil cognitivo
│   │   │   └── ThemeContext.tsx            # Tema claro/escuro
│   │   ├── data/
│   │   │   ├── cognitiveProfiles.ts       # Definições de perfis e quiz
│   │   │   ├── mockVideoContent.ts        # Dados pré-curados de vídeos
│   │   │   └── youtubeService.ts          # Serviço de busca no YouTube
│   │   ├── pages/
│   │   │   ├── Home.tsx                   # Landing page
│   │   │   ├── RecommendedContent.tsx     # Conteúdos recomendados (Nível 2)
│   │   │   ├── DeepQuiz.tsx               # Quiz de aprofundamento (Nível 3)
│   │   │   ├── Professionals.tsx          # Diretório de profissionais (Nível 4)
│   │   │   ├── About.tsx                  # Sobre o projeto
│   │   │   └── ResetPassword.tsx          # Redefinição de senha
│   │   ├── App.tsx                        # Roteamento principal
│   │   ├── main.tsx                       # Entry point com tRPC provider
│   │   └── index.css                      # Estilos globais e tema
│   └── index.html
├── server/
│   ├── _core/                             # Infraestrutura (OAuth, contexto, LLM, etc.)
│   ├── authRouter.ts                      # Rotas de autenticação (registro, login, senha)
│   ├── routers.ts                         # Procedures tRPC (quiz, conteúdo, profissionais)
│   ├── db.ts                              # Helpers de banco de dados
│   └── storage.ts                         # Helpers de armazenamento S3
├── drizzle/
│   ├── schema.ts                          # Esquema do banco (users, profiles, quizzes, etc.)
│   └── migrations/                        # Migrações geradas pelo Drizzle Kit
├── shared/
│   ├── const.ts                           # Constantes compartilhadas
│   └── types.ts                           # Tipos compartilhados
├── vitest.config.ts
├── package.json
└── tsconfig.json

Banco de Dados

O projeto utiliza MySQL/TiDB com Drizzle ORM. O esquema inclui as seguintes tabelas:

Tabela Descrição
users Usuários com nome, nickname, email, senha hash, role e método de login
cognitive_profiles Resultados de quiz cognitivo com tipo de perfil e scores por dimensão
deep_quiz_results Resultados de deep quizzes por categoria com insights gerados por LLM
professionals Profissionais recomendados (neuropsicólogos, psiquiatras, etc.)
journey_entries Entradas de jornada pessoal (diagnóstico, medicação, rotina, etc.)
password_reset_tokens Tokens de recuperação de senha (uso único, expiração de 1 hora)

Design e Acessibilidade

NeuroSpark segue princípios de design humanista digital, priorizando a experiência de usuários neurodivergentes:

Aspecto Implementação
Paleta de Cores Azul-violeta (confiança), verde-menta (esperança), âmbar (energia)
Tipografia Poppins (headings) + Inter (body) para hierarquia clara
Espaçamento Generoso e respirável para reduzir carga visual
Contraste Otimizado para legibilidade em diferentes estilos cognitivos
Acessibilidade WCAG 2.1 AA compliant

Contribuindo

Contribuições são bem-vindas! O projeto aceita contribuições em diversas áreas: desenvolvimento, design, pesquisa, comunidade e tradução.

# Fork o projeto e clone
git clone https://github.com/SEU_USUARIO/neurospark.git
cd neurospark

# Crie uma branch para sua feature
git checkout -b feature/MinhaFeature

# Faça suas alterações e commit
git commit -m 'Adiciona MinhaFeature'

# Push e abra um Pull Request
git push origin feature/MinhaFeature

Diretrizes de Contribuição

Mantenha a consistência com o estilo de código existente e adicione testes para novas funcionalidades. Respeite os princípios de acessibilidade e inclusão em todas as alterações. Atualize a documentação conforme necessário.


Aviso Importante

NeuroSpark não é uma ferramenta de diagnóstico médico ou psicológico. A avaliação cognitiva serve apenas para autoconhecimento e personalização de conteúdo. Se você suspeita de uma condição neurológica ou de saúde mental, busque orientação de um profissional qualificado.


Roadmap

v1.0 - Concluído

  • Quiz cognitivo com 3 perfis e conteúdo adaptado
  • Banco de dados MySQL/TiDB com Drizzle ORM
  • Autenticação própria por email (registro, login, recuperação de senha)
  • Deep quizzes por categoria com insights gerados por LLM (Nível 3)
  • Diretório de profissionais curados e jornada pessoal (Nível 4, dados iniciais curados)
  • Busca dinâmica no YouTube Data API v3
  • Email personalizado com nickname do usuário

v1.1 - Próximo

  • Perfil do usuário editável com histórico de quizzes
  • Gamificação (badges, pontos, desafios)
  • Suporte multilíngue (EN, ES, PT)
  • Modo escuro e temas de acessibilidade

v2.0 - Visão de Futuro

  • Aplicativo mobile (React Native)
  • Integração com wearables (rastreamento de bem-estar)
  • IA para recomendações personalizadas avançadas
  • Comunidade de usuários e fórum

Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.


Autor

Felipe Albuquerque de Almeida - Idealizador e Arquiteto Principal

Arquiteto de Software e Analista de Sistemas com experiência em soluções escaláveis para fintech e tecnologia.

GitHub | LinkedIn | Instagram | X | Email


Suporte e Contato

Canal Link
Plataforma neurospark.tbldr.com.br
Issues GitHub Issues
Discussões GitHub Discussions
Email felip.abq@gmail.com
WhatsApp +55 47 99206 1302

Think A.M. é uma empresa fundada no Brasil com a missão de globalizar o talento brasileiro. Apesar do nome em inglês, nossas raízes são brasileiras e nosso compromisso é com a inovação acessível. Saiba mais em tbldr.com.br.


Desenvolvido com amor para a neurodiversidade

NeuroSpark: Porque cada cérebro é único e merece conteúdo adaptado.

About

Plataforma adaptativa de autoconhecimento e suporte cognitivo com vídeos do YouTube personalizados por perfil.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors