Expense Tracking App Micro Project Report
Expense Tracking App Micro Project Report
Submitted by
1. Kandarp Jalela
2. Prathamesh Mali
3. Aditya Kate
4. Anurag Jagtap
(Prof. [Link])
JSPM’s
JAYAWANTRAO SAWANT POLYTECHNIC, Handewadi
Road, Hadapsar, Pune-28
Department of Information Technology
Affiliated to
Maharashtra State
Board of Technical Education
Certificate
This is to certify that Kandarp Jalela with Roll No-115 has successfully completed Micro- project
in course Python Programming (314004) for the academic year 2024-25 Microproject is
completing Fourth Semester of Diploma Programme in Information Technology from
institute, , Jayawantrao Sawant Polytechnic with institute code 0711.
Page 2 of 27
Maharashtra State
Board of Technical Education
Certificate
This is to certify that Mr. Aditya Kata with Roll No-120 has successfully completed Micro-
project in course Python Programming (314004) for the academic year 2024-25 Microproject
is completing Fourth Semester of Diploma Programme in Information Technology from
institute , Jayawantrao Sawant Polytechnic with institute code 0711.
Page 3 of 27
Maharashtra State
Board of Technical Education
Certificate
This is to certify that Mr. Prathamesh Mali with Roll No.87 has successfully completed
Micro- project in course Python Programming (314004) for the academic year 2024-25
Microproject is completing Fourth Semester of Diploma Programme in Information
Technology from institute, , Jayawantrao Sawant Polytechnic with institute code 0711.
Page 4 of 27
Maharashtra State
Board of Technical Education
Certificate
This is to certify that with A n u r a g J a g t a p Roll No. 121 has successfully completed
Micro- project in course Python Programming (314004) for the academic year 2024-25
microproject is completing Third Semester of Diploma Programme in Information
Technology from institute, , Jayawantrao Sawant Polytechnic with institute code -0711.
Page 5 of 27
Micro Project Proposal
• The process of defining the conceptual design of data elements and their inter-
relationships is called data modeling.
• The traditional applications approach to data organisation built different models for
each data file.
7 Compilation of Report
4. Anurag Jagtap
Compilation of
8 Presentation
9 Presentation of Seminar
10 Final Submission
Page 6 of 27
4.0 Resources Required:
Sr Name of
Specification Qty. Remarks
No Resource/Material
87 Prathamesh Mali
Page 7 of 27
Microproject Report
Table content:
1] Acknowlegement
2] Abstract
3] Introduction
4]Objective
5]Advantages
6]Block Diagram
7] Flow Chart
8] Procedure
9] Output
10] Conclusion
11] Refference
Page 8 of 27
ACKNOWLEGEMENT
Page 9 of 27
❖ Objective
The Expense Tracking Application aims to assist users in managing their personal
finances by providing a straightforward tool to record, review, and analyze expenses
in Indian Rupees (Rs). Designed as a command-line application, it emphasizes
simplicity, accessibility, and persistent data storage using JSON, making it suitable
for users who prefer minimalistic software solutions.
❖ Background
Page 10 of 27
Project Description
❖ Purpose
The primary purpose of this project is to enable users to log their daily expenses,
categorize them, and gain insights into their spending patterns. By using Indian
Rupees as the currency, it caters specifically to users in India or those dealing with
Rs-based transactions, ensuring relevance and ease of use.
❖ Scope
• Record expenses with details including amount (in Rs), category, and an
optional description.
• Store all data persistently in a JSON file for continuity across sessions.
❖ Features
1. Add Expense: Allows users to input the expense amount in Rs, assign a
category (e.g., Food, Transport), and include an optional description for
context.
3. Category Totals: Aggregates and shows total spending for each category,
aiding in spending analysis.
Page 11 of 27
Technical Details:
• Modules Used:
o os: Manages file operations, such as checking for the existence of the
storage file.
• Development Environment: Any system with Python 3.x installed; no additional IDE
or tools required.
❖ System Design
The application employs an object-oriented approach to encapsulate functionality within a
single class:
Class: ExpenseTracker
• Attributes:
o filename: Specifies the JSON file (default: [Link]) for data storage.
• Methods:
o save_expenses(): Writes the current expense list to the JSON file with proper
formatting.
Page 12 of 27
❖ Main Function
• Implements a continuous loop presenting a menu with four options: add
expense, view expenses, view totals, or exit.
• Incorporates basic error handling, such as catching invalid numeric inputs for
amounts.
❖ Data Structure
Each expense is represented as a dictionary with the following fields:
Page 13 of 27
Implementation:
❖ Development Process
1. Planning: Identified essential features (add, view, total) and outlined a class-
based structure.
4. Modification: Adjusted the currency symbol from '$' to 'Rs' based on user
requirements.
❖ File Structure
• expense_tracker.py: Contains the main application logic and user interface.
❖ Challenges Faced
• Ensuring data persistence required careful handling of file I/O operations.
• Limited error handling posed risks for invalid user inputs (e.g., non-numeric
amounts).
Page 14 of 27
Usage Instructions:
❖ Requirements
• Python 3.x installed (available for Windows, macOS, and Linux).
❖ How to Run
1. Save the application file as expense_tracker.py.
2. Open a terminal or command prompt and navigate to the file’s directory.
❖ Sample Output
Expense Tracker Menu:
1. Add Expense
4. Exit
Enter your choice (1-4): 1
Enter amount: Rs 250
Enter category: Transport
Enter description (optional): Taxi fare
Added expense: Rs 250 - Transport
Expense History:
1. Date: 2025-03-12 10:30:45
Amount: Rs 250.00
Category: Transport
Description: Taxi fare
Page 15 of 27
➢ Program:-
class ExpenseTracker:
[Link] = {}
[Link][username] = []
else:
if username in [Link]:
else:
print(f"User '{username}' does not exist. Please add the user first.")
if username in [Link]:
if not [Link][username]:
Page 16 of 27
else:
else:
if username in [Link]:
deleted_transaction = [Link][username].pop(transaction_id - 1)
else:
else:
def display_menu():
print("\nExpense Tracker")
print("5. Exit")
Page 17 of 27
# Main program loop
def main():
tracker = ExpenseTracker()
while True:
display_menu()
if choice == '1':
username = input("Enter the username: ").strip() # Use .strip() to remove any accidental spaces
tracker.add_user(username)
tracker.view_transactions(username)
try:
tracker.delete_transaction(username, transaction_id)
Page 18 of 27
except ValueError:
print("Exiting program...")
break
else:
main()
Page 19 of 27
➢ Output:-
Page 20 of 27
Page 21 of 27
Results and Analysis:
❖ Achievements
• Delivered a functional expense tracker with core features implemented
successfully.
• Achieved data persistence, allowing users to maintain records over time.
❖ Limitations
• Lacks a graphical interface, limiting accessibility for non-technical users.
❖ Testing
• Test Case 1: Added multiple expenses (e.g., Rs 150 for "Food," Rs 250 for
"Transport") and verified they saved correctly.
Page 22 of 27
❖ Future Enhancements
1. Graphical User Interface: Develop a GUI using Tkinter or PyQt with clickable
category buttons and visual reports.
2. Expense Management: Add functionality to edit or delete existing expense
entries.
3. Budget Tracking: Implement budget limits per category with alerts for
overspending.
➢ Conclusion:
Page 23 of 27
Micro Project Evaluation Sheet
Name of Studente: Kandarp Jalela Enrollment No: 23211830914
Name of Program: Information Technology Semester:4th
Course Title: Python Programming Course Code: 314004
Title of Micro Project: Python programming courses help students learn how to write
programs, use data structures, and solve problems using Python.
• Learning Outcomes Achieved: To understand the objectives of the project.
5 Quality of Prototype/Model
6 Report Preparation
(B) Individual Presentation/Viva (4 Marks)
Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(6 Marks) (4 Marks) (10 Marks)
Page 24 of 27
Micro Project Evaluation Sheet
Name of Studente: Aditya Kate Enrollment No: 23211830919
Name of Program: Information Technology Semester:4th
Course Title: Python Programming Course Code: 314004
Title of Micro Project: Python programming courses help students learn how to write
programs, use data structures, and solve problems using Python.
• Learning Outcomes Achieved: To understand the objectives of the project.
5 Quality of Prototype/Model
6 Report Preparation
(B) Individual Presentation/Viva (4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(6 Marks) (4 Marks) (10 Marks)
Page 25 of 27
Micro Project Evaluation Sheet
Name of Studente: Prathamesh Mali Enrollment No: 23211830885
Name of Program: Information Technology Semester:4th
Course Title: Python Programming Course Code: 314004
Title of Micro Project: Python programming courses help students learn how to write
programs, use data structures, and solve problems using Python.
• Learning Outcomes Achieved: To understand the objectives of the project.
5 Quality of Prototype/Model
6 Report Preparation
(B) Individual Presentation/Viva (4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(6 Marks) (4 Marks) (10 Marks)
5 Quality of Prototype/Model
6 Report Preparation
(B) Individual Presentation/Viva (4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentation/Viva
(6 Marks) (4 Marks) (10 Marks)
Page 27 of 27