Skip to content

hanrrysantos/studytracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudyTracker - Sistema de Gerenciamento de Estudos 📖

Java Spring Postgres Supabase Swagger Render Apache Maven


🧭 Visão Geral

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.


🚀 Funcionalidades Principais

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

🛠️ Tecnologias Utilizadas

🌐 Frontend (Em desenvolvimento)

⚙️ Backend

  • 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

🗄️ Banco de Dados

  • PostgreSQL: Banco de dados relacional robusto hospedado no Supabase.
  • Flyway: Versionamento automatizado do esquema do banco de dados (Migrations).

🚧 Infraestrutura

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

🧩 Arquitetura

O projeto segue o padrão em camadas (Layered Architecture) para garantir desacoplamento e fácil manutenção:

  1. Controller: Exposição dos endpoints REST (/courses, /lessons, /auth).
  2. Service: Regras de negócio, validações e cálculos.
  3. Repository: Camada de acesso a dados (JPA/Hibernate).
  4. Security: Filtros de segurança (JWT).
  5. DTO: Evitando a exposição direta das entidades do banco e melhorando a segurança da API.
Arquitetura do StudyTracker

🧪 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

  1. Acesse o Swagger
  2. Utilize o endpoint /auth/login com um usuário existente
  3. Copie o token JWT retornado
  4. Clique no botão "Authorize" no Swagger
  5. Cole o token no formato: Bearer {token}
  6. Agora você pode acessar os endpoints protegidos

💾 Instalação e Execução

Pré-requisitos

  • Docker e Docker compose instalados
  • Java 21 (se for rodar via IDE)

1. Clone o repositório

git clone https://github.com/hanrrysantos/studytracker.git
cd studytracker

2. Execute via Docker

docker-compose up -d

💾 Estrutura de Dados

Diagrama de Banco de Dados StudyTracker

🧠 Autor

Hanrry Desenvolvedor Backend Java em formação | Foco em Spring Boot e Arquitetura de Software

LinkedIn GitHub


📜 Licença

Este projeto é de uso livre para fins de estudo e portfólio.

About

Sistema de Gerenciamento de Estudos

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors