0% found this document useful (0 votes)
9 views27 pages

Expense Tracking App Micro Project Report

Uploaded by

mrpm2007j
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views27 pages

Expense Tracking App Micro Project Report

Uploaded by

mrpm2007j
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

A

Micro Project Report


On
EXPENSE TRACKING APP

Submitted by
1. Kandarp Jalela
2. Prathamesh Mali
3. Aditya Kate
4. Anurag Jagtap

Under the Guidance of

(Prof. [Link])

In the Partial Fulfilment of Third Semester of Diploma in


Information Engineering

JSPM’s
JAYAWANTRAO SAWANT POLYTECHNIC, Handewadi
Road, Hadapsar, Pune-28
Department of Information Technology
Affiliated to

Maharashtra State
Board of Technical Education

Academic Year 2024-25


Page 1 of 27
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.

Place: Hadapsar. EnrollmentNo: 23211830914

Date: Exam Seat No:

Course Teacher Head of the Department Head of the Institute

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.

Place: Hadapsar. Enrollment No: 23211830919

Date: Exam Seat No:

Course Teacher Head of the Department Head of the Institute

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.

Place: Hadapsar Enrollment No: 23211830885

Date: Exam Seat No:

Course Teacher Head of the Department Head of the Institute

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.

Place: Hadapsar Enrollment No: 23211830920

Date: Exam Seat No:

Course Teacher Head of the Department Head of the Institute

Page 5 of 27
Micro Project Proposal

1.0 Aims/Benefits of the Micro-Project:

• 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.

2.0 Course Outcomes Addressed:


The main difference between hierarchical network and relational database model is
that hierarchical model organizes data in a tree-like structure while network model
arranges data in a graph structure and relational database model organizes data in tables.
Database models help to create the structure of the databases.

3.0 Action Plan:


Planned
Sr Planned Name of Responsible Team
Details of Activity Finish
No Start Date Members
Date
Topic Discussion &
1
Selection
1. Kandarp Jalela
2 Review of Literature
Aim/Benefits &
3
Importance
2. Aditya Kate
4 Resources Required
Analysis of Collected
5
Data 3. Prathamesh Mali
6 Design of System

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

1 Hardware Resource Processor i3/HDD-1TB/RAM-8GB 1 Available

Microsoft Office [Link] Available


2 Software Resource 1
chrome.
3 Any Other Resource Printer 1 Available

Name of Team Members with Roll No’s:

Roll No. Name of Team Members

120 Aditya Kate

115 Kandarp Jalela

87 Prathamesh Mali

121 Anurag Jagtap

Name & Signature of Course Teacher


(Porf. [Link])

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

I express my deep sense of gratitude to my guide Porf. [Link],


Department of IT Applications for providing valuable suggestions and guidance
during the development, designing and implementation of the project, without
which it would not have been possible to complete the project. I express my
sincere thanks to our beloved Principal Dr. [Link] , for providing us all the
facilities for laboratory and library. I express my gratitude to our Vice Principal
Dr. [Link] for her continuous support and assistance during the course of
my project. I wish to reciprocate in full measure the kindness shown Head of the
Department who inspired us with his valuable suggestions in successfully
completing the project work. I express my grateful thanks to all the staff
members, Department of IT Applications for their valuable assistance,
encouragement and co-operation during this wonderful learning experience.
Finally, I would like to express my sincere thanks to my parents and my friends
for the useful tips and moral support.

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

With increasing awareness of financial management, individuals seek tools to track


their spending habits effectively. This project addresses that need by offering a
lightweight alternative to complex budgeting software, focusing on essential features
without requiring advanced technical skills or additional software installations.

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.

• Provide a detailed view of all recorded expenses.

• Calculate and present total expenses grouped by category.

• Maintain a simple, text-based interface for user interaction.

❖ 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.

2. View Expenses: Displays a comprehensive list of all expenses with


timestamps and details.

3. Category Totals: Aggregates and shows total spending for each category,
aiding in spending analysis.

4. Persistent Storage: Ensures data is saved in a JSON file, preserving records


between uses.

5. Command-Line Interface: Offers a menu-driven system for ease of


navigation without graphical dependencies.

Page 11 of 27
Technical Details:

❖ Tools and Technologies


• Programming Language: Python 3.x, chosen for its simplicity, readability, and
robust standard library.

• Modules Used:

o json: Handles data serialization to store and retrieve expenses in a structured


format.

o os: Manages file operations, such as checking for the existence of the
storage file.

