Partilhar: WhatsApp
aulify · Mini-Projecto
UC UC00606 · T. Desenv. Software, T. Inform. Gestão
Versão · Aluno

Mini-Projecto · Gestor de despesas pessoais

Aplicação CLI em Python com persistência em ficheiro
⏱ Duração estimada: 8 horas (≈ 5 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma aplicação de consola em Python para gerir despesas pessoais. Permite registar gastos, categorizar, ver totais e gerar relatórios. Aplica tudo o que foi aprendido: variáveis, controlo, listas, dicts, funções, ficheiros, excepções.

Requisitos

Funcionais

  1. Registar despesa — data, descrição, valor, categoria.
  2. Listar todas as despesas, ordenadas por data.
  3. Filtrar por categoria ou intervalo de datas.
  4. Estatísticas — total mensal, por categoria, top 5 mais caras.
  5. Persistência em ficheiro CSV ou JSON.
  6. Menu interactivo com opções.

Não-funcionais

  1. Código decomposto em funções (mín. 8 funções com responsabilidade clara).
  2. Comentários/docstrings nas funções principais.
  3. Tratamento de erros (entradas inválidas, ficheiros em falta).
  4. Push para repositório Git com pelo menos 5 commits.

Fases

Fase 1 · 1h

Planeamento

Documento de 1 página com menu, fluxos e lista de funções.

Fase 2 · 2h

Core · registar e listar

Versão 0.1 com adicionar + listar funcionais.

Fase 3 · 2h

Filtros e estatísticas

Versão 0.2 com filtros e estatísticas.

Fase 4 · 2h

Persistência

Versão 1.0 com persistência. Dados sobrevivem ao restart.

Fase 5 · 1h

Polish e entrega

Versão final + README + apresentação ao vivo (3-5 min).

Critérios de avaliação

Item Peso
Adicionar / listar funcionais 20%
Filtros úteis 15%
Estatísticas correctas 15%
Persistência funcional 20%
Decomposição em funções 10%
Tratamento de erros 10%
Git history (commits descritivos) 5%
README e apresentação 5%

Reflexão

Em meia página: que função foi mais difícil? O que aprendeste sobre decomposição? Como adaptarias este projecto se tivesse de ter interface gráfica?