Um sistema de gestão que eu desenhei e construí sozinho para uma escola de inglês, ao longo de dezesseis meses e 419 commits. Rodou a escola por mais de um ano; parei em agosto de 2026 e volto a ele nas férias. A matrícula preenche o PDF do contrato direto no navegador, o contrato sai para assinatura eletrônica com status acompanhado por webhook, a escola fala com as famílias por web push, e a agenda de turmas é um quadro drag-and-drop. A marca e os dados da escola ficam privados — então o demo abaixo é o mesmo painel reconstruído com marca genérica e dados fictícios, navegável de ponta a ponta.

01 / O PROBLEMA
A matrícula morava na impressora e num grupo de WhatsApp.
Uma escola de inglês tocava a matrícula como a maioria das escolas pequenas: contrato preenchido à mão, impresso, assinado quando o responsável aparecia, e cobrado pelo WhatsApp quando não aparecia. A agenda vivia numa planilha, os avisos saíam conversa por conversa, e ninguém tinha uma visão única de quem estava matriculado, quem tinha assinado e quem ainda devia assinatura.
Eu construí o sistema que substituiu essa rotina — e segui construindo por dezesseis meses.
02 / A CONSTRUÇÃO
Matrícula que preenche o próprio contrato.
O PDF do contrato é preenchido no navegador. Os dados do formulário de matrícula caem no contrato de verdade via pdf-lib — sem redigitar, sem o modelo desatualizar. O documento sai para assinatura eletrônica, e um webhook vira o status no painel quando ele volta assinado.
Web push para falar com as famílias. Os avisos saem como notificação, em vez de mais uma mensagem perdida num grupo de WhatsApp.
Agenda drag-and-drop. As turmas se movem entre salas e horários arrastando, e a agenda imprime e exporta pra parede ao lado da recepção.
Por baixo: React com TypeScript, Postgres com Drizzle ORM e migrations numeradas, e uma suíte de regressão em Playwright que roda contra um banco de teste com seed.
03 / DEZESSEIS MESES
419 commits, de abril de 2025 a agosto de 2026.
Essa é a parte que demo nenhum finge. O repositório tem 419 commits em dezesseis meses — cerca de 50 mil linhas no fim — e o histórico se lê como o de um produto de verdade: primeiro a matrícula, depois contrato e assinatura, depois a agenda, depois o push. Mudança de schema saiu como migration; os fluxos que importam têm teste de ponta a ponta.
Um sistema só acumula dezesseis meses de commits sendo usado, e este foi — matrícula real, contrato assinado de verdade, agenda pendurada numa parede de verdade.
04 / O DEMO
O mesmo painel, vestindo uma marca genérica.
A marca e os dados da escola pertencem à escola, então a versão que abre aqui é uma reconstrução do painel com marca genérica, sobre dados fictícios. As mesmas telas, a mesma densidade: três papéis de acesso (diretor, supervisor, secretaria), cinco gráficos ao vivo, importação de planilha e tema claro/escuro animado com a API de View Transitions.
O demo inteiro é um único HTML. Abre no celular, sem login e sem instalar nada — e esse é o ponto: o sistema real existe, e esta é a parte dele que eu consigo te entregar num link.
Linhas de código
~50k
Commits
419
Meses de construção
16
Demo
1 HTML
