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 Lucas de Fraga Silva Dec 02, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Arquitetura

aqui deve ter:

  • 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

Diagrama de Deploy

image

📁 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