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
  • Configuração

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

Configuração

A configuração do projeto é dividida nas seguintes etapas:

  • Pré-requisitos
  • Configuração Rápida com Docker Compose
  • Executando Serviços Individualmente
  • Executando Testes
  • Guia para Novos Desenvolvedores

Pré-requisitos

Para desenvolvimento com Docker (Recomendado)

  • Docker v20.10+
  • Docker Compose v2.0+

Para desenvolvimento local

  • Java JDK 21
  • Node.js v18+
  • pnpm v8+
  • PostgreSQL 16+ (opcional, pode usar Docker)

Configuração Rápida com Docker Compose

Desenvolvimento (Recomendado)

Execute toda a aplicação com um único comando:

# Clona o repositório
git clone <repository-url>
cd conexao-treinamento

# Inicia todos os serviços
docker compose up -d

# Para acompanhar os logs
docker compose logs -f

Isso iniciará:

  • PostgreSQL: localhost:5432
  • Backend: localhost:8080
  • Frontend: localhost:3000

Comandos Úteis do Docker Compose

# Rebuild e restart dos serviços
docker compose up -d --build

# Parar todos os serviços
docker compose down

# Remover volumes (apaga dados do banco)
docker compose down -v

# Ver status dos serviços
docker compose ps

# Logs de um serviço específico
docker compose logs -f backend
docker compose logs -f frontend
docker compose logs -f postgres

Ambiente de Testes

Para executar testes em containers isolados:

# Configurar arquivo de ambiente de teste (se necessário)
cp .env.example .env.test

# Executar testes
docker compose -f docker-compose.test.yml up --build

Executando Serviços Individualmente

1. Banco de Dados (PostgreSQL)

Opção A: Com Docker (Recomendado)

# Apenas o PostgreSQL
docker compose up postgres -d

# Verificar se está rodando
docker compose ps postgres

Opção B: PostgreSQL Local

# Instalar PostgreSQL e criar banco
createdb conexaotreinamento
psql -d conexaotreinamento -c "CREATE USER postgres WITH PASSWORD 'postgres123';"

2. Backend (Spring Boot)

cd backend

# Linux/macOS
chmod +x ./mvnw
./mvnw clean install
./mvnw spring-boot:run

# Windows
.\mvnw.cmd clean install
.\mvnw.cmd spring-boot:run

# Ou usando Maven instalado globalmente
mvn clean install
mvn spring-boot:run

Configurações de ambiente para o backend:

# Variáveis de ambiente (opcional)
export SPRING_PROFILES_ACTIVE=dev
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/conexaotreinamento
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=postgres123

O backend estará disponível em: http://localhost:8080

3. Frontend (Next.js)

cd web

# Instalar dependências
pnpm install

# Modo desenvolvimento
pnpm dev

# Ou modo produção
pnpm build
pnpm start

Configurações de ambiente para o frontend:

# Criar arquivo .env.local
echo "NEXT_PUBLIC_API_URL=http://localhost:8080" > .env.local

O frontend estará disponível em: http://localhost:3000

Executando Testes

Testes do Backend

cd backend

# Executar todos os testes
./mvnw test

# Executar testes com relatório de cobertura
./mvnw test jacoco:report

# Executar apenas testes unitários
./mvnw test -Dtest="**/*Test.java"

# Executar apenas testes de integração
./mvnw test -Dtest="**/*IntegrationTest.java"

# Executar testes com perfil específico
./mvnw test -Dspring.profiles.active=test

Testes do Frontend

cd web

# Verificação de tipos
pnpm type-check

# Linting
pnpm lint

# Formatação de código
pnpm format:check
pnpm format

# Testes (quando implementados)
pnpm test:smoke
pnpm test:integration

Testes com Docker

# Executar testes em ambiente isolado
docker compose -f docker-compose.test.yml up --build --abort-on-container-exit

# Limpar após testes
docker compose -f docker-compose.test.yml down -v

Guia para Novos Desenvolvedores

1. Primeiro Setup

# 1. Clone o repositório
git clone <repository-url>
cd conexao-treinamento

# 2. Inicie com Docker (mais fácil)
docker compose up -d

# 3. Aguarde todos os serviços subirem
docker compose logs -f

2. Verificando se está funcionando

  • Frontend: Acesse http://localhost:3000
  • Backend API: Acesse http://localhost:8080/swagger-ui.html
  • Database: Conecte em localhost:5432 (postgres/postgres123)

3. Fluxo de Desenvolvimento

Workflow Recomendado

# 1. Sincronizar com a branch principal
git checkout develop
git pull origin develop

# 2. Criar nova branch a partir da develop
git checkout -b feature/nova-funcionalidade

# 3. Fazer alterações no código
# ... desenvolver sua feature ...

# 4. Executar testes e validações
# Backend
cd backend && ./mvnw test

# Frontend  
cd web && pnpm type-check && pnpm lint

# 5. Commit das alterações (seguindo Conventional Commits)
git add .
git commit -m "feat: adiciona nova funcionalidade"

# 6. Antes de fazer push - sincronizar com develop
git checkout develop
git pull origin develop
git checkout feature/nova-funcionalidade

# 7. Resolver conflitos se houver
git rebase develop
# Se houver conflitos, resolva-os e continue:
# git add .
# git rebase --continue

# 8. Push da branch
git push origin feature/nova-funcionalidade

# 9. Abrir Pull Request no GitHub/GitLab
# Aguardar review e aprovação antes do merge

Padrão de Commits (Conventional Commits)

Use os seguintes prefixos para seus commits:

  • feat: - Nova funcionalidade
  • fix: - Correção de bug
  • docs: - Alterações na documentação
  • style: - Formatação, sem mudança de lógica
  • refactor: - Refatoração de código
  • test: - Adição ou correção de testes
  • chore: - Tarefas de manutenção

Exemplos:

git commit -m "feat: adiciona endpoint para listar exercícios"
git commit -m "fix: corrige validação de email no cadastro"
git commit -m "docs: atualiza README com instruções de deploy"

4. Comandos Úteis do Dia a Dia

# Ver logs em tempo real
docker compose logs -f backend
docker compose logs -f frontend

# Reiniciar apenas um serviço
docker compose restart backend

# Executar comando dentro do container
docker compose exec backend bash
docker compose exec postgres psql -U postgres -d conexaotreinamento

# Limpar cache e rebuild
docker compose down
docker compose up -d --build

5. Debugando Problemas Comuns

Backend não inicia

# Verificar logs
docker compose logs backend

# Verificar se PostgreSQL está rodando
docker compose ps postgres

# Reiniciar com rebuild
docker compose up backend --build

Frontend não carrega

# Verificar se backend está respondendo
curl http://localhost:8080/actuator/health

# Verificar variáveis de ambiente
docker compose exec frontend env | grep NEXT_PUBLIC

Banco de dados com problemas

# Resetar banco (CUIDADO: apaga dados)
docker compose down -v
docker compose up postgres -d
Clone repository
  • Arquitetura
  • Banco de Dados
  • Configuração
  • Escopo
  • Home
  • Protótipos
  • Sprints