aqui deve ter:
- Diagrama de deploy
- Backend
- Definições de linguagem e bibliotecas
- Módulos do sistema
- Diagrama do sistema
- Diagrama de sequência
- Frontend
- Definições de Tecnologias
- Módulos do sistema
- Arquitetura básica do frontend
- Diagrama do sistema
- Diagrama de componentes
📋 Índice
🏗 Componentes
O projeto é dividido em três principais componentes:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │
│ Frontend │◄──►│ Backend │◄──►│ PostgreSQL │
│ (Next.js) │ │ (Spring Boot) │ │ (Database) │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Frontend: Aplicação Next.js com TypeScript, Tailwind CSS e shadcn/ui
- Backend: API REST com Spring Boot 3, Spring Security e JWT
- Database: PostgreSQL 16 com migrações Flyway
📁 Estrutura do Projeto
Organização dos Repositórios
O projeto está organizado em um monorepo com separação clara de responsabilidades:
conexao-treinamento/
├── backend/ # API Spring Boot
│ ├── src/
│ │ ├── main/java/ # Código fonte principal
│ │ │ └── org/conexaotreinamento/
│ │ │ ├── config/ # Configurações (Security, OpenAPI, etc.)
│ │ │ ├── controller/ # Controllers REST
│ │ │ ├── dto/ # Data Transfer Objects
│ │ │ ├── entity/ # Entidades JPA
│ │ │ ├── enums/ # Enumerações
│ │ │ ├── exception/ # Tratamento de exceções
│ │ │ ├── repository/ # Repositórios JPA
│ │ │ ├── service/ # Lógica de negócio
│ │ │ └── specification/ # Especificações para queries dinâmicas
│ │ ├── resources/
│ │ │ ├── db/migration/ # Scripts Flyway
│ │ │ └── application.properties
│ │ └── test/ # Testes unitários e integração
│ ├── Dockerfile
│ └── pom.xml
├── web/ # Frontend Next.js
│ ├── app/ # App Router (Next.js 13+)
│ │ ├── administrators/ # Páginas de administradores
│ │ ├── students/ # Páginas de alunos
│ │ ├── trainers/ # Páginas de treinadores
│ │ └── ...
│ ├── components/ # Componentes React reutilizáveis
│ │ ├── ui/ # Componentes base (shadcn/ui)
│ │ └── ...
│ ├── lib/ # Utilitários e configurações
│ │ ├── api-client/ # Cliente API gerado automaticamente
│ │ └── ...
│ ├── hooks/ # Custom React hooks
│ ├── Dockerfile
│ └── package.json
├── docs/ # Documentação adicional
├── docker-compose.yml # Ambiente de desenvolvimento
├── docker-compose.test.yml # Ambiente de testes
└── README.md
Principais Diretórios
/backend
)
Backend (- Controllers: Endpoints REST organizados por domínio
- Services: Lógica de negócio e regras da aplicação
- Repositories: Acesso a dados com Spring Data JPA
- DTOs: Objetos para transferência de dados entre camadas
- Entities: Modelos de dados JPA com relacionamentos
- Config: Configurações de segurança, CORS, OpenAPI, etc.
/web
)
Frontend (- App Router: Estrutura de rotas do Next.js 13+
- Components: Componentes React organizados por funcionalidade
- Lib: Cliente API auto-gerado, utilitários e configurações
- Hooks: Hooks customizados para gerenciamento de estado
📚 API Documentation
Após iniciar o backend, a documentação da API estará disponível em:
- Swagger UI: http://localhost:8080/swagger-ui.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
Principais Endpoints
Autenticação
-
POST /api/auth/login
- Login de usuário -
POST /api/auth/refresh
- Renovar token JWT
Usuários
-
GET /api/students
- Listar alunos -
POST /api/students
- Criar novo aluno -
GET /api/students/{id}
- Buscar aluno por ID -
PUT /api/students/{id}
- Atualizar aluno
Treinadores
-
GET /api/trainers
- Listar treinadores -
POST /api/trainers
- Criar novo treinador -
GET /api/trainers/{id}
- Buscar treinador por ID
Exercícios
-
GET /api/exercises
- Listar exercícios -
POST /api/exercises
- Criar novo exercício -
GET /api/exercises/{id}
- Buscar exercício por ID
Agendamentos
-
GET /api/schedules
- Consultar agendamentos -
POST /api/schedules
- Criar novo agendamento -
GET /api/schedules/{id}
- Buscar agendamento por ID
💡 Dica: Use o Swagger UI para testar os endpoints interativamente
Diretrizes
-
✅ Siga o padrão de commits (Conventional Commits) -
✅ Execute testes antes de fazer push -
✅ Mantenha o código bem documentado -
✅ Teste suas alterações localmente -
✅ Abra PRs pequenos e focados -
❌ Não faça commit diretamente namain
oudevelop