Frontend — Next.js e sistema de componentes
Next.js com App Router, React e TypeScript organiza a aplicação web. Cake UI e tokens de Tailwind compõem os controles e estilos; um registry de styled-components integra a renderização dos componentes. A tela de auditoria organiza documentos e estados de revisão; a demonstração de componentes utiliza dados de exemplo para explorar os fluxos de interação.
API — NestJS, validação e domínio
A API NestJS separa módulos de usuários, notificações e saúde do serviço. DTOs com class-validator e ValidationPipe aplicam transformação, whitelist e rejeição de propriedades extras; Swagger descreve os contratos. TypeORM mapeia usuários, papéis e notificações para PostgreSQL. O modelo de papéis e as verificações administrativas organizam as permissões de acesso.
Notificações — estados e consistência
O serviço consulta notificações por destinatário e controla mudanças de estado dentro de transações. Atualizações condicionais evitam regressões de notificações já resolvidas; a invalidação de cache ocorre após a alteração. O transporte SMTP integra a configuração de comunicação por e-mail.
Execução — serviços separados
Contêineres isolam frontend, API e PostgreSQL, com targets de produção e configurações externas para banco e correio. Jenkins participa da integração e entrega. Essa infraestrutura organiza a execução dos serviços e a evolução do produto.