SM INFOTECH PYTHON COMPUTER CENTRE
Python Assignment: Personal Expense Tracker with Data Visualization
Objective:
Build a Personal Expense Tracker App using Python, which allows users to add daily expenses,
view total and category-wise spending, and generate visual reports using charts.
Tools & Libraries to Use:
• Tkinter – for creating the GUI (input form, buttons, display)
• Pandas – for managing expense data
• NumPy – for calculating totals, averages, etc.
• Matplotlib – for generating visual charts
Assignment Parts & Instructions
Part 1: GUI Design (Tkinter)
Create a user-friendly window where a user can:
• Select the Expense Category (Food, Travel, Rent, etc.) – use a dropdown
• Enter Amount – entry box
• Enter or auto-fill Date – entry box or date.today()
• Click on an "Add Expense" button to save the entry
Part 2: Data Handling (Pandas + NumPy)
• Store each expense entry in a Pandas DataFrame
• Save the data into a CSV file (e.g., expenses.csv)
• Show the following analytics on the GUI or console:
o Total Expenses
o Highest Single Expense
Page 1 of 3
SM INFOTECH PYTHON COMPUTER CENTRE
o Monthly Average (use NumPy)
Part 3: Report Visualization (Matplotlib)
• Create a “Show Report” button
• On click:
o Display a Bar Chart of monthly expenses
o Display a Pie Chart showing category-wise spending breakdown
Bonus Tasks (Optional for Advanced Practice)
• Add a “Delete Last Entry” button
• Add a “Filter by Month” option
• Use Treeview (Tkinter) to display all saved expense entries in a table format inside the
app
Final Deliverables:
1. Python .py file (complete working code)
2. A sample expenses.csv file (generated from your app)
3. Screenshot of the GUI and visual charts
4. A short paragraph: "What I learned from this project" (5-6 lines)
Key Concepts Practiced:
• Real-time GUI applications with Tkinter
• Practical use of Pandas for data storage and manipulation
• NumPy for analytics and summary
• Matplotlib for data visualization
• File handling and project structuring
Page 2 of 3
SM INFOTECH PYTHON COMPUTER CENTRE
Grading Criteria:
Component Marks
Functional GUI 10
Data stored properly in CSV using Pandas 10
NumPy analytics used 10
Matplotlib charts implemented 10
Code clarity and structure 5
Bonus features (if any) 5
Total 50 Marks
Page 3 of 3