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
pipevenv. - 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
- Test-Driven Development: Qualquer alteração na função de perda (
_evaluate_loss) ou nos pisos deoptimizer.pydeve vir acompanhada de novos testes de regressão emtest_optimizer.py. - Imutabilidade Financeira: Sempre utilize tipos monetários exatos (
Decimal) para valores em reais, reservandofloatenumpy.ndarrayestritamente para o cálculo matricial contínuo do AG. - Links e Sintaxe da Documentação: Antes de enviar qualquer alteração nos arquivos de documentação, certifique-se de que
npm run docs:buildpasse com zero warnings de links quebrados.