5.9 KiB
Tasks: Página de Política de Privacidade + Link no Footer
Input: Design documents from specs/020-politica-de-privacidade/
Prerequisites: plan.md ✅, spec.md ✅, data-model.md ✅, quickstart.md ✅, research.md ✅
Tests: Não solicitados — verificação por npm run build e inspeção visual (conforme plan.md).
Escopo: 1 arquivo criado, 2 arquivos modificados — 100% frontend, sem backend, sem dependências novas.
Format: [ID] [P?] [Story] Description
- [P]: Pode rodar em paralelo (arquivos diferentes, sem dependências entre si)
- [Story]: User story a que a task pertence (US1, US2, US3)
- Todos os caminhos são relativos à raiz do repositório
Phase 1: Setup & Foundational
Não aplicável — projeto já inicializado, sem novas dependências, sem infraestrutura nova. Pode avançar diretamente para as user stories.
Phase 2: User Story 1 — Visitante lê a Política de Privacidade (Priority: P1) 🎯 MVP
Goal: Criar o componente PrivacyPolicyPage e registrá-lo no roteador para que a rota /politica-de-privacidade funcione.
Independent Test: Acessar http://localhost:5173/politica-de-privacidade no navegador após npm run dev. A página deve renderizar com Navbar, 8 seções numeradas e Footer, sem erros no console e sem chamadas de rede.
- T001 [P] [US1] Criar componente
PrivacyPolicyPagestateless com Navbar,<main>centralizado (max-width 800 px), 8 seções LGPD numeradas e Footer, usando tokensbg-canvas,text-text-primary,text-text-secondary,text-text-tertiaryefontFeatureSettings: '"cv01","ss03"'emfrontend/src/pages/PrivacyPolicyPage.tsx - T002 [US1] Importar
PrivacyPolicyPagee adicionar<Route path="/politica-de-privacidade" element={<PrivacyPolicyPage />} />após a rota/corretoresemfrontend/src/App.tsx
Checkpoint: Rota /politica-de-privacidade acessível no browser com as 8 seções visíveis. User Story 1 completa e testável de forma independente.
Phase 3: User Story 2 — Visitante encontra o link da Política no Footer (Priority: P2)
Goal: Adicionar link "Política de Privacidade" no Footer usando roteamento client-side (sem reload da página).
Independent Test: Em qualquer página do site com Footer visível, verificar que o link "Política de Privacidade" está presente no rodapé e que clicar nele navega para /politica-de-privacidade sem recarregar a página (SPA navigation).
- T003 [P] [US2] Importar
Linkdereact-router-dome adicionar<li><Link to="/politica-de-privacidade" ...>Política de Privacidade</Link></li>no<ul>de navegação, após omapdefooterLinksexistente, com classestext-xs text-text-tertiary hover:text-text-secondary transition-colors duration-150emfrontend/src/components/Footer.tsx
Checkpoint: Link visível no Footer de qualquer página; clique navega via SPA sem recarregamento. User Story 2 completa e testável de forma independente.
Phase 4: User Story 3 — Visitante identifica empresa responsável e canal de contato (Priority: P3)
Goal: Substituir os placeholders [NOME DA EMPRESA], [CNPJ], [ENDEREÇO COMPLETO] e [E-MAIL DO DPO] nas seções 1 e 8 pelos dados reais da imobiliária.
Independent Test: Na página /politica-de-privacidade, seção 1 deve conter nome completo, CNPJ e endereço da empresa. Seção 8 deve conter endereço de e-mail válido para contato com o DPO.
- T004 [US3] Substituir placeholders na seção 1 (nome, CNPJ, endereço) e na seção 8 (e-mail do DPO) pelos dados reais da empresa em
frontend/src/pages/PrivacyPolicyPage.tsx
Checkpoint: Seções 1 e 8 sem placeholders; conformidade LGPD com identificação do controlador e canal de comunicação com DPO. User Story 3 completa.
Phase Final: Polish & Verificação
Purpose: Validação de tipos, build e verificação final de responsividade.
- T005 Executar
npm run buildno diretóriofrontend/e confirmar que não há erros de TypeScript nem de compilação - T006 [P] Verificar responsividade da
PrivacyPolicyPageem larguras ≥ 320 px (mobile) e ≥ 1280 px (desktop) — sem overflow horizontal, texto legível, espaçamento adequado
Dependencies & Execution Order
Dependências entre tasks
| Task | Depende de | Motivo |
|---|---|---|
| T002 | T001 | Importa PrivacyPolicyPage criado em T001 |
| T004 | T001 | Edita o arquivo criado em T001 |
| T005 | T001, T002, T003, T004 | Build final após todas as mudanças |
| T006 | T001, T002 | Requer a página funcional para testar responsividade |
Tasks independentes (sem dependências entre si)
- T001 e T003 podem ser executadas em paralelo por devs diferentes — arquivos distintos, zero conflito.
Ordem sugerida (desenvolvedor solo)
T001 → T002 → T003 → T004 → T005 → T006
Ordem sugerida (dois devs em paralelo)
Dev A: T001 → T002 → T004 → T005
Dev B: T003 → T006
Parallel Example: User Story 1 (MVP solo)
# 1. Criar o componente
# frontend/src/pages/PrivacyPolicyPage.tsx — novo arquivo
# 2. Adicionar rota
# frontend/src/App.tsx — adicionar Route após /corretores
# 3. Verificar
cd frontend && npm run dev
# Abrir http://localhost:5173/politica-de-privacidade
Implementation Strategy
MVP (apenas US1 — T001 + T002)
Entrega mínima: a página existe e é acessível via URL. Footer sem link ainda. Dados reais preenchidos depois.
Incremental delivery
- Sprint 1 — T001 + T002: Página acessível (US1 ✅)
- Sprint 1 — T003: Link no Footer (US2 ✅)
- Sprint 2 — T004: Dados reais da empresa (US3 ✅)
- Sprint 2 — T005 + T006: Build limpo + verificação visual (Polish ✅)
Sem testes automatizados
Conforme plan.md ("Testing: npm run build (TypeScript type-check via tsc); verificação visual manual"), não foram geradas tasks de teste automatizado para esta feature.