ShiftFit
Sistema de gestão de salas de consultório e escalas de profissionais de saúde. Encaixa profissionais em salas e turnos respeitando compatibilidade de especialidade, com auditoria automática e segurança em produção.
O cenário
Numa estrutura ambulatorial com dezenas de salas, dezenas de especialidades e dezenas ou até mesmo centenas de profissionais, o trabalho aparentemente trivial de "quem usa qual sala em qual turno" se transforma rápido num quebra-cabeça combinatório.
Cada profissional tem um número fixo de turnos comprometidos por semana — mas nem todo turno é uma alocação imutável. Férias, licenças, congressos e trocas pontuais sobrescrevem o plano-padrão. A sala precisa ser compatível com a especialidade do profissional. E conflitos não podem ser descobertos depois do fato — a planilha da semana já saiu, o paciente já foi marcado.
Planilhas resolvem o caso pequeno. Quando o sistema começa a ter dezenas de pessoas, centenas de turnos por semana e ciclos de revisão recorrentes, a planilha vira um campo minado de versões divergentes, sobreposições silenciosas e regras de cobertura que ninguém lembra de ter combinado. O ShiftFit é a resposta a essa transição.
O que o sistema faz

A operação é organizada em três camadas:
1. Cadastro e regras
Hierarquia profissional Profissão → Especialidade → Profissional: cada profissional pertence a uma profissão (Medicina, Enfermagem, Nutrição, Fonoaudiologia, …) e, opcionalmente, a uma especialidade dentro dela. Regras de cobertura definem que uma especialidade pode atender em lugar de outra (a Cardiologia cobre a Clínica Médica; a Pediatria não cobre a Geriatria).
Cada sala carrega um discriminador de tipo (consultório básico, exclusivo de especialidade, sala de exames) e, quando aplicável, uma especialidade obrigatória — o sistema rejeita alocações incompatíveis na borda do banco, não na aplicação.
2. Escala
Modelo em dois níveis. A alocação-padrão descreve o plano recorrente: este profissional, nesta sala, neste dia da semana, neste turno, durante esta vigência. A alocação-exceção registra o desvio pontual: férias, licença, congresso, troca, cancelamento.
A grade que o operador vê é a aplicação das exceções sobre o padrão. Não há "duas verdades" — o estado real e o plano teórico convergem na mesma renderização, e cada célula carrega rastreio de qual padrão a originou e qual exceção a alterou.

3. Operação
Três perspectivas da grade — por sala, por profissional e por especialidade — para que cada papel operacional veja o que importa pra ele. Cinco relatórios cobrem o cotidiano de gestão: ocupação por sala, profissionais sem alocação completa, salas subutilizadas, taxa de exceções da semana, conflitos pendentes.
Um wizard de criação em lote permite registrar férias ou licenças cobrindo um período inteiro com uma única operação. Um comando de import em massa aceita CSV com schema controlado, normaliza nomenclatura de salas (A3 → A03), detecta conflitos simetricamente e é idempotente por slug — re-importar a mesma planilha não duplica nada.

