Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expense Tracker

A command-line application built with .NET 9 to help you efficiently manage your personal expenses. Track, categorize, summarize, and export your expenses from your terminal.

💡 Based on: roadmap.sh project - Expense Tracker


📦 Requirements


🚀 Features

Expense Management – Add, update, and delete expenses from the terminal.
Categorization – Organize expenses by categories (food, utilities, transport, etc.).
Summaries – Get summaries by total, category, and month.
Filtering – View expenses by date and category filters.
Monthly Budget Tracking – Set a monthly budget and get alerts if exceeded.
CSV Export – Export your expenses to CSV for external use.
User-Friendly CLI – Intuitive command structure and prompts.
Persistent Storage – Your data is saved automatically between sessions.


⚙️ Installation

git clone https://github.com/hectorrosario22/ExpenseTracker.git
cd ExpenseTracker
dotnet build

🧪 Usage

Run the application with:

dotnet run -- <command> [arguments]

📖 Commands Overview

Command Description
add Add a new expense
update Update an existing expense
delete Delete an expense
list List filtered (or all) expenses
summary Show total and category-based summaries
csv Export filtered (or all) expenses to CSV
budget Set or update the monthly budget
help Show command help

📚 Command Examples

dotnet run -- add --description "Lunch" --amount 20 --category "food" --category "essential"
dotnet run -- update --id 1 --description "Groceries" --amount 45 --category "food"
dotnet run -- delete --id 1
dotnet run -- list --month 5 --category "utilities"
dotnet run -- summary --month 5
dotnet run -- csv --month 5
dotnet run -- budget --monthly-expenses 1500

🎥 Demo

Expense Tracker Demo


🧠 Concepts Demonstrated

  • Command-line application development using Cocona for simplified CLI command parsing and routing
  • Separation of responsibilities through clear organization of Services, Models, Parameters, and Interfaces, facilitating code readability and maintenance
  • Local file-based persistence by storing and managing expense data in a JSON file
  • Data filtering and formatting logic for generating summaries and exporting results to CSV

🤝 Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.


📄 License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages