Saltar para o conteúdo
Edson Francisco
  • 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.