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

Last edited by Ícaro Cecconello Espadim Oct 04, 2025
Page history

Arquitetura

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

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