Pular para o conteúdo principal

Setup Local, Docker e Execução de Testes 💻

Este guia detalha como configurar o ambiente de desenvolvimento completo na sua máquina e rodar a suíte de testes de integração e regressão.


📋 Pré-requisitos

  • Node.js: v18.0 ou superior (recomendado v20+ ou v22 LTS).
  • Python: v3.11 ou v3.12+ com pip e venv.
  • Docker & Docker Compose: para execução orquestrada de contêineres.
  • Git: para controle de versão.

🚀 Executando o Front-Monvix

No diretório raiz do frontend:

cd Front-Monvix

# Instalar dependências
npm install

# Iniciar servidor de desenvolvimento do Vite (porta 5173)
npm run dev

# Executar a suíte de testes unitários (Vitest)
npm run test:run

# Executar testes End-to-End (Playwright)
npm run test:e2e

🧬 Executando o monvix-ga-service

No diretório do microsserviço de inteligência artificial:

cd monvix-ga-service

# Criar e ativar o ambiente virtual Python
python -m venv .venv
# Windows PowerShell:
.venv\Scripts\Activate.ps1
# Linux / macOS:
source .venv/bin/activate

# Instalar dependências de cálculo e API
pip install -r requirements.txt

# Iniciar a API com live-reload (porta 8084)
uvicorn app.main:app --host 0.0.0.0 --port 8084 --reload

# Executar os testes automatizados do Algoritmo Genético (PyTest)
pytest app/tests/ -v

📚 Executando o docs-site (Docusaurus)

A partir da raiz de Front-Monvix:

# Iniciar o servidor local de documentação (porta 3000)
npm run docs:dev

# Compilar para produção estática e verificar integridade de links
npm run docs:build

# Pré-visualizar a build de produção localmente
npm run docs:serve

🐳 Execução via Docker Compose

Para subir o ecossistema integrado em contêineres:

# Build e inicialização em segundo plano
docker compose -f compose.production.yaml up --build -d

# Visualizar logs em tempo real
docker compose logs -f

🧪 Padrões de Qualidade e Boas Práticas

  1. Test-Driven Development: Qualquer alteração na função de perda (_evaluate_loss) ou nos pisos de optimizer.py deve vir acompanhada de novos testes de regressão em test_optimizer.py.
  2. Imutabilidade Financeira: Sempre utilize tipos monetários exatos (Decimal) para valores em reais, reservando float e numpy.ndarray estritamente para o cálculo matricial contínuo do AG.
  3. Links e Sintaxe da Documentação: Antes de enviar qualquer alteração nos arquivos de documentação, certifique-se de que npm run docs:build passe com zero warnings de links quebrados.