Voltar ao portfólio

Produto

Clinic Management System

Agenda, prontuários e pagamentos da clínica em um só lugar.

Um sistema de gestão para clínicas de psicologia e saúde no Brasil. Organiza profissionais, salas e agendamentos junto dos prontuários e pagamentos, dentro das condições da hospedagem compartilhada do cliente.

Produto pago · acesso sob consulta

Uma agenda compartilhada entre pessoas e salas

Um agendamento precisa de um profissional e de uma sala. A agenda compartilhada reúne esses recursos, com checagem de conflitos na gravação. Prontuários e acompanhamento de pagamentos ficam junto desse trabalho diário de agendamento.

Contexto da entrega

Time
Sozinho, do design ao deploy
Período
2026-07 – 2026-10
Status
Feito para um cliente; virando um produto white-label
Stack
Laravel 12 (PHP 8.3), React, TypeScript, MySQL

Hospedagem, dados de pacientes e agenda

  • Hospedagem compartilhada como restrição dura

    A clínica já tinha hospedagem cPanel compartilhada, então a produção tinha que caber nela: sem Docker, Node.js, root nem portas customizadas. É um app Apache/PHP convencional, Docker fica só no desenvolvimento, e cada release é um pacote validado (checagens de segurança, audit de dependências, testes, smoke test de produção) com rollback documentado.

  • Dados de paciente cifrados campo a campo

    Os dados que identificam o paciente são um payload JSON selado com XChaCha20-Poly1305, amarrado ao tipo, UUID e campo do registro, com chaves versionadas e comando de rotação. O CPF continua buscável por um blind index com HMAC. As buscas de pacientes enviam nomes e CPFs no corpo da requisição, em vez da URL, mantendo esses termos fora dos logs de acesso baseados em URL. O custo: sem busca textual no banco.

  • Conflito de agenda checado onde é gravado

    Horários trafegam em UTC ISO 8601 e são exibidos em America/Bahia. Sobreposição usa intervalo semiaberto, então sessões coladas são permitidas, e a checagem e a gravação acontecem na mesma transação, então duas pessoas marcando a mesma sala ao mesmo tempo não conseguem as duas.

Por dentro do deploy em hospedagem compartilhada

O browser carrega um SPA React e chama /api/v1 no Apache com PHP-FPM, que roda a API Laravel 12 na hospedagem cPanel compartilhada da clínica. A API guarda campos de paciente cifrados no MySQL e arquivos cifrados fora do document root, e sincroniza com o Google Calendar.Hospedagem cPanel compartilhadaHTTPSsincronizaBrowserReact SPAApachePHP 8.3 · FPMLaravel 12API /api/v1MySQL 5.7campos cifradosArquivos protegidosfora do docrootGoogle Calendar
  • API em Laravel 12 e SPA em React + Vite + TypeScript compilado antes do release.
  • MySQL em produção; o MVP rodava em SQLite, e backup e restore ainda suportam os dois.
  • Desenvolvimento em Docker Compose; produção na hospedagem cPanel compartilhada que a clínica já pagava.
  • Integração com Google Calendar e um MCP server para operação assistida.

Disponibilidade e limites de operação

  • Só em português: feito em torno da lei e da regulação brasileiras (dados de saúde, LGPD).
  • A hospedagem compartilhada define o teto: sem processos de longa duração nem serviços próprios.
  • Repositório privado com dados de cliente por perto; os screenshots serão anonimizados.