Voltar

SFN — Sistema de Fiscalização e Notificação de Obras

Plataforma para a Secretaria de Infraestrutura e Obras de Francisco Morato/SP. Cadeia completa Solicitação → Notificação → Embargo → Multa com PWA, autenticação LDAP, impressão térmica Zebra e API para integração com sistemas externos.

React 19TypeScriptExpress 5PostgreSQL 17LDAPPWAZebra ZQ220

Contexto

O SFN atende a Secretaria de Infraestrutura e Obras de Francisco Morato/SP. Substitui blocos de papel e planilhas por um pipeline auditável que conecta solicitações externas, vistorias em campo e a cadeia formal de procedimentos fiscais.

A plataforma é PWA tablet-first: o fiscal cria a notificação no local, anexa fotos da vistoria, imprime no Zebra portátil e entrega o documento físico ao autuado — tudo offline-capable.

Cadeia de procedimentos

Cada item é registro independente — dados são copiados no momento da criação, alterações posteriores não afetam os demais. A navegação bidirecional mostra origem e gerados.

Solicitação → Notificação → Embargo → Multa

Recursos principais

API de Integração Externa

Permite que sistemas externos (georreferenciamento, ouvidoria, MP, app cidadão) criem solicitações sem login LDAP. Autenticação via header X-API-Key.

Stack

CamadaTecnologia
FrontendReact 19, TypeScript 5.9, Vite 8, TailwindCSS 4.2
BackendExpress 5, TypeScript, Node.js 22
BancoPostgreSQL 17 (migrations SQL sequenciais)
AuthLDAP/AD + JWT
InfraDocker Compose, Nginx
ImpressãoZebra ZQ220 Plus (ZPL / jsPDF fallback)

Desafios resolvidos

Galeria

Dashboard — cards resumo (notificações, solicitações) e gráficos de distribuição por status e retorno AR.
Wizard de Nova Notificação — busca por inscrição, proprietário ou endereço composto (rua + número).
Detalhe da notificação — card 'Tipo de Entrega' separado (Presencial / Correios) com toggle inline.
Cadeia de procedimentos — navegação bidirecional Solicitação → Notificação → Embargo → Multa.
Listagem de Multas — fluxo de status (PEND_ENTREGA → AG_RECURSO → RECURSO_EXPIRADO) com janela de recurso.
Fotos de vistoria — captura via câmera do tablet, descrição inline, navegação na visualização expandida.
Solicitações — triagem com chips de prioridade colorida, prazo legal e origem (Ouvidoria, MP, app cidadão).
Impressão térmica (Zebra ZQ220) e templates A4 oficiais com assinatura padronizada.