98 lines
4.4 KiB
Markdown
98 lines
4.4 KiB
Markdown
# Plano de Implementação — VentoApp 100% NBR 6123:2023
|
||
|
||
> Documento histórico. Para o estado atual, consulte [`PROGRESS.md`](./PROGRESS.md).
|
||
> Roadmap de melhorias futuras: seção "Roadmap pós-Marco 8" abaixo.
|
||
|
||
---
|
||
|
||
## Visão geral
|
||
|
||
| # | Marco | Escopo | Status |
|
||
|---|---|---|---|
|
||
| 1 | Motor matemático | Tabelas 1–5, A, B; interpolação bilinear/log; mudança de rugosidade; tipagem | ✅ |
|
||
| 2 | Cpi + Vizinhança | Pressão interna (simplificado+detalhado), fator fᵥ, JSON estações Anexo C | ✅ |
|
||
| 3 | Paralelepipédicas | Tabelas 6–12; excentricidade; atrito; alta turbulência; 3D com zonas A–J | ✅ |
|
||
| 4 | Superfícies curvas | Tabelas 13–22 (cilindros, abóbadas, cúpulas); módulos 3D | ✅ |
|
||
| 5 | Muros/placas/coberturas isoladas/barras | Tabelas 23–30; catálogo de seções | ✅ |
|
||
| 6 | Torres + Pontes | Seções 8.5 e 11; verificações de estabilidade | ✅ |
|
||
| 7 | Dinâmica + Vórtices + Conforto | Seções 9 e 10; resposta flutuante; Scruton | ✅ |
|
||
| 8 | UX/Dados/Testes | Persistência IndexedDB; testes Vitest; i18n; AGENTS.md | ✅ |
|
||
|
||
**Resultado:** 8/8 marcos concluídos. Cobertura 100% da NBR 6123:2023 (11 seções + 3 anexos).
|
||
|
||
---
|
||
|
||
## Marcos 1–8 — Concluídos
|
||
|
||
Detalhes de cada marco estão em `PROGRESS.md`. Resumo do que foi entregue:
|
||
|
||
| Marco | Arquivos principais |
|
||
|-------|---------------------|
|
||
| 1 | `lib/nbr-tables/table-{1-5,a,b}.ts`, `lib/bilinear-interp.ts`, `lib/log-interp.ts`, `lib/wind-direction.ts`, `lib/wind-kernel.ts` (refatorado) |
|
||
| 2 | `lib/internal-pressure.ts`, `lib/neighborhood.ts`, `lib/stations-lookup.ts`, `lib/nbr-tables/stations.ts` |
|
||
| 3 | `lib/nbr-tables/table-{6-12}.ts`, `lib/coefficients.ts`, `lib/{excentricity,friction,drag}.ts`, `components/Warehouse3D.tsx` (refeito) |
|
||
| 4 | `lib/nbr-tables/table-{13,14,15-17,18-20,21,22}.ts`, `lib/modules/{cylinder,vault,dome}.ts`, `components/three/{Cylinder,Vault,Dome}3D.tsx`, `pages/{Cylinder,Vault,Dome}Module.tsx` |
|
||
| 5 | `lib/nbr-tables/table-{23,24-25,26,27,29,30}.ts`, `lib/modules/truss.ts`, `pages/{Sign,IsolatedRoof,BarSelector}Module.tsx` |
|
||
| 6 | `lib/modules/{tower,bridge}.ts`, `lib/nbr-tables/table-35.ts`, `pages/BridgeModule.tsx` |
|
||
| 7 | `lib/nbr-tables/table-{31,32,33}.ts`, `lib/comfort.ts`, `lib/modules/dynamics.ts`, `pages/DynamicsModule.tsx` |
|
||
| 8 | `lib/storage.ts`, `lib/hooks/useProjects.ts`, `lib/theme.tsx`, `lib/i18n.ts`, `pages/SettingsModule.tsx`, `vitest.config.ts`, `lib/__tests__/` (5 suites), `README.md`, `AGENTS.md` |
|
||
|
||
---
|
||
|
||
## Padrões de qualidade
|
||
|
||
- **Tipagem:** zero `as any`, zero `// @ts-ignore`
|
||
- **Estilo:** kebab-case em arquivos, PascalCase em componentes, camelCase em funções
|
||
- **Comentários:** apenas quando a matemática exige explicação
|
||
- **Tabelas:** todos os valores tipados como `readonly` com chaves literais para exaustividade
|
||
- **Testes:** ao final de cada marco, `npm run build` + `npm test` devem passar
|
||
|
||
---
|
||
|
||
## Roadmap pós-Marco 8 (Melhorias futuras)
|
||
|
||
> Para detalhes completos, estimativas e ordem sugerida, ver `PROGRESS.md`.
|
||
|
||
### 🔴 Alta prioridade
|
||
|
||
- **M9.1** — Refinar valores das tabelas a partir do PDF real (~3 dias)
|
||
- **M9.2** — Cargas lineares (kN/m) para software estrutural (~2 dias)
|
||
- **M9.3** — Screenshot 3D no PDF (~1 dia)
|
||
|
||
### 🟡 Média prioridade
|
||
|
||
- **M9.4** — Exportação Ftool (.txt estruturado) (~2 dias)
|
||
- **M9.5** — Refatoração TypeScript (eliminar `void`/`as unknown as`) (~1 dia)
|
||
- **M9.6** — Modo 3D para muros/torres/pontes/barras (~3 dias)
|
||
- **M9.7** — Import de projetos via JSON (~1 dia)
|
||
|
||
### 🟢 Baixa prioridade
|
||
|
||
- **M9.8** — i18n completo (~2 dias)
|
||
- **M9.9** — Validação contra exemplos do Blessmann (~2 dias)
|
||
- **M9.10** — Tema dark mode para gráficos SVG (~0.5 dia)
|
||
- **M9.11** — Persistência opcional em servidor (~especulativo)
|
||
- **M9.12** — Testes E2E com Playwright (~2 dias)
|
||
|
||
---
|
||
|
||
## Comandos úteis
|
||
|
||
```bash
|
||
cd /root/Apps/windapp/app
|
||
npm run dev # vite dev com HMR (porta 5173)
|
||
npm run build # tsc -b && vite build (produção)
|
||
npm run lint # oxlint
|
||
npm test # vitest run (38 testes)
|
||
```
|
||
|
||
> **Atenção:** Os binários em `node_modules/.bin/` perdem o bit de execução. Se reclamar `Permission denied`, rode `chmod +x node_modules/.bin/<bin>` antes.
|
||
|
||
---
|
||
|
||
## Estado final do Marco 8
|
||
|
||
- ✅ Build: 2618 módulos transformados, 2.88 MB JS (884 KB gzip)
|
||
- ✅ Testes: 38/38 passing
|
||
- ✅ Lint: 0 erros, 5 warnings cosméticos em shadcn
|
||
- ✅ Documentação: PLAN.md + PROGRESS.md + README.md + AGENTS.md |