|
|
# CHANGELOG — rastreabilidade
|
|
|
|
|
|
Registo de decisões e ficheiros alterados, por incremento. Referenciar a secção
|
|
|
da SDD que justifica cada alteração.
|
|
|
|
|
|
## v0.3 — Containerização Docker (2026-06-12) — SDD
|
|
|
- Novo requisito: encapsular o site em **Docker** para funcionamento independente
|
|
|
e isolado. Criado [06-deployment.md](./06-deployment.md) (build multi-stage
|
|
|
node→nginx, SPA fallback, compose, healthcheck).
|
|
|
- Novos requisitos funcionais **RF-D1..RF-D6** em [05-acceptance.md](./05-acceptance.md).
|
|
|
- Atualizados [00-overview.md](./00-overview.md), [02-architecture.md](./02-architecture.md)
|
|
|
(stack + estrutura: `Dockerfile`, `.dockerignore`, `nginx.conf`,
|
|
|
`docker-compose.yml`) e índice [README.md](./README.md).
|
|
|
- Benefício direto: o build de TypeScript passa a ser verificável via
|
|
|
`docker build` mesmo sem Node instalado no host (ver [[node-not-installed]]).
|
|
|
- **Estado:** SDD de deployment **aprovada**. Ficheiros Docker criados:
|
|
|
`Dockerfile` (multi-stage node:22-alpine → nginx:1.27-alpine; `npm ci || npm
|
|
|
install`; healthcheck), `.dockerignore`, `nginx.conf` (SPA fallback + gzip +
|
|
|
cache de assets), `docker-compose.yml` (porta `8080:80`, restart, healthcheck).
|
|
|
- **Verificação pendente:** Docker **não está instalado** nesta máquina (`docker`
|
|
|
não está no PATH). Não foi possível correr `docker build` para validar
|
|
|
RF-D1..RF-D6 nem o gate de TS via imagem. Executar assim que houver Docker.
|
|
|
|
|
|
## v0.1 — SDD inicial (2026-06-11)
|
|
|
- Criada estrutura `specs/` (00–05 + README + CHANGELOG) a partir de `boot.md`,
|
|
|
`prompt.md` e `input_files/` (`Notas Site.docx`, `cronograma.png`).
|
|
|
- Conteúdo canónico extraído para [03-content.md](./03-content.md).
|
|
|
- **Estado:** SDD **aprovada** (2026-06-11). Início da implementação.
|
|
|
|
|
|
### Decisões (aprovadas pelo PM)
|
|
|
1. Logos dos parceiros → **placeholders** (cartões com sigla/nome) até receber ficheiros.
|
|
|
2. Paleta → usar a **proposta** (primary `#0B2A4A`, accent `#1E6FD9`); afinar depois.
|
|
|
3. Posições de milestones/reports no cronograma — estimadas da imagem; refinar no `Gantt`.
|
|
|
|
|
|
## v0.2 — Implementação (2026-06-11)
|
|
|
Scaffold + implementação completa (SDD §02/§04). Ficheiros criados:
|
|
|
|
|
|
**Config / raiz**
|
|
|
- `package.json`, `vite.config.ts`, `tsconfig.json`, `tsconfig.app.json`,
|
|
|
`tsconfig.node.json`, `components.json`, `index.html`, `.gitignore`,
|
|
|
`README.md`, `public/favicon.svg`
|
|
|
|
|
|
**Core**
|
|
|
- `src/main.tsx`, `src/router.tsx` (tanstack-router, rota `/`), `src/index.css`
|
|
|
(tokens do design system §01), `src/vite-env.d.ts`, `src/App.tsx`
|
|
|
- `src/lib/utils.ts` (cn), `src/lib/scroll.ts` (scroll suave + navItems)
|
|
|
- `src/data/project.ts` (conteúdo canónico §03, tipado)
|
|
|
|
|
|
**UI (shadcn)** — `src/components/ui/`: `button`, `card`, `badge`, `dialog`, `sheet`
|
|
|
|
|
|
**Layout** — `src/components/layout/`: `Header` (nav + sheet mobile), `Footer`
|
|
|
(parceiros placeholder + financiamento), `Section` (wrapper âncora + in-view)
|
|
|
|
|
|
**Sections** — `src/components/sections/`: `Hero`, `Goal`, `WorkPlan`,
|
|
|
`WorkPlanCard`, `Gantt` (cronograma inspirado em `cronograma.png`), `Indicators`,
|
|
|
`IndicatorCard`
|
|
|
|
|
|
### Verificação
|
|
|
- **Pendente:** Node.js/npm não estão instalados nesta máquina (não há `node.exe`
|
|
|
em C:). Não foi possível correr `npm install` / `npm run build` para validar o
|
|
|
gate de TypeScript. Código revisto manualmente. Executar a verificação assim
|
|
|
que o Node estiver disponível (ver `specs/05-acceptance.md`).
|