Como o sistema protege seu trabalho
Quatro decisões de design garantem que o dia-a-dia da operação seja silencioso: o sistema previne problemas antes de exigir atenção pra eles.
Conflitos impossíveis
Se uma profissional já está alocada na sala A03 na quarta-feira de manhã, ninguém — nem outro operador, nem mesmo uma falha de programa — consegue alocá-la simultaneamente em outra sala no mesmo horário. A regra não fica "checada pelo software": ela está cravada no nível mais baixo, dentro do próprio banco de dados, que simplesmente se recusa a registrar a sobreposição. É uma camada de proteção que sobrevive a qualquer descuido de quem está usando o sistema.
Conflitos não te bloqueiam
Quando você quer alocar um turno mas a sala compatível já está ocupada, o sistema não trava e não te força a resolver na hora. Ele guarda o turno como "comprometido, sala pendente" e te deixa seguir. Você resolve depois — com a visão da semana inteira na cabeça, em vez de um conflito por vez.
A escolha vem de uma observação prática: gestores tomam decisões melhores enxergando o quebra-cabeça inteiro do que sendo forçados a despachar conflitos isoladamente. O dashboard mostra um card dedicado a essas pendências pra que nada se perca.
Histórico completo, sem esforço
Toda alteração — quem mudou, quando, o quê — fica registrada automaticamente. Se daqui a seis meses alguém perguntar "quando essa sala mudou de tipo?" ou "quem registrou essa licença?", a resposta está lá. Não há "lembrar de logar" — o sistema cobre todas as alterações de forma uniforme, em todas as telas.
Renomear não cria duplicatas
Se uma profissional muda de sobrenome, o sistema entende que é a mesma pessoa: o histórico permanece atado a ela. Re-importar a mesma planilha não cria registros novos — o sistema reconhece quem já está cadastrado e atualiza em vez de duplicar. É um detalhe pequeno que poupa horas de limpeza manual no longo prazo.
Segurança em produção
O sistema lida com dados sensíveis em ambiente clínico, e a segurança é tratada como pré-requisito — não como recurso opcional:
- Login com dois fatores obrigatório. Além da senha, o operador precisa de um código de 6 dígitos gerado no celular (via Google Authenticator, Authy ou similares). Mesmo que a senha vaze, o invasor não entra.
- Conexão criptografada. Toda comunicação entre o navegador e o servidor passa por HTTPS — ninguém escuta no caminho. Tentativas de acesso pela versão insegura são automaticamente redirecionadas.
- Bloqueio automático de força bruta. Cinco tentativas erradas de login resultam em uma hora de bloqueio. Os ataques mais comuns ficam imediatamente neutralizados.
- Senhas robustas exigidas. Mínimo de 12 caracteres, com bloqueio de senhas comuns. O sistema rejeita "Mudar123!" antes mesmo de cadastrar.
- Trilha de auditoria. Cada tentativa de login — sucesso ou falha — é registrada de forma estruturada, pronta pra qualquer investigação ou requisição em conformidade com a LGPD.
- Zero dependência externa. Todos os arquivos do sistema são servidos do próprio servidor — nada vem de redes terceiras que poderiam ser comprometidas.
O resultado é uma pontuação A+ no Mozilla Observatory — o teste mais reconhecido da indústria pra avaliar a postura de segurança de aplicações web. O ShiftFit pontua 120 de 100 (com bônus por configurações exemplares), num patamar que pouquíssimos sistemas em produção conseguem alcançar.
Tecnologias
O sistema é construído sobre tecnologias maduras e amplamente adotadas:
- Django — framework web usado por Instagram, Pinterest e Mozilla; em sua versão de longo suporte (LTS), com atualizações de segurança garantidas até 2028
- PostgreSQL — o banco de dados open-source mais robusto do mercado, amplamente usado em instituições financeiras e de saúde
- HTMX — abordagem moderna que mantém a interface fluida sem a complexidade de aplicações single-page (como React ou Vue)
- Railway — plataforma de hospedagem com banco gerenciado e backup automático
A escolha por essas tecnologias prioriza estabilidade e previsibilidade de manutenção: nenhuma delas é experimental, todas têm comunidade ativa, e qualquer programador Django consegue dar continuidade ao projeto sem aprender um framework novo.
Garantias de robustez
| Métrica | Valor |
|---|---|
| Verificações automáticas a cada mudança | 221 |
| Vulnerabilidades conhecidas no software de base | 0 |
| Suporte garantido até | 2028 |
221 verificações automáticas rodam a cada alteração no código. Se algo quebra, descobrimos antes de chegar em produção: regras de alocação, prevenção de conflitos, importação em massa, geração de relatórios, autenticação, navegação entre semanas — toda funcionalidade tem sua própria cobertura. E quando um problema aparece em produção, ele vira teste antes de virar correção — é o caminho mais rápido para garantir que o mesmo caso não volte a acontecer.