Final Course Project: Automated Expense Tracker

🚀 Project Overview

In this final project, you will build a command-line tool that helps users manage their daily expenses. You will apply Python's concise syntax, versatile data structures, file handling for permanent storage, and OOP to organize the application.

Problem Statement

Managing finances manually is error-prone. Users need a simple way to record their spending, categorize expenses (Food, Rent, Travel), and see a summary of their total monthly expenditure. The data must not be lost when the program closes.

Project Objectives

Core Features

  1. Add Expense: Input amount, category, and date.
  2. View All: Display a list of all recorded expenses in a clean table format.
  3. Category Summary: Show total spent per category using a dictionary.
  4. Budget Alert: Notify the user if their total spending exceeds a pre-defined limit.
  5. Persistent Storage: Automatically load previous data on startup.

Development Steps

  1. Create an Expense class with an __init__ method.
  2. Develop a module file_handler.py for reading/writing data.
  3. Write the main script with a loop and input() prompts.
  4. Use try-except blocks to handle file errors and invalid number inputs.
  5. Add a "Statistics" function that uses sum() and len() to calculate averages.

Evaluation Criteria

Criteria Weight
Effective use of Pythonic structures (Lists/Dicts/Comprehensions) 35%
Reliable File persistence and error handling 25%
Clean, modular code design (OOP and Functions) 20%
User experience and CLI interface design 20%