Este guia abrange todas as informações necessárias para configurar e trabalhar no ambiente de desenvolvimento do Varion.
- Node.js v18+ (Download)
- pnpm v8+ (Instalação)
- Docker e Docker Compose (Instalação)
- Git (Download)
- Visual Studio Code com extensões:
- TypeScript
- Prettier
- ESLint
- Thunder Client (para testes de API)
- Docker
git clone <repository-url>
cd Varion# Instalar dependências do workspace
pnpm install
# Verificar instalação
pnpm list --depth=0# Backend
cp backend/.env.example backend/.env
# Editar variáveis conforme necessário
# Frontend
cp frontend/.env.example frontend/.env
# Configurar URL da API# Opção 1: Docker (Recomendado)
docker-compose up -d postgres
# Opção 2: PostgreSQL local
# Criar database 'varion_dev'
createdb varion_dev# Executar todos os serviços
docker-compose up --build
# Executar apenas o banco
docker-compose up -d postgres
# Ver logs
docker-compose logs -f [service-name]# Terminal 1: Backend
cd backend
pnpm start:dev
# Terminal 2: Frontend
cd frontend
pnpm dev
# Terminal 3: Banco (se não usar Docker)
# Executar PostgreSQL localmenteVarion/
├── backend/ # API Node.js + TypeScript
├── frontend/ # Interface Next.js + React
├── docs/ # Documentação global
├── scripts/ # Scripts de automação
├── docker-compose.yml # Configuração Docker
├── pnpm-workspace.yaml # Configuração workspace
└── README.md # Documentação principal
backend/
├── src/
│ ├── controllers/ # Controladores da API
│ ├── entities/ # Entidades TypeORM
│ ├── middlewares/ # Middlewares Express
│ ├── routes/ # Definição de rotas
│ ├── services/ # Lógica de negócio
│ ├── types/ # Tipos TypeScript
│ ├── utils/ # Utilitários
│ └── app.ts # Configuração do Express
├── docs/ # Documentação específica
├── tests/ # Testes automatizados
├── Dockerfile # Build de container
└── package.json # Dependências backend
frontend/
├── src/
│ ├── app/ # App Router (Next.js 15)
│ ├── components/ # Componentes React
│ ├── hooks/ # Custom hooks
│ ├── types/ # Tipos TypeScript
│ ├── utils/ # Utilitários
│ └── styles/ # Estilos globais
├── public/ # Assets estáticos
├── docs/ # Documentação específica
└── package.json # Dependências frontend
cd backend
# Desenvolvimento
pnpm start:dev # Servidor com hot reload
pnpm build # Build para produção
pnpm start # Executar build de produção
# Banco de Dados
pnpm migration:generate # Gerar migration
pnpm migration:run # Executar migrations
pnpm migration:revert # Reverter última migration
# Testes
pnpm test # ✅ Executar todos os testes (517 testes)
pnpm test:watch # ✅ Testes em modo watch
pnpm test:coverage # ✅ Cobertura (98.58% atual)
pnpm test:verbose # ✅ Testes com logs detalhados
# Qualidade de Código
pnpm lint # ESLint
pnpm format # Prettiercd frontend
# Desenvolvimento
pnpm dev # Servidor de desenvolvimento
pnpm build # Build para produção
pnpm start # Executar build de produção
# Qualidade de Código
pnpm lint # Next.js ESLint
pnpm lint:fix # Corrigir problemas ESLint
pnpm format # Prettier
pnpm type-check # Verificação TypeScript# Executar em todos os projetos
pnpm -r [command] # Recursivo em todos
# Executar em projeto específico
pnpm --filter backend [command]
pnpm --filter frontend [command]# Debug mode
DEBUG=app:* pnpm start:dev
# Logs de diferentes níveis
LOG_LEVEL=debug pnpm start:dev# Debug mode
NEXT_DEBUG=1 pnpm dev
# Análise de bundle
pnpm build --analyze# Logs de serviço específico
docker-compose logs -f backend
# Executar comandos no container
docker-compose exec backend sh
docker-compose exec frontend sh
# Inspecionar container
docker inspect varion-backend# 1. Criar branch feature
git checkout -b feature/nome-da-feature
# 2. Desenvolvimento iterativo
# - Implementar no backend se necessário
# - Implementar no frontend
# - Tester localmente
# 3. Testes
pnpm test # ✅ Backend: 517 testes passando (98.58% cobertura)
pnpm --filter frontend lint # Frontend: Lint (testes em desenvolvimento)
# 4. Commit
git add .
git commit -m "feat: descrição da feature"# Testar integração completa
docker-compose up --build
# Verificar endpoints
curl http://localhost:3001/api/health
curl http://localhost:3001/api/projects
# Testar interface
# Abrir http://localhost:3000- Verificar tipagem TypeScript
- Testar responsividade
- Verificar performance
- Validar UX/UI
# Encontrar processo usando a porta
lsof -i :3000
lsof -i :3001
# Parar processo
kill -9 <PID># Limpar cache pnpm
pnpm store prune
# Limpar cache Next.js
cd frontend && rm -rf .next
# Limpar cache Docker
docker system prune -a# Resetar banco Docker
docker-compose down -v
docker-compose up -d postgres
# Verificar conexão
docker-compose exec postgres psql -U postgres -d varion# Verificar tipos
pnpm --filter backend type-check
pnpm --filter frontend type-check
# Reinstalar tipos
rm -rf node_modules/@types
pnpm install# Análise de bundle Frontend
pnpm --filter frontend build --analyze
# Profiling Backend
NODE_ENV=development node --inspect src/app.ts- Build time: < 30s para frontend
- Start time: < 5s para backend
- Hot reload: < 2s
- Bundle size: < 1MB frontend
Para problemas de desenvolvimento:
- Verificar troubleshooting acima
- Consultar documentação específica em
/backend/docs/ou/frontend/docs/ - Buscar no histórico de issues do Git
- Criar issue detalhada se necessário