Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Conexao Treinamento
  • Wiki
  • Wiki
  • Arquitetura

Arquitetura · Changes

Page history
Update Arquitetura authored Oct 04, 2025 by Ícaro Cecconello Espadim's avatar Ícaro Cecconello Espadim
Hide whitespace changes
Inline Side-by-side
Arquitetura.md
View page @ 1249870b
...@@ -11,4 +11,138 @@ aqui deve ter: ...@@ -11,4 +11,138 @@ aqui deve ter:
* Módulos do sistema * Módulos do sistema
* Arquitetura básica do frontend * Arquitetura básica do frontend
* Diagrama do sistema * Diagrama do sistema
* Diagrama de componentes * Diagrama de componentes
\ No newline at end of file
## 📋 Índice
- [Arquitetura](#-componentes)
- [API Documentation](#-api-documentation)
## 🏗 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.
#### Frontend (`/web`)
- **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 na `main` ou `develop`
Clone repository
  • Arquitetura
  • Banco de Dados
  • Configuração
  • Escopo
  • Home
  • Protótipos
  • Sprints