python-by-example

💰 Project 02: Expense Tracker

Difficulty: 🟡 Intermediate

Description

Build a command-line expense tracker that allows users to add, view, and analyze their expenses. Data is saved to a JSON file so expenses persist between sessions.

Requirements

  1. Add new expenses with a description, amount, and category
  2. View all expenses in a formatted table
  3. Filter expenses by category
  4. Show a summary with total spending and spending per category
  5. Save and load expenses from a JSON file
  6. Delete an expense by its ID

Concepts You’ll Practice

Example Output

💰 EXPENSE TRACKER
==================

1. Add Expense
2. View All Expenses
3. View by Category
4. Summary
5. Delete Expense
6. Exit

Choose an option: 1

Enter description: Coffee
Enter amount: 4.50
Enter category (food/transport/entertainment/bills/other): food
✅ Expense added successfully!

Choose an option: 4

📊 EXPENSE SUMMARY
Total Expenses: $127.50
  🍔 Food:          $45.00 (35.3%)
  🚗 Transport:     $32.50 (25.5%)
  🎬 Entertainment: $25.00 (19.6%)
  📄 Bills:         $25.00 (19.6%)

How to Run

cd projects/02_expense_tracker
python solution.py

Bonus Challenges