0% found this document useful (0 votes)
5 views

Python_Report-1

Python report

Uploaded by

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

Python_Report-1

Python report

Uploaded by

Sufiyan Sayyed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

2023-2024

Report of Python Project on

EXPENSE TRACKER

Report Submitted by:


Sayyed Sufiyan Kamaluddin
Roll no: 65 (D6AD/B)

Report of Python project on

EXPENSE TRACKER
Group Members:

DIVYA SINGH - 58
PRARTHAM MATKAR - 66
SUFIYAN SAYYED - 65

1. PROBLEM STATEMENT:
First Problem: Enhancing Financial Control
Many individuals face challenges in managing their personal
finances effectively, leading to overspending, financial stress,
and difficulty in achieving financial goals. One significant issue
is the lack of awareness regarding spending habits, which
hampers financial control and stability. Without insightful
analysis, it's challenging to mitigate financial instability
effectively.

Second Problem: Budget Management Challenges


Another obstacle to financial stability and success is the
difficulty in managing budgets effectively. Traditional
methods often fall short in providing adequate tracking and
adjustment capabilities, which are essential for effective
financial planning. As a result, individuals struggle to maintain
control over their finances and allocate resources optimally
towards their financial goals.

Solution: Expense Tracker System


To address these challenges, we propose the development
and implementation of an Expense Tracker System. This
system aims to enhance financial awareness, control, and
planning by providing users with intuitive tools for expense
tracking and analysis. By leveraging technology, the Expense
Tracker System offers real-time insights into spending habits,
facilitates budget management, and enables proactive
adjustments for better financial control.
Through the Expense Tracker System, individuals can track
their expenses effortlessly, categorize spending effectively,
and set realistic budgets aligned with their financial goals.
Additionally, the system offers features such as automatic
transaction import, customizable budget categories, alerts,
and financial analysis tools to empower users in managing
their finances efficiently.
By tackling the root causes of financial instability and budget
management challenges, the Expense Tracker System equips
individuals with the necessary tools and insights to achieve
financial stability, reduce financial stress, and progress
towards their long-term financial objectives effectively.
2. Theoretical Considerations for Developing an Expense
Tracker System in Python:

 Behavioral Economics Insights:


Utilize principles from behavioral economics to design
features that nudge users towards more responsible
spending behavior, such as setting alerts for exceeding
budget limits or providing visual representations of
spending habits to raise awareness.

 Information Processing Theory:


Implement features that organize and present financial
data in a clear and structured manner, enabling users to
process information effectively. This could include
categorizing expenses, generating reports, and offering
interactive visualizations.

 Goal Setting Theory Integration:


Incorporate goal-setting functionalities to allow users to
set financial goals and track their progress. Providing
reminders, progress tracking, and visualization tools can
motivate users to stay on track with their financial
objectives.

 Technology Acceptance Model (TAM) Principles:


Design the system with a focus on user experience,
ensuring ease of use, perceived usefulness, and
enjoyment. Employing intuitive interfaces, seamless
navigation, and interactive elements can enhance user
acceptance and engagement.

 Data Privacy and Security:


Prioritize the implementation of robust security
measures to protect users' financial data and privacy.
Compliance with regulations such as GDPR or CCPA
ensures trust and confidence in the system among users.

 Adaptability and Scalability:


Build the Expense Tracker System with flexibility and
scalability in mind to accommodate future updates, user
growth, and changing financial needs. This involves
modular design, well-documented code, and scalability
considerations for database management.

 Feedback Mechanisms:
Integrate feedback mechanisms to gather user input and
iteratively improve the system. This could involve user
surveys, analytics tracking, or direct communication
channels to understand user needs and preferences.

 Accessibility and Inclusivity:


Ensure that the Expense Tracker System is accessible to
users with diverse needs, including those with
disabilities or language barriers. Providing multiple
language options, screen reader compatibility, and
inclusive design practices promotes accessibility and
inclusivity.

By incorporating these theoretical considerations into the


development process, the Expense Tracker System in Python
can effectively address the challenges of financial
management and provide users with a valuable tool for
tracking expenses, managing budgets, and achieving their
financial goals.
3. Program:
# Add dependencies
import sys
from PySide6.QtCore import Qt, Slot
from PySide6.QtGui import QAction , QPainter
from PySide6.QtWidgets import (QApplication,
QHeaderView, QHBoxLayout, QLabel, QLineEdit,
QMainWindow, QPushButton,
QTableWidget, QTableWidgetItem, QVBoxLayout,
QWidget)
from PySide6.QtCharts import QChartView, QPieSeries,
QChart

class Widget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.items = 0
#Dummy Data
self._data = {"Water": 240, "Rent": 10000, "Coffee":
230,"Grocery": 3500, "Phone": 405, "Internet": 750}

# Left Widget
self.table = QTableWidget()
self.table.setColumnCount(2)
self.table.setHorizontalHeaderLabels(["Description",
"Price"])
self.table.horizontalHeader().setSectionResizeMode(Q
HeaderView.Stretch)

# Chart
self.chart_view = QChartView()
self.chart_view.setRenderHint(QPainter.Antialiasing)

# Right Widget
self.description = QLineEdit()
self.price = QLineEdit()
self.add = QPushButton("Add")
self.clear = QPushButton("Clear")
self.quit = QPushButton("Quit")
self.plot = QPushButton("Plot")

# Disabling 'Add' button


self.add.setEnabled(False)

self.right = QVBoxLayout()
self.right.addWidget(QLabel("Description"))
self.right.addWidget(self.description)
self.right.addWidget(QLabel("Price"))
self.right.addWidget(self.price)
self.right.addWidget(self.add)
self.right.addWidget(self.plot)
self.right.addWidget(self.chart_view)
self.right.addWidget(self.clear)
self.right.addWidget(self.quit)

# QWidget Layout
self.layout = QHBoxLayout()

#self.table_view.setSizePolicy(size)
self.layout.addWidget(self.table)
self.layout.addLayout(self.right)

# Set the layout to the QWidget


self.setLayout(self.layout)

# Signals and Slots


self.add.clicked.connect(self.add_element)
self.quit.clicked.connect(self.quit_application)
self.plot.clicked.connect(self.plot_data)
self.clear.clicked.connect(self.clear_table)
self.description.textChanged[str].connect(self.check_d
isable)
self.price.textChanged[str].connect(self.check_disable
)

# Fill example data


self.fill_table()

@Slot()
def add_element(self):
des = self.description.text()
price = self.price.text()

try:
price_item = QTableWidgetItem(f"{float(price):.2f}")
price_item.setTextAlignment(Qt.AlignRight)

self.table.insertRow(self.items)
description_item = QTableWidgetItem(des)

self.table.setItem(self.items, 0, description_item)
self.table.setItem(self.items, 1, price_item)

self.description.setText("")
self.price.setText("")

self.items += 1
except ValueError:
print("That is not an invalid input:", price, "Make
sure to enter a price!")

@Slot()
def check_disable(self, x):
if not self.description.text() or not self.price.text():
self.add.setEnabled(False)
else:
self.add.setEnabled(True)
@Slot()
def plot_data(self):
# Get table information
series = QPieSeries()
for i in range(self.table.rowCount()):
text = self.table.item(i, 0).text()
number = float(self.table.item(i, 1).text())
series.append(text, number)

chart = QChart()
chart.addSeries(series)
chart.legend().setAlignment(Qt.AlignLeft)
self.chart_view.setChart(chart)

@Slot()
def quit_application(self):
QApplication.quit()

def fill_table(self, data=None):


data = self._data if not data else data
for desc, price in data.items():
description_item = QTableWidgetItem(desc)
price_item = QTableWidgetItem(f"{price:.2f}")
price_item.setTextAlignment(Qt.AlignRight)
self.table.insertRow(self.items)
self.table.setItem(self.items, 0, description_item)
self.table.setItem(self.items, 1, price_item)
self.items += 1

@Slot()
def clear_table(self):
self.table.setRowCount(0)
self.items = 0

class MainWindow(QMainWindow):
def __init__(self, widget):
QMainWindow.__init__(self)
self.setWindowTitle("Tutorial")

# Menu
self.menu = self.menuBar()
self.file_menu = self.menu.addMenu("File")

# Exit QAction
exit_action = QAction("Exit", self)
exit_action.setShortcut("Ctrl+W")
exit_action.triggered.connect(self.exit_app)

self.file_menu.addAction(exit_action)
self.setCentralWidget(widget)

@Slot()
def exit_app(self, checked):
QApplication.quit()

if __name__ == "__main__":
# Qt Application
app = QApplication(sys.argv)
# QWidget
widget = Widget()
# QMainWindow using QWidget as central widget
window = MainWindow(widget)
window.resize(800, 600)
window.show()

# Execute application
sys.exit(app.exec())

4. Project Output:
5. Future Scope and Updates:
As technology continues to evolve, the future of the Expense
Tracker System holds exciting possibilities for enhancing
financial management and user experience. This section
outlines the future scope of the project, along with two major
updates aimed at integrating advanced features to provide
users with comprehensive financial insights and services.

Major Update 1: Investment Tracking:


Overview:
 The first major update to the Expense Tracker System
involves the integration of investment tracking features.
 This update aims to provide users with a comprehensive
financial overview by incorporating their investment
accounts into the system.
Key Features:
 Seamless Integration: Users can link their investment
accounts, including stocks, mutual funds, and retirement
accounts, to the Expense Tracker System.
 Real-Time Tracking: The system will fetch and display
real-time investment data, including portfolio
performance, asset allocation, and transaction history.
 Performance Analysis: Users can analyze the
performance of their investments, track gains and losses,
and assess the impact of investment decisions on their
overall financial health.

Major Update 2: AI-Powered Insights:


Overview:
 The second major update focuses on harnessing the
power of artificial intelligence to provide users with AI-
powered insights.
 This update aims to offer predictive analysis capabilities,
delivering personalized budget recommendations and
spending forecasts to users.
Key Features:
 Personalized Budget Recommendations: AI algorithms
will analyse users' financial data and spending patterns to
generate personalized budget recommendations tailored
to their individual needs and goals.
 Spending Forecasts: The system will use predictive
analysis to forecast future spending trends, helping users
anticipate upcoming expenses and plan their finances
accordingly.
 Proactive Insights: Users will receive proactive insights
and notifications based on AI-driven analysis, enabling
them to make informed financial decisions and stay on
track with their financial goals.

6. Conclusion:
In conclusion, the Expense Tracker System offers a
streamlined solution to the challenges of personal finance
management, providing users with the means to track
expenses, set budgets, and gain insights into their financial
habits. Through its user-friendly interface and intuitive
features, the system equips individuals with the tools they
need to make informed decisions and achieve their financial
goals effectively. Looking ahead, the planned integration of
advanced AI for predictive analysis and investment tracking
features promises to further enhance the system's
capabilities, ensuring that it remains a valuable asset in
helping users navigate their financial journey with confidence
and success.
As users continue to rely on the Expense Tracker System to
manage their finances, they can expect ongoing updates and
improvements aimed at delivering even greater value and
convenience. With a commitment to innovation and user
satisfaction, the system is dedicated to empowering
individuals to take control of their financial future and pursue
their aspirations with clarity and confidence.

You might also like