o datetime: Provides accurate timestamps for each expense entry.

• Storage: Utilizes a JSON file (named [Link]) for lightweight, human-


readable data persistence.

• 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.

o expenses: Maintains a list of expense records loaded from or saved to the


file.

• Methods:

o load_expenses(): Retrieves existing expense data from the JSON file or


initializes an empty list if none exists.

o save_expenses(): Writes the current expense list to the JSON file with proper
formatting.

o add_expense(amount, category, description): Creates and stores a new


expense entry.

o view_expenses(): Formats and prints all expense records.


o get_total_by_category(): Computes and displays aggregated totals for each
category.

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:

• date: A string timestamp in the format YYYY-MM-DD HH:MM:SS, automatically


generated.

• amount: A floating-point number representing the expense value in Rs.

• category: A string defining the expense type (e.g., "Utilities," "Entertainment").

• description: An optional string for additional notes (e.g., "Electricity bill").


The list of these dictionaries is stored in the JSON file, ensuring a structured yet
flexible data model.

Page 13 of 27
Implementation:

❖ Development Process
1. Planning: Identified essential features (add, view, total) and outlined a class-
based structure.

2. Coding: Developed the ExpenseTracker class and menu system, focusing on


modularity.

3. Testing: Conducted manual tests to ensure data saving, retrieval, and


calculations worked as expected.

4. Modification: Adjusted the currency symbol from '$' to 'Rs' based on user
requirements.

5. Documentation: Created this report to detail the project’s purpose, design,


and usage.

❖ File Structure
• expense_tracker.py: Contains the main application logic and user interface.

• [Link]: Dynamically generated file storing expense data in JSON


format.

❖ Challenges Faced
• Ensuring data persistence required careful handling of file I/O operations.

• Formatting output for readability in the command line needed consistent


design.

• 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).

• No external libraries or dependencies required beyond the standard library.

❖ 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.

3. Execute the program by typing: python expense_tracker.py.

4. Interact with the menu:

o 1: Add an expense by entering the amount (in Rs), category, and


optional description.

o 2: View a detailed list of all expenses.


o 3: See total spending per category.
o 4: Exit the program, saving all data automatically.

❖ Sample Output
Expense Tracker Menu:

1. Add Expense

2. View All Expenses

3. View Totals by Category

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:

def init (self):

# Dictionary to hold users and their transactions

[Link] = {}

def add_user(self, username):

"""Adds a new user to the system."""

if username not in [Link]:

[Link][username] = []

print(f"User '{username}' has been added!")

else:

print(f"User '{username}' already exists.")

def add_transaction(self, username, amount, description):

"""Add a transaction for a user."""

if username in [Link]:

[Link][username].append({"amount": amount, "description": description})

print(f"Transaction added for '{username}'.")

else:

print(f"User '{username}' does not exist. Please add the user first.")

def view_transactions(self, username):

"""View all transactions of a user."""

if username in [Link]:

if not [Link][username]:

print(f"No transactions found for '{username}'.")

Page 16 of 27
else:

print(f"Transactions for '{username}':")

for idx, transaction in enumerate([Link][username], 1):

print(f"{idx}. Amount: ₹{transaction['amount']}, Description: {transaction['description']}")

else:

print(f"User '{username}' does not exist.")

def delete_transaction(self, username, transaction_id):

"""Delete a specific transaction for a user."""

if username in [Link]:

if 0 < transaction_id <= len([Link][username]):

deleted_transaction = [Link][username].pop(transaction_id - 1)

print(f"Deleted transaction: ₹{deleted_transaction['amount']} - {deleted_transaction['description']}")

else:

print("Invalid transaction ID.")

else:

print(f"User '{username}' does not exist.")

# Function to display the menu

def display_menu():

print("\nExpense Tracker")

print("1. Add User")

print("2. Add Transaction")

print("3. View Transactions")

print("4. Delete Transaction")

print("5. Exit")

Page 17 of 27
# Main program loop

def main():

tracker = ExpenseTracker()

while True:

display_menu()

choice = input("Enter your choice: ")

if choice == '1':

username = input("Enter the username: ").strip() # Use .strip() to remove any accidental spaces

tracker.add_user(username)

elif choice == '2':

username = input("Enter the username: ").strip()

amount = float(input("Enter the amount (in ₹): ₹"))

description = input("Enter a description: ").strip()

tracker.add_transaction(username, amount, description)

elif choice == '3':

username = input("Enter the username: ").strip()

tracker.view_transactions(username)

elif choice == '4':

