‹ ARQUIVO NB-C013 · .case · 2026·06

Plataforma municipal de registo de ocorrências

NB-C013 .case

Plataforma web para um município registar e acompanhar ocorrências reportadas por cidadãos e serviços, com foco em coordenação operacional e consulta pública do estado de cada caso.

Construí a aplicação com Next.js 16 (App Router) e React 19 em TypeScript, com PostgreSQL via Prisma. O cidadão submete uma ocorrência com fotografias, localização GPS e contacto; as imagens são normalizadas para WebP com o Sharp. Um painel administrativo protegido por NextAuth valida cada registo antes de ele aparecer no mapa público, construído com Leaflet e camadas de calor. A submissão é defendida por hCaptcha e por limitação de pedidos sobre Redis, com degradação controlada quando o serviço não está configurado.

A interface é multilingue (next-intl) e os formulários usam React Hook Form com validação Zod partilhada entre cliente e servidor. A aplicação é instalável como PWA.

  Cidadao/Servico
        |  submete (foto, GPS)
        v
  +----------------+   valida   +--------+
  |  Registo + API | ---------> | Admin  |
  +----------------+            +--------+
        |                          |
        |  Prisma                  | publica
        v                          v
  +-----------+              +-----------+
  | PostgreSQL|              | Mapa pub. |
  +-----------+              +-----------+

O deploy é contínuo via Coolify a partir da branch principal. O projeto está arquivado para fins de portfólio.

BRI assistente

Quer saber sobre um projeto, um serviço ou uma notícia recente? Pergunte. Conheço todo o conteúdo deste site.