LummyEdu é uma plataforma educacional desenvolvida com foco em inclusão, acessibilidade e personalização da aprendizagem. Inspirada por metodologias ativas e pela lógica da gamificação, a solução visa transformar a experiência de ensino-aprendizagem para alunos com TDAH, dislexia e outras necessidades específicas.
O backend da plataforma é desenvolvido em Kotlin, utilizando o ecossistema Spring Boot. A arquitetura segue os princípios de modularidade e escalabilidade, permitindo integração com serviços externos, como o módulo de IA via FastAPI + Ollama.
- Kotlin + Java + Spring Boot 3.x
- Spring Web + Spring Data JPA
- MysqlSQL / Firebase (dependendo do módulo)
- Spring Security (futuramente com OAuth2)
- OpenAPI (Swagger) para documentação
- Integração com módulo de IA via REST API
- LGPD compliance com coleta mínima de dados
A plataforma tem como metas:
- Oferecer lições modulares com feedbacks imediatos e acessíveis.
- Gerar questões interativas e adaptativas com base no perfil do aluno.
- Estimular autonomia, motivação e autoestima de estudantes com dificuldades de atenção e leitura.
- Viabilizar educação personalizada, ajustando trilhas de aprendizado com base em desempenho.
- Gamificação Educacional: pontuações, conquistas, metas diárias.
- Aprendizagem Adaptativa: ajuste de conteúdo com base em respostas e comportamento.
- Tecnologias Assistivas: fonte OpenDyslexic, feedbacks auditivos, navegação simplificada.
- Trilhas de conhecimento dinâmicas, baseadas no desempenho contínuo do aluno.
O backend em Kotlin consome endpoints da API de IA para:
- Geração automática de lições em tempo real com acessibilidade.
- Geração de questões de múltipla escolha com base em prompts curriculares.
- Análise de texto para personalização de conteúdo e feedback.
A aplicação é planejada com Privacy by Design, e adota práticas compatíveis com a LGPD, tais como:
- Coleta mínima de dados sensíveis.
- Consentimento explícito dos responsáveis legais.
- Armazenamento seguro e criptografado.
- Direito ao esquecimento e anonimização de dados.
- Protótipo funcional do backend com endpoints REST
- Integração com serviço de IA via HTTP
- Cadastro e progresso por trilhas gamificadas
- Implementação de autenticação OAuth2
- Painel do professor para monitoramento de desempenho
- Deploy em nuvem com CI/CD e escalabilidade horizontal
- Java 17+
- Docker (opcional para ambiente containerizado)
- MysqlSQL ou Firebase (conforme configuração)
./gradlew build
./gradlew bootRunOu utilize o Docker Compose:
cd docker/dev
docker-compose up --buildEdite os arquivos em src/main/resources conforme necessário:
application.propertiesdatabase-dev.properties
./gradlew testRelatórios: build/reports/tests/test/
src/
main/
kotlin/ # Código-fonte principal
resources/ # Configurações e assets
test/
kotlin/ # Testes automatizados
docker/ # Arquivos de containerização
build/ # Saída de build e relatórios
scripts/ # Scripts utilitários
lib/ # Ferramentas externas
logs/ # Logs da aplicação
nginx/ # Configuração de proxy reverso
docs/ # Documentação (OpenAPI, Postman, API detalhada)
tests/k6/ # Testes de performance (k6)
- Swagger UI (após iniciar): http://localhost:8080/swagger-ui/index.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
- Especificação estática:
scripts/openapi.yaml - Detalhamento da API: veja
docs/API.md
Gerar OpenAPI + coleção Postman automaticamente (sobe app em perfil de teste, baixa JSON e converte):
Windows PowerShell:
./gradlew generateApiDocsAndCollectionLinux/macOS:
./gradlew generateApiDocsAndCollectionSaídas serão salvas em:
docs/openapi/openapi.jsondocs/postman/LummyEdu.postman_collection.json
Windows PowerShell (shell interativo dentro do serviço lummy):
scripts/dev-exec.ps1 -InteractiveWindows PowerShell (rodar um comando):
scripts/dev-exec.ps1 -Cmd "gradle --version"Linux/macOS (shell interativo):
bash scripts/dev-exec.sh INTERACTIVE=1Linux/macOS (rodar comando):
bash scripts/dev-exec.sh CMD="gradle --version"Pull requests são bem-vindos! Siga as convenções descritas no arquivo COMMITED.
Para dúvidas, sugestões ou suporte, abra uma issue ou envie e-mail para o mantenedor.
Notas:
- Ajuste BASE_URL conforme o ambiente.
- Se endpoints exigirem autenticação, adicione cabeçalho Authorization no script k6.
- Para rodar via Docker em Windows e acessar o host: use http://host.docker.internal:8080.
Observação: Certifique-se de que o ambiente dev esteja em execução (docker/dev/docker-compose.yml) antes de rodar os testes k6.
O backend expõe métricas no endpoint /actuator/prometheus via Micrometer. O docker-compose de desenvolvimento inclui Prometheus e Grafana prontos para uso.
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (login: admin / senha: admin)
Um dashboard inicial "Spring Boot Overview" é provisionado automaticamente.
Para subir todo o ambiente, incluindo monitoramento:
docker compose -f docker/dev/docker-compose.yml up --buildPara subir apenas Prometheus e Grafana (assumindo o serviço lummy ativo):
docker compose -f docker/dev/docker-compose.yml up -d prometheus grafanaUm compose de produção está disponível em docker/prod/docker-compose.yml com os serviços:
- App Spring Boot (perfil
prod) - Prometheus (scrape no Actuator em 8081)
- Grafana (datasource e dashboards provisionados)
- MySQL 8.0 (banco relacional principal)
Passos gerais:
- Faça build da imagem do app e publique em um registry (ou use build local).
- Local:
docker build -t lummyedu/app:latest . - Registry (exemplo):
docker tag lummyedu/app:latest <seu-registry>/lummyedu/app:latestedocker push <seu-registry>/lummyedu/app:latest
- No servidor, crie um arquivo
.envcom as senhas:
GRAFANA_ADMIN_USER=adminGRAFANA_ADMIN_PASSWORD=(defina uma senha forte)MYSQL_ROOT_PASSWORD=(defina uma senha forte para o MySQL)MYSQL_DATABASE=(defina o nome do banco de dados)
- Suba o stack:
docker compose -f docker/prod/docker-compose.yml --env-file .env up -dLummyEdu representa uma iniciativa estratégica e inovadora no campo da Educação Inclusiva Digital, integrando o poder da IA com práticas pedagógicas centradas no aluno, tecnologia Kotlin moderna e uma visão ética e socialmente responsável.