Estudo de caso
HelpDesk Lite
Sistema de chamados de suporte em linha de comando, com SQLite, histórico de alterações, resumo e exportação.
Tecnologias
- Python
- SQLite
- unittest
- ruff
- GitHub Actions
Contexto
O HelpDesk Lite registra e acompanha chamados de TI sem depender de serviços externos. Começou com cadastro, consulta e status e evoluiu para edição, busca, histórico, indicadores e exportação, mantendo o mesmo banco.
Decisões
01Migração de esquema versionada
O esquema usa PRAGMA user_version. Um banco criado numa versão anterior é atualizado automaticamente, sem perder dados. Validei a migração numa cópia do banco real.
02Histórico em tabela própria
Criação, edições e mudanças de status são registradas com data, e o histórico é apagado junto com o chamado (ON DELETE CASCADE).
03Exportação segura
O CSV neutraliza valores que começam com =, +, - ou @, para evitar injeção de fórmulas ao abrir em planilhas.
04Menu e subcomandos
O mesmo código atende o menu interativo e subcomandos com saída JSON e códigos de saída. Os testes do menu acharam uma incoerência real, que corrigi: deixar todos os campos da edição em branco gerava erro em vez de “nenhuma alteração”.
Resultados
- Testes automatizados
- 72
- Cobertura de linhas (medida localmente)
- 96%
- CI
- ruff + Python 3.10 a 3.13
O que ainda falta
- Não há autenticação, múltiplos usuários, anexos nem interface web.