A HealthSync API é uma solução backend robusta desenvolvida em Java 17 + Spring Boot 3, criada para otimizar e gerenciar treinos personalizados, exercícios e o relacionamento entre treinadores e alunos.
O projeto segue o padrão RESTful, com autenticação via JWT e arquitetura em camadas (Controller → Service → Repository), garantindo segurança, escalabilidade e integração simplificada com aplicações frontend.
-
👤 Gerenciamento de Usuários
CRUD completo para usuários, com distinção entre perfis (ALUNO,TREINADOR). -
🔐 Segurança JWT
Autenticação e autorização de endpoints por role utilizando Spring Security + JWT. -
🏋️ Exercícios e Categorias
CRUD de exercícios e agrupamento por categorias para melhor organização. -
💪 Treinos Personalizados
Criação de treinos associados a exercícios e a alunos específicos. -
🔄 Vínculo Treinador-Aluno
Treinadores autenticados podem cadastrar alunos e vinculá-los automaticamente. -
📈 Rastreamento de Progresso
Marcação de treinos concluídos com atualização automática de métricas.
A arquitetura utiliza DTOs para proteger dados sensíveis e Spring Data JPA para persistência.
Abaixo, um diagrama representando as entidades e seus relacionamentos:
erDiagram
USUARIO {
Long id
String nomeCompleto
String email
String senha
LocalDate dataNascimento
TipoUsuario tipoUsuario
boolean ativo
}
CATEGORIA {
Long id
String nome
String descricao
}
EXERCICIOS {
Long id
String nome
String descricaoDetalhada
DificuldadeExercicio nivelDificuldade
String urlVideoDemonstrativo
Long categoria_id
}
TREINOS {
Long id
String nome
String descricao
boolean concluido
Integer tempoMinutos
Long usuario_id
}
LISTA_ALUNO {
Long id
Long id_aluno
Long id_treinador
LocalDateTime dataVinculo
}
TREINO_EXERCICIO {
Long id
Long id_treino
Long id_exercicio
}
USUARIO ||--o{ TREINOS : "cria"
USUARIO ||--o{ LISTA_ALUNO : "é aluno em"
USUARIO ||--o{ LISTA_ALUNO : "é treinador de"
TREINOS ||--|{ TREINO_EXERCICIO : "contém"
EXERCICIOS ||--|{ TREINO_EXERCICIO : "faz parte de"
CATEGORIA ||--o{ EXERCICIOS : "agrupa"
| Tecnologia / Ferramenta | Uso no Projeto |
|---|---|
| Java 17 | Linguagem principal |
| Spring Boot 3.x | Framework backend |
| Spring Data JPA / Hibernate | ORM e persistência |
| MySQL / H2 | Banco de dados (produção/dev) |
| Spring Security + JWT | Autenticação e autorização |
| Bean Validation (JSR 380) | Validação de dados |
| Swagger / OpenAPI | Documentação da API |
| JUnit / Insomnia | Testes e requisições |
Após rodar o projeto, a documentação estará disponível em:
http://localhost:8080/swagger-ui.html
# 1. Clone o repositório:
git clone https://github.com/Grupo-02-Turma-Java-82/HealthSync_API.git
# 2. Abra na IDE de sua preferência (IntelliJ, Eclipse, VSCode com extensão Java)
# 3. Configure o banco de dados no application.properties
# 4. Execute:
./mvnw spring-boot:run| Nome | GitHub | Função |
|---|---|---|
| Bruno Godoy | Brunogodoy2911 | Dev/Master |
| Felipe Peronica | feperonica | Dev |
| Jovani de Souza | JovaniOUnico | Dev |
| Lívia D’Alexandri | liviadalexandri | Dev |
| Luiza Gonçalves | luizaeg | Tester |
| Maria Helena | squarcinihelena | Dev |
| Rafaela Giometti | rafagiometti | Dev |
🟡 Em desenvolvimento — funcionalidades principais concluídas, melhorias e novas features em andamento.
.png?updatedAt=1752033925519)