Wooble
Back to Varad's profile
Verified on Wooble

Expense Tracker

Varad SinghalExpense Tracker

Overview

College students juggle UPI payments, canteen bills, recharges, and travel costs every day, but most have no idea where their money actually goes by month-end. Budgeting apps feel heavy, need internet, and collect personal data. I wanted a lightweight, offline, command-line tool that lets a student quickly log expenses, see totals, spot their biggest spending category, and get warned if they're going over budget — all without installing anything beyond Python. Process I started by listing the core jobs-to-be-done: add an expense, view expenses, see total spend, and find the top category. I sketched the data model first — a list of dictionaries with date, amount, and category — since it's simple, requires no database, and is easy to debug. Next, I built a menu-driven loop so the program feels interactive rather than a one-shot script. I added input validation early (invalid dates default to today, invalid numbers re-prompt, unknown categories fall back to "other") because real users make typos. For the bonus, I treated the budget as a separate piece of state that gets checked after every new expense, so feedback feels immediate. Finally, I pre-loaded three sample expenses so reviewers see working output instantly, and tested the full menu flow end-to-end Results The result is a single-file Python script that runs instantly with no setup. A student can log an expense in seconds, view a clean table of all entries, check their total spend, and immediately see which category (food, travel, recharge, or other) is draining their wallet most. The budget feature gives a real-time "Rs. X left" or "over budget by Rs. X" message after every entry, turning passive tracking into an active nudge toward better spending habits. Reflection If I extended this, I'd add persistent storage (CSV or JSON file) so data survives between sessions, since right now everything resets on exit. I'd also add a "view by date range" or "monthly summary" option, since students think in terms of "this month" rather than all-time totals. Using pandas for the category breakdown would make it easier to add visualizations (like a simple bar chart via matplotlib) later. Finally, I'd separate the logic into a module and write unit tests instead of relying on manual testing.

Links & files

Artifacts

2

Gallery

2