Skip to content

IKauedev/lummyedu-backend

Repository files navigation

🌟 LummyEdu — Plataforma Educacional Inclusiva

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.

🧱 Arquitetura do Backend

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.

Tecnologias e Componentes

  • 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

🎯 Objetivo da Aplicação

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.

🧠 Diferenciais Pedagógicos

  • 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.

🔗 Integração com IA (Módulo FastAPI + Ollama)

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.

🔐 Segurança e Privacidade

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.

📈 Roadmap Evolutivo

  • 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

🚀 Instalação e Execução

Pré-requisitos

  • Java 17+
  • Docker (opcional para ambiente containerizado)
  • MysqlSQL ou Firebase (conforme configuração)

Passos para rodar localmente

./gradlew build
./gradlew bootRun

Ou utilize o Docker Compose:

cd docker/dev
docker-compose up --build

Configuração de ambiente

Edite os arquivos em src/main/resources conforme necessário:

  • application.properties
  • database-dev.properties

Testes

./gradlew test

Relatórios: build/reports/tests/test/

🗂️ Estrutura de Pastas

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)

📋 Documentação e Exemplos de Uso

Gerar OpenAPI + coleção Postman automaticamente (sobe app em perfil de teste, baixa JSON e converte):

Windows PowerShell:

./gradlew generateApiDocsAndCollection

Linux/macOS:

./gradlew generateApiDocsAndCollection

Saídas serão salvas em:

  • docs/openapi/openapi.json
  • docs/postman/LummyEdu.postman_collection.json

Executar comandos dentro do container (dev)

Windows PowerShell (shell interativo dentro do serviço lummy):

scripts/dev-exec.ps1 -Interactive

Windows PowerShell (rodar um comando):

scripts/dev-exec.ps1 -Cmd "gradle --version"

Linux/macOS (shell interativo):

bash scripts/dev-exec.sh INTERACTIVE=1

Linux/macOS (rodar comando):

bash scripts/dev-exec.sh CMD="gradle --version"

🛠️ Contribuição

Pull requests são bem-vindos! Siga as convenções descritas no arquivo COMMITED.

📬 Contato

Para dúvidas, sugestões ou suporte, abra uma issue ou envie e-mail para o mantenedor.

🔗 Links Úteis

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.

📊 Monitoramento (Grafana + Prometheus)

O backend expõe métricas no endpoint /actuator/prometheus via Micrometer. O docker-compose de desenvolvimento inclui Prometheus e Grafana prontos para uso.

Um dashboard inicial "Spring Boot Overview" é provisionado automaticamente.

Para subir todo o ambiente, incluindo monitoramento:

docker compose -f docker/dev/docker-compose.yml up --build

Para subir apenas Prometheus e Grafana (assumindo o serviço lummy ativo):

docker compose -f docker/dev/docker-compose.yml up -d prometheus grafana

🏭 Produção (Docker Compose)

Um 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:

  1. 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:latest e docker push <seu-registry>/lummyedu/app:latest
  1. No servidor, crie um arquivo .env com as senhas:
  • GRAFANA_ADMIN_USER=admin
  • GRAFANA_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)
  1. Suba o stack:
docker compose -f docker/prod/docker-compose.yml --env-file .env up -d

💡 Conclusão

LummyEdu 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.

About

LummyEdu is an educational platform developed with a focus on inclusion, accessibility and personalized learning. Inspired by active methodologies and the logic of gamification, the solution aims to transform the teaching-learning experience for students with ADHD, dyslexia and other specific needs.

Topics

Resources

License

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors