Ip Project 2024-25
Ip Project 2024-25
1 INTRODUCTION 5
2 ABOUT PYTHON 6
3 OBJECTIVE 7
4 METHODOLOGY USED 8
5 SYSTEM REQUIRED 9
6 PRE-REQUISITES 10
7 SOURCE CODE 11 – 15
8 OUTPUT 16 – 18
9 FUTURE EXTENTION 19
10 CONCLUSION 20
11 BIBLIOGRAPHY 21
12 TEAM MEMBERS 22
INTRODUCTION
My project name is TRACK MY EXPENSE. It is a digital tool designed to
help individuals and businesses monitor, manage, and analyze their
financial transactions. It simplifies the process of recording income and
expenditures, offering users better visibility and control over their
finances. Whether you're trying to budget effectively, save money, or
analyze spending habits, an expense tracker app can be a powerful
solution.
Benefits:
2. Object-Oriented Design:
• The ExpenseTrackerApp class encapsulates the logic for the expense
tracker, ensuring modularity, reusability, and maintainability.
3. File-Based Storage:
• Data is stored in a CSV file (expenses.csv) to ensure persistence across
sessions.
4. User Interaction:
• GUI components (e.g., entry fields, buttons) are used to input and
display data.
• Validation checks are implemented for user inputs (e.g., numeric
validation for amount).
SYSTEM REQUIRED
1. Hardware:
RAM: 2 GB or more
Disk Space: 100 MB for the application and CSV file storage
2. Software:
• pandas
• matplotlib
PRE-REQUISITES
The major topics that must be refreshed before creating and building
the TRACK MY EXPENSE Python project are as follows:
• Knowledge of CSV data formats and their use for storing structured
data.
4. Data Visualization:
def parse_args():
parser = argparse.ArgumentParser(description='TRACK MY EXPENSE')
parser.add_argument('-f', '--file', type=str, default='expenses.csv',
help='CSV file to load expenses from')
return parser.parse_args()
class ExpenseTrackerApp:
def init (self, root, file_name):
self.root = root
self.root.title("TRACK MY EXPENSE")
self.root.geometry('425x700')
self.file_name = file_name
self.df = self.load_data()
self.create_widgets()
def load_data(self):
try:
df = pd.read_csv(self.file_name)
except FileNotFoundError:
messagebox.showerror("File Not Found", f"The file '{self.file_name}'
was not found.")
df = pd.DataFrame(columns=["Date", "Category", "Amount"])
return df
def save_data(self):
self.df.to_csv(self.file_name, index=False)
def create_widgets(self):
# Title
title_label = tk.Label(self.root, text="WELCOME TO TRACK MY
EXPENSE !", font=("Georgia", 18), bg='lightblue', fg='black')
title_label.grid(row=0, column=0, columnspan=2, pady=20)
self.category_entry = tk.Entry(self.root)
self.category_entry.grid(row=1, column=1, padx=10, pady=5)
self.amount_entry = tk.Entry(self.root)
self.amount_entry.grid(row=2, column=1, padx=10, pady=5)
date_label = tk.Label(self.root, text="Date (YYYY-MM-DD):",
bg='lightblue', fg='black',font=("Georgia", 16,'bold'))
date_label.grid(row=3, column=0, padx=10, pady=5)
self.date_entry = tk.Entry(self.root)
self.date_entry.grid(row=3, column=1, padx=10, pady=5)
def add_expense(self):
category = self.category_entry.get()
try:
amount = float(self.amount_entry.get())
except ValueError:
messagebox.showerror("Input Error", "Please enter a valid
amount")
return
date = self.date_entry.get()
def clear_form(self):
self.category_entry.delete(0, tk.END)
self.amount_entry.delete(0, tk.END)
self.date_entry.delete(0, tk.END)
def view_summary(self):
summary_window = tk.Toplevel(self.root)
summary_window.title("Expense Summary")
summary = self.df.groupby('Category').agg({'Amount':
'sum'}).reset_index()
summary_text.insert(tk.END, summary.to_string(index=False))
def plot_graph(self):
categories = self.df.groupby('Category')['Amount'].sum()
if categories.empty:
messagebox.showerror("No Data", "No expense data available to
plot.")
return
fig, ax = plt.subplots(figsize=(3,3))
ax.pie(categories, labels=categories.index, autopct='%1.1f%%',
startangle=90)
ax.axis('equal')
INSERTING EXPENSE
START RUNNING
DATA IN ENTRY
THE PROGRAM:-
FIELDS:-
PRESSING ADD PRESSING VIEW
EXPENSE BUTTON:- EXPENSE SUMMARY
BUTTON:-
PRESSING PLOT
EXPENSE GRAPH
BUTTON:-
FUTURE EXTENSIONS
1. Multi-Device Synchronization:
Implementing cloud storage for accessing expense data across multiple
devices.
2. Enhanced Visualization:
Adding bar charts, line graphs, or monthly trends for detailed financial
analysis.
4. Expense Predictions:
Incorporating machine learning to predict future expenses based on past
data.
5. User Authentication:
Adding login/logout functionality to secure individual user data.
https://www.gemini.com
https://www.google.com
https://www.chatgpt.com
TEAM MEMBERS
AAKHYA
HEER LALWNI