- Fiabilidade, DevOps e legado
SIGA – Instituto Politécnico Planalto
Manutenção e modernização de um sistema académico e financeiro herdado, em PHP, sem o reescrever.
- Período
- 2026
- Estado
- Em desenvolvimento
- Papel
- Mantenedor e responsável pela evolução do sistema (segurança, módulo financeiro, base de dados e deploy)
- Cliente
- Instituto Politécnico Planalto (IPP)
Problema
O IPP gere inscrições, matrículas, turmas, estágios, propinas e a conta do estudante num SIGA em PHP procedural que não foi escrito por mim. O sistema tinha falhas de segurança, colações misturadas na base de dados e regras financeiras inconsistentes em multas, propinas e depósitos.
Solução
Assumi a manutenção: importei a base herdada para git e trabalho os pedidos da instituição em lotes numerados. Fiz uma auditoria de segurança e corrigi falhas de autenticação e de SQL injection, escrevi testes para o módulo financeiro, normalizei a base de dados e passei o deploy para Coolify. Entre as entregas estão o pagamento de propinas pelo saldo da conta, a conferência de depósitos pela Secretaria e o portal do estudante com inscrição online.
Decisões técnicas
01
Corrigir em vez de reescrever
O sistema mexe com dinheiro de estudantes e está em uso. Reescrever pararia a instituição; corrigir por módulos, com testes, deixa-a a funcionar enquanto melhora.
02
Suite de testes própria para o módulo financeiro
Scripts PHP de linha de comando cobrem estornos, abatimentos, pagamento com saldo, anti-duplicação de talões e recibos provisórios, e saem com código 0/1 para poderem correr em CI. Os testes encontraram multas perdoadas indevidamente e uma geração de facturas em lote que estava partida.
03
Uma só colação: utf8mb4 e InnoDB
Migrações versionadas padronizaram a base para utf8mb4_unicode_ci e InnoDB, o que acabou com os erros "Illegal mix of collations" entre o MySQL 8 local e o MariaDB do servidor. Os ENUMs com acentos foram convertidos antes da mudança de charset.
04
Deploy moderno para PHP sem framework
Um nixpacks.toml e um router.php põem o PHP puro a correr em Coolify, forçando o provider PHP. Os uploads passaram a ter uma raiz única persistente para sobreviver aos deploys.
Imagens
01 / 03 — Entrada do novo Portal do Estudante do IPP, com acesso por número de BI ou código de estudante
Tecnologias
- PHP
- MySQL
- Bootstrap
- JavaScript
- Coolify
Resultados verificáveis
- casos numa execução da suite de testes financeiros
- 317
- migrações SQL versionadas
- 26
O que aprendi
Num sistema herdado, reproduzir o erro com uma cópia local da base vale mais do que adivinhar. E muitas vezes o problema está nos dados (anos a NULL, facturas duplicadas) e não no código.
ODS

ODS 4 · Educação de Qualidadeprincipal
Inscrição online, portal do estudante e módulo financeiro testado: o instituto gere matrículas e propinas com menos erros, e o estudante trata do seu processo sem vir ao balcão.

ODS 9 · Indústria, Inovação e Infra-estruturascomplementar
Auditoria de segurança, base de dados normalizada e deploy em Coolify modernizam a infra-estrutura digital de um sistema herdado em PHP, sem o reescrever.
