Backend do ecossistema FitStream, responsável pelo gerenciamento de treinos, nutrição, regras de negócio, persistência de dados e processamento de eventos em tempo real.
Desenvolvido com Java 21 e Spring Boot, o projeto utiliza uma arquitetura modular, processamento assíncrono com Apache Kafka e Server-Sent Events (SSE) para comunicação em tempo real com o frontend.
Frontend: FitStream App
O FitStream é uma aplicação voltada ao acompanhamento de treinos e nutrição, permitindo registrar e acompanhar métricas como exercícios, cargas, calorias e macronutrientes.
O backend centraliza as regras de negócio e disponibiliza uma API REST, além de mecanismos de atualização em tempo real para o frontend.
- Gerenciamento de treinos e exercícios
- Registro e acompanhamento de cargas
- Controle de calorias e macronutrientes
- Atualização de dados em tempo real via SSE
- Processamento assíncrono de eventos com Apache Kafka
- Persistência em PostgreSQL
- Versionamento do schema com Flyway
- Testes unitários, integração e funcionais
- Pipeline de integração contínua com GitHub Actions
| Categoria | Tecnologia |
|---|---|
| Linguagem | Java 21 |
| Framework | Spring Boot |
| Build | Maven |
| Banco de dados | PostgreSQL 16 |
| Migrations | Flyway |
| Mensageria | Apache Kafka |
| Comunicação em tempo real | Server-Sent Events (SSE) |
| Containerização | Docker |
| Testes unitários | JUnit, Mockito |
| Testes de integração | Spring Boot Test |
| Testes funcionais | Jest, Supertest |
| Testes funcionais | Node.js, pnpm |
| CI | GitHub Actions |
graph TD
User["Usuário / Cliente"] -->|HTTP / Navegador| FE["Front-end\n(React + Vite)\n[Repositório Separado]"]
subgraph "Backend - Spring Boot & Mensageria"
FE -->|REST API & SSE| BE[" Spring Boot API\n(Java 21 / Virtual Threads)"]
BE -->|Persistência| DB[("(PostgreSQL 16\nFlyway Migrations)")]
BE -->|Disparo de Eventos| KF[" Apache Kafka\n(Event Broker)"]
KF -->|Consumo Assíncrono| BE
end
style User fill:#2D3748,stroke:#E2E8F0,stroke-width:2px,color:#FFFFFF
style FE fill:#1A365D,stroke:#63B3ED,stroke-width:2px,color:#FFFFFF
style BE fill:#22543D,stroke:#68D391,stroke-width:2px,color:#FFFFFF
style DB fill:#744210,stroke:#F6E05E,stroke-width:2px,color:#FFFFFF
style KF fill:#742A2A,stroke:#FC8181,stroke-width:2px,color:#FFFFFF
Na raiz do projeto, execute:
docker compose up -d --buildhttp://localhost:8080/Ou acesse a documentação Swagger através do navegador:
http://localhost:8080/swagger-ui.html
Para executar os testes unitários e de integração:
./mvnw clean verify
Os testes funcionais utilizam Jest + Supertest e são executados de maneira independente através do Node
Acesse a pasta de testes:
cd __functionalTest
pnpm install
pnpm test