username = input("Enter the username: ").strip()

try:

transaction_id = int(input("Enter the transaction ID to delete: "))

tracker.delete_transaction(username, transaction_id)

Page 18 of 27
except ValueError:

print("Please enter a valid transaction ID.")

elif choice == '5':

print("Exiting program...")

break

else:

print("Invalid choice, please try again.")

if name == " main ":

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.

• Provided a clear, organized interface for viewing expenses and totals.

• Ensured accurate summation of expenses by category, supporting financial


analysis.

❖ Limitations
• Lacks a graphical interface, limiting accessibility for non-technical users.

• No options to modify or delete existing expenses, restricting flexibility.

• Minimal input validation (e.g., accepts negative amounts, empty categories).

• Command-line environment prevents the use of interactive buttons for


categories.

❖ Testing
• Test Case 1: Added multiple expenses (e.g., Rs 150 for "Food," Rs 250 for
"Transport") and verified they saved correctly.

• Test Case 2: Closed and reopened the application to confirm data


persistence.
• Test Case 3: Checked category totals with multiple entries (e.g., Rs 400 total
for "Food" after two entries).
• Test Case 4: Entered invalid input (e.g., "abc" for amount) to ensure error
handling worked.

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.

4. Reports: Generate detailed monthly or yearly expense summaries.

5. Data Validation: Enforce rules like positive amounts and non-empty


categories.
6. Export Options: Enable data export to CSV or PDF for external use.

➢ Conclusion:

The Expense Tracking Application offers a practical, minimalistic solution for


managing personal expenses in Indian Rupees. While its current command-line
interface limits some interactive features, it fulfills its core purpose of recording and
analyzing expenses effectively. With potential for future enhancements like a GUI
and advanced features, this project showcases Python’s capabilities in building
functional, user-centric tools. It serves as a stepping stone for more sophisticated
financial management applications.

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.

Learning Outcomes Achieved:

Poor Average Good Excellent


Sr Sub
Characteristic to be Assessed Marks Marks Marks Marks
No Total
(1-3) (4-5) (6-8) (9-10)
(A) Process and Product Assessment (6 Marks)
1 Relevance to the Course

2 Literature Review/Information Collection

3 Completion of the Target as per Project Proposal

4 Analysis of Data & Representation

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)

Comments/Suggestions about Teamwork/Leadership/Inter-personal


Communication (if any)
…………………………………..………………………………………………………………
Name & Designation of Course Teacher: Prof. [Link]
Dated Signature:

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.

Learning Outcomes Achieved:

Poor Average Good Excellent


Sr Sub
Characteristic to be Assessed Marks Marks Marks Marks
No Total
(1-3) (4-5) (6-8) (9-10)
(A) Process and Product Assessment (6 Marks)
1 Relevance to the Course

2 Literature Review/Information Collection

3 Completion of the Target as per Project Proposal

4 Analysis of Data & Representation

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)

Comments/Suggestions about Teamwork/Leadership/Inter-personal


Communication (if any)
…………………………………..………………………………………………………………
Name & Designation of Course Teacher: Prof. [Link]
Dated Signature

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.

Learning Outcomes Achieved:

Poor Average Good Excellent


Sr Sub
Characteristic to be Assessed Marks Marks Marks Marks
No Total
(1-3) (4-5) (6-8) (9-10)
(A) Process and Product Assessment (6 Marks)
1 Relevance to the Course

2 Literature Review/Information Collection

3 Completion of the Target as per Project Proposal

4 Analysis of Data & Representation

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)

Comments/Suggestions about Teamwork/Leadership/Inter-personal


Communication (if any)
…………………………………..………………………………………………………………
Name & Designation of Course Teacher: Porf. [Link]
Dated Signature:
Page 26 of 27
Micro Project Evaluation Sheet
Name of Studente: Anurag Jagtap Enrollment No: 23211830920
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.

Learning Outcomes Achieved:

Poor Average Good Excellent


Sr Sub
Characteristic to be Assessed Marks Marks Marks Marks
No Total
(1-3) (4-5) (6-8) (9-10)
(A) Process and Product Assessment (6 Marks)
1 Relevance to the Course

2 Literature Review/Information Collection

3 Completion of the Target as per Project Proposal

4 Analysis of Data & Representation

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)

Comments/Suggestions about Teamwork/Leadership/Inter-personal


Communication (if any)
…………………………………..………………………………………………………………
Name & Designation of Course Teacher: Porf. [Link]
Dated Signature:

Page 27 of 27

You might also like