Aniversariantes
App que mostra os pacientes que fazem aniversário no mês e agenda o parabéns pelo WhatsApp, com modelos de mensagem da própria clínica.

O problema
Mandar parabéns aos pacientes aproxima a clínica, mas ninguém tinha tempo de olhar a data de nascimento de cada um no prontuário.
O resultado
O app lista os aniversariantes do mês, mostra quem ainda não recebeu mensagem e agenda tudo de uma vez, para o dia do aniversário ou alguns dias antes.
- Aniversariantes lidos do prontuário, agrupados por dia.
- Parabéns agendado em lote, com data e hora opcionais.
- Virada do ano: em dezembro, os aniversários de janeiro já contam para o ano seguinte.
- Situação real de cada mensagem (enviada, entregue, lida ou com falha), conferida a cada 15 minutos.
- Modelos com variáveis e vídeo, e conferência do número de envio de cada unidade.
- Várias unidades por clínica.
Como foi construído
- Fatia vertical: um diretório por caso de uso, um núcleo puro e portas para o prontuário e para as mensagens.
- Dois jeitos de ler o prontuário: um sistema é consultado na hora; o outro é lido de uma cópia renovada toda madrugada ou por um botão, porque a API dele lista um dia por vez e tem limite de chamadas por hora.
- Acesso sem login: a clínica entra pela aba da plataforma de mensagens ou por um link assinado (HMAC). O setup tem senha própria.
- Banco isolado: esquema próprio no Postgres, com acesso só pelo servidor.
- Contrato do banco conferido no deploy.
Stack por camada
- Telas: Next.js 16, React 19, Tailwind 4, Radix, react-day-picker
- API: Hono, zod, OpenAPI 3.1
- Dados: PostgreSQL (Supabase)
- Qualidade: TypeScript, Vitest, ESLint, CI no GitHub Actions
- Entrega: Docker, nginx, VPS
Telas
Os dados que aparecem nas telas são fictícios.
(abre a imagem inteira em outra aba)Seleção em lote: o painel ao lado mostra o que será enviado.
(abre a imagem inteira em outra aba)Parabéns agendado para o dia do aniversário ou alguns dias antes.
(abre a imagem inteira em outra aba)Modelos: variáveis ligadas aos dados do paciente e a regra de quando a mensagem sai.
(abre a imagem inteira em outra aba)Histórico: cada envio e a situação dele, com filtros e cancelamento em lote.
(abre a imagem inteira em outra aba)A ficha do envio traz a linha do tempo, a mensagem como saiu e os parabéns dos anos anteriores.
(abre a imagem inteira em outra aba)Página de convite do programa beta para novas clínicas.