L
Voltar aos projetos

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

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

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

  3. 03Exportação segura

    O CSV neutraliza valores que começam com =, +, - ou @, para evitar injeção de fórmulas ao abrir em planilhas.

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