# Plano de Construção — MVP

Documento vivo. Cada etapa é construída, testada e **validada pelo Bruno** antes da
próxima (regra #8). Ao fim de cada etapa: o que foi feito, como testar, o que falta, riscos.

## Stack

- **Frontend:** React + Vite + TypeScript + Tailwind, como **PWA** (instalável no celular).
- **Backend:** Node.js + **NestJS** (módulos, *guards* de permissão, *interceptors* de auditoria).
- **Banco:** PostgreSQL + **Prisma** (migrações versionadas).
- **Segurança:** JWT + bcrypt; preparado para 2FA (TOTP) e lista de IPs permitidos.
- **Exportação:** ExcelJS. **Notificação:** Web Push (PWA).
- **Backup:** `pg_dump` diário, retenção 30 dias (`infra/`).

## Identidade visual

- Verde institucional `#2E7D32` (botões/ações), verde apoio `#4CAF50` (realces),
  grafite `#263238` (menu lateral/textos), branco `#FFFFFF` (fundo).
- Menu lateral grafite, botões verdes, cartões limpos. Logo da A Moderna Sany no login e cabeçalho.
- Alertas orçamentários (amarelo 80% / vermelho 100%) harmonizando com a paleta.

## Etapas

| # | Etapa | Entrega testável | Status |
|---|---|---|---|
| 0 | **Fundação** | Banco completo + login + layout (menu grafite, logo) + seed | ✅ validada |
| 1 | **Cadastros** | Fornecedores e Veículos (criar/editar/listar) | ✅ validada |
| 2 | **Requisição** | Criar/listar + fluxo até aprovação + anexos | ✅ validada |
| 3 | **Alçada + Aprovação** | Matriz configurável + aprovar/recusar no celular | ✅ validada |
| 4 | **Dashboard + Excel + Produção** | Indicadores, exportação, instalação, admin master | ✅ construída — **encerra o MVP** |

Backup automático já entregue na Etapa 0. 2FA e trava por IP são reforços de
produção documentados em [INSTALACAO.md](INSTALACAO.md). Próxima fase em
[PROXIMA-FASE.md](PROXIMA-FASE.md).

**Ajustes pós-Etapa 0:** logo +30%, menu reorganizado em grupos (Compras, Frota,
Cadastros, Administração), dashboard executivo com barra de filtros e painéis reservados.

## Como será testado

Cada etapa roda na máquina do Bruno e é exposta por um **túnel Cloudflare** (HTTPS público
temporário) para teste no PC e no celular. Hospedagem definitiva entra após o MVP aprovado,
sem alterar o código.
