O ExpenseTracker é um sistema de gerenciamento de despesas desenvolvido em Java, baseado no projeto proposto pelo Roadmap.sh
O ExpenseTracker é uma aplicação executada via linha de comando (CLI) que permitirá ao usuário gerenciar suas despesas de forma simples e eficiente.
A aplicação possibilita:
- Cadastro de despesas com descrição e valor
- Atualização de despesas
- Remoção de despesas
- Listagem completa das despesas
- Resumo total das despesas
- Resumo mensal das despesas
Os dados são persistidos em arquivo local (JSON), garantindo armazenamento simples e funcional.
O projeto segue o padrão de arquitetura em camadas, organizado da seguinte forma:
📦 expensetracker
┣ 📂 controller
┣ 📂 service
┣ 📂 repository
┣ 📂 model
┗ Main.java
- Controller → Responsável por interpretar os argumentos da linha de comando.
- Service → Contém as regras de negócio e validações.
- Repository → Responsável pela persistência dos dados em arquivo.
- Model → Representação da entidade
Expense.
✅ RF01 - Adicionar despesa
Permite cadastrar uma despesa com descrição e valor.
✅ RF02 - Atualizar despesa
Permite modificar descrição e/ou valor através do ID.
✅ RF03 - Remover despesa
Remove uma despesa através do ID informado.
✅ RF04 - Listar despesas
Exibe todas as despesas cadastradas.
✅ RF05 - Resumo total
Exibe o valor total gasto.
✅ RF06 - Resumo mensal
Exibe o total de despesas de um mês específico do ano corrente.
- A descrição é obrigatória.
- O valor deve ser maior que zero.
- O ID é único e gerado automaticamente.
- Não é permitido atualizar ou excluir despesas inexistentes.
- O mês informado no resumo deve estar entre 1 e 12.
✨ Categorias de despesas e filtro por categoria
✨ Definição de orçamento mensal com alerta ao ultrapassar limite
✨ Exportação das despesas para arquivo CSV
$ expense-tracker add --description "Lunch" --amount 20
# Expense added successfully (ID: 1)
$ expense-tracker add --description "Dinner" --amount 10
# Expense added successfully (ID: 2)
$ expense-tracker list
# ID Date Description Amount
# 1 2024-08-06 Lunch $20
# 2 2024-08-06 Dinner $10
$ expense-tracker summary
# Total expenses: $30
$ expense-tracker delete --id 2
# Expense deleted successfully
$ expense-tracker summary
# Total expenses: $20
$ expense-tracker summary --month 8
# Total expenses for August: $20- Clone o repositório:
git clone https://github.com/seu-usuario/ExpenseTracker.git-
Acesse o diretório do projeto.
-
Compile o projeto:
javac Main.java- Execute via terminal:
java Main add --description "Lunch" --amount 20Projeto em desenvolvimento
Fevereiro de 2026