8.4 KiB
Feature Specification: Página de Política de Privacidade + Link no Footer
Feature Branch: 020-politica-de-privacidade
Created: 2026-04-17
Status: Draft
Input: Criar página estática /politica-de-privacidade com conteúdo LGPD adaptado para imobiliária e link no Footer existente.
User Scenarios & Testing (mandatory)
User Story 1 — Visitante lê a Política de Privacidade (Priority: P1)
Um visitante do site deseja conhecer como seus dados pessoais são tratados pela imobiliária. Ele navega até /politica-de-privacidade e encontra o documento completo, com todas as seções exigidas pela LGPD, organizado de forma legível.
Why this priority: Requisito de conformidade legal (LGPD). Toda empresa que coleta dados pessoais deve disponibilizar a política de privacidade de forma clara e acessível.
Independent Test: Pode ser testado acessando diretamente /politica-de-privacidade no navegador e verificando que o conteúdo é exibido com todas as 8 seções, Navbar e Footer presentes.
Acceptance Scenarios:
- Given o visitante está em qualquer página do site, When digita
/politica-de-privacidadena URL, Then a página carrega com título "Política de Privacidade", Navbar, Footer e as 8 seções numeradas. - Given o visitante está na página de política, When a página carrega, Then todo o conteúdo é exibido sem chamadas de API, sem estado de carregamento e sem erros.
- Given o visitante lê a página em dispositivo móvel, When a página renderiza, Then o texto é legível, sem overflow horizontal e com espaçamento adequado.
User Story 2 — Visitante encontra o link da Política no Footer (Priority: P2)
Um visitante está no rodapé do site (Footer) em qualquer página e deseja localizar o link para a Política de Privacidade.
Why this priority: O Footer é o local padrão e esperado pelos usuários para links legais. Garantir a descoberta do link é essencial para conformidade e UX.
Independent Test: Pode ser testado verificando o componente Footer em qualquer página — o link "Política de Privacidade" deve estar visível e clicar nele deve navegar para /politica-de-privacidade sem recarregar a página.
Acceptance Scenarios:
- Given o visitante está em qualquer página com Footer, When rola até o rodapé, Then o link "Política de Privacidade" está visível.
- Given o visitante clica no link "Política de Privacidade" no Footer, When o clique é registrado, Then o roteamento navega para
/politica-de-privacidadesem recarregamento completo da página. - Given o visitante está na página de Política e clica no logo ou em um link de navegação, When o clique é registrado, Then ele retorna à página anterior normalmente.
User Story 3 — Visitante identifica a empresa responsável e o canal de contato (Priority: P3)
Um visitante que lê a política deseja saber qual empresa é responsável pelo tratamento dos seus dados e como entrar em contato com o encarregado (DPO).
Why this priority: A LGPD exige identificação do controlador e disponibilização do canal de comunicação com o DPO. É requisito legal e melhora a confiança do usuário.
Independent Test: Pode ser testado verificando que a seção "Instituição Responsável" e a seção "Contato / DPO" contêm nome da empresa, informações de contato e canal para exercício de direitos LGPD.
Acceptance Scenarios:
- Given o visitante está na página de Política, When lê a seção 1, Then encontra o nome, endereço e CNPJ da empresa responsável.
- Given o visitante deseja exercer seus direitos (acesso, correção, exclusão), When lê a seção 8, Then encontra um endereço de e-mail ou formulário para contato com o DPO.
Edge Cases
- O que acontece se o usuário acessa
/politica-de-privacidadecom JavaScript desabilitado? (SPA — página não renderiza; comportamento aceitável para PWA/SPA) - O que acontece se o usuário acessar a rota diretamente após um refresh? (deve funcionar normalmente com o roteamento configurado)
- O conteúdo é longo — a rolagem da página deve funcionar normalmente sem quebras de layout.
- Links externos na seção de contato devem abrir em nova aba para não desviar o usuário do site.
Requirements (mandatory)
Functional Requirements
- FR-001: O sistema DEVE exibir a página de Política de Privacidade na rota
/politica-de-privacidade. - FR-002: A página DEVE incluir o componente Navbar no topo e o componente Footer no rodapé, idênticos aos demais do site.
- FR-003: A página DEVE apresentar as seguintes 8 seções numeradas, nesta ordem:
- Instituição Responsável
- Coleta e Uso de Dados Pessoais
- Transferência de Dados Pessoais
- Uso de Cookies
- Direitos do Usuário (acesso, correção, exclusão, portabilidade — conforme LGPD)
- Segurança dos Dados
- Alterações nesta Política
- Contato / DPO
- FR-004: Cada seção DEVE ter um título com numeração visível (ex.: "1. Instituição Responsável") e conteúdo textual explicativo.
- FR-005: O conteúdo da página DEVE ser puramente estático — sem chamadas de API, sem fetchs de dados externos.
- FR-006: O Footer DEVE conter um link de texto "Política de Privacidade" que navega para
/politica-de-privacidadeusando roteamento client-side (sem reload da página). - FR-007: O layout do conteúdo principal DEVE ter largura máxima de 800 px e ser centralizado horizontalmente na tela.
- FR-008: O design DEVE ser consistente com o tema escuro (dark) existente no site, utilizando as mesmas variáveis de cor e tipografia do restante das páginas.
- FR-009: A seção de Direitos do Usuário DEVE mencionar explicitamente: direito de acesso, correção, exclusão, portabilidade e revogação de consentimento, conforme a LGPD.
- FR-010: A seção de Contato / DPO DEVE incluir um canal de comunicação (e-mail) para que o usuário exerça seus direitos LGPD.
Key Entities
- PrivacyPolicyPage: Componente de página React, sem estado próprio (stateless), responsável por renderizar o conteúdo da política. Localizado em
frontend/src/pages/PrivacyPolicyPage.tsx. - Footer (atualizado): Componente existente que receberá o link adicional para a política de privacidade. Localizado em
frontend/src/components/Footer.tsx. - Rota /politica-de-privacidade: Entrada no sistema de roteamento client-side que mapeia a URL para
PrivacyPolicyPage.
Success Criteria (mandatory)
Measurable Outcomes
- SC-001: O link "Política de Privacidade" está presente e clicável no Footer em 100% das páginas que incluem o Footer.
- SC-002: A página
/politica-de-privacidadeexibe as 8 seções obrigatórias, cada uma com título numerado e conteúdo. - SC-003: A navegação para a página a partir do Footer ocorre em menos de 500 ms (transição client-side, sem recarregamento).
- SC-004: O layout é responsivo — legível em telas a partir de 320 px de largura sem overflow horizontal.
- SC-005: A conformidade visual é total: as mesmas cores, fontes e espaçamentos do tema dark são aplicados, sem elementos que "quebrem" o padrão visual do site.
- SC-006: O conteúdo da seção 5 (Direitos do Usuário) abrange todos os 5 direitos previstos na LGPD mencionados nos requisitos.
Assumptions
- O nome, CNPJ e endereço da empresa imobiliária serão fornecidos para preenchimento do conteúdo da seção 1 (Instituição Responsável); enquanto não fornecidos, placeholders serão utilizados como
[NOME DA EMPRESA],[CNPJ]e[ENDEREÇO]. - O e-mail do DPO (encarregado de dados) será fornecido para a seção 8; enquanto não fornecido, será usado o placeholder
[EMAIL DO DPO]. - O componente Layout que envolve Navbar + Footer já existe e será reutilizado da mesma forma que nas demais páginas.
- Não há necessidade de versionamento do conteúdo da política — a data de "última atualização" será estática no código.
- A página não precisa suportar múltiplos idiomas (apenas português brasileiro).
- Acessibilidade básica (contraste adequado, semântica HTML) é esperada mas não requer certificação WCAG formal nesta versão.
- O conteúdo textual da política sera adequado para uma imobiliária genérica, baseado na LGPD; não é um documento jurídico revisado por advogado.