O Study Tracker é uma aplicação focada no acompanhamento e na gestão detalhada do progresso acadêmico do usuário. A ferramenta permite que o estudante organize sua jornada de aprendizado através de categorias, cursos, módulos e aulas.
Por meio de uma interface robusta baseada em Java e Spring Boot, o sistema não apenas registra o conteúdo, mas monitora rigorosamente o progresso individual, garantindo a integridade dos dados e a persistência de sessões de estudo detalhadas.
- 🔒 Autenticação Segura: Login e Cadastro de usuários com JWT (JSON Web Token).
- 📖 Organização Hierárquica: Gestão completa de aprendizado organizada por Categorias, Cursos, Módulos e Aulas.
- 🖥️ Monitoramento de Progresso: Registro rigoroso de aulas concluídas com data e hora, impedindo duplicidade através de restrições de integridade no banco de dados.
- ⏰ Sessões de Estudo: Lançamento de horas estudadas com campo para notas personalizadas, permitindo um histórico detalhado da evolução acadêmica.
- 🧪 Interface de Testes (Swagger): Documentação interativa configurada com exemplos reais, facilitando o teste imediato de todos os endpoints da API.
- 🚧 Infraestrutura Moderna: Aplicação totalmente conteinerizada com Docker e versionamento de banco de dados via Flyway, pronta para deploys escaláveis na nuvem.
- 🛡️ Segurança de Dados: Senhas criptografadas (BCrypt) e uso de Constraints (Unique e Foreign Keys) para garantir que cada registro de progresso esteja vinculado corretamente ao usuário e ao conteúdo.
- Java 21
- Spring Boot 3
- Spring Security: Autenticação e Autorização
- Spring Data JPA: Persistência de dados
- MapStruct: Mapeamento inteligente de DTOs
- Maven: Gerenciamento de dependências e build do Projeto
- PostgreSQL: Banco de dados relacional robusto hospedado no Supabase.
- Flyway: Versionamento automatizado do esquema do banco de dados (Migrations).
- Docker: Conteinerização da API para padronização de ambientes.
- Render: Plataforma para hosting da API e deploy contínuo (CI/CD).
- Swagger: Documentação interativa para testes e integração.
O projeto segue o padrão em camadas (Layered Architecture) para garantir desacoplamento e fácil manutenção:
- Controller: Exposição dos endpoints REST (
/courses,/lessons,/auth). - Service: Regras de negócio, validações e cálculos.
- Repository: Camada de acesso a dados (JPA/Hibernate).
- Security: Filtros de segurança (JWT).
- DTO: Evitando a exposição direta das entidades do banco e melhorando a segurança da API.
🧪 Teste agora mesmo: (Por estar em uma hospedagem gratuita, o primeiro carregamento da API pode levar cerca de 1 minuto para iniciar)
A API está online e pronta para testes através da documentação interativa: https://studytracker-8uxv.onrender.com/swagger-ui/index.html
- Acesse o Swagger
- Utilize o endpoint /auth/login com um usuário existente
- Copie o token JWT retornado
- Clique no botão "Authorize" no Swagger
- Cole o token no formato: Bearer {token}
- Agora você pode acessar os endpoints protegidos
- Docker e Docker compose instalados
- Java 21 (se for rodar via IDE)
git clone https://github.com/hanrrysantos/studytracker.git
cd studytrackerdocker-compose up -dHanrry Desenvolvedor Backend Java em formação | Foco em Spring Boot e Arquitetura de Software
Este projeto é de uso livre para fins de estudo e portfólio.

