Aplicação web para simulação, estruturação e visualização do fluxo financeiro de aquisições imobiliárias até a entrega das chaves, com geração de proposta em PDF e validação automatizada de parcelas.
O sistema permite calcular e consolidar as seguintes modalidades de pagamento:
- Sinal de Reserva: Aporte único inicial de adesão.
- Entrada: Pagamento em dinheiro ou bens (veículo, imóvel, serviço).
- Parcelas Intermediárias: Lançamentos recorrentes (mensais, trimestrais, semestrais ou anuais).
- Saldo de Chaves: Montante final devido na entrega das chaves.
Separado rigorosamente entre o motor de cálculo puro e a camada de interface gráfica:
graph TD
UI[Interface - React 19] --> Engine[Motor de Cálculo - calculatorEngine.ts]
UI --> Formatters[Formatadores - formatters.ts]
UI --> PDF[Exportação PDF - pdfGenerator.ts]
Engine --> Vitest[Testes Unitários - Vitest]
Formatters --> Vitest
src/utils/calculatorEngine.ts: Motor puro e determinístico responsável pelos cálculos do fluxo, geração do cronograma e classificação temporal em relação à data de chaves.src/components/Calculator/CalculatorMain.tsx: Orquestrador do fluxo assistido em 3 etapas (1. Configuração -> 2. Lançamentos -> 3. Resultado & PDF).src/components/Calculator/PaymentForm.tsx: Gestão visual dos lançamentos em cards e assistente de cadastro.src/components/Calculator/MonthYearInput.tsx: Seletor de mês/ano otimizado para dispositivos móveis (evita bloqueios no iOS e zoom automático).src/utils/formatters.ts: Formatadores de moeda BRL e datas BR (DD/MM/AAAA/MM/AAAA).src/utils/pdfGenerator.ts: Gerador de relatório técnico em PDF viahtml2canvas(2x) +jsPDF.
A aplicação conta com testes unitários cobrindo o motor de cálculo e os formatadores:
# Executar a suíte de testes
pnpm testcalculatorEngine.test.ts: Valida a geração de cronogramas, periodicidades, cálculo de percentual pago até a entrega e chave de alternância das chaves.formatters.test.ts: Valida parsing e formatação de moeda BRL e conversões de datas.
- Node.js:
v18+ - pnpm:
v9+
# Instalar dependências
pnpm install
# Servidor de desenvolvimento
pnpm dev
# Executar testes unitários
pnpm test
# Build de produção
pnpm build