Professional Documents
Culture Documents
Report
Report
Report
The success of this project would not have been possible without the support and guidelines
of many individuals, we are very thankful to those who helped us during our project. We
would like to express our deepest appreciation to all those who provided us the possibility to
complete this project. A special gratitude we have give to our project Supervisor Er. Ghan
Bahadur Thapa who took interest in our project and guided us throughout the project by
providing all the necessary ideas, information and knowledge for the project.
We are highly indebted to Aadikavi Bhanubhakta Campus for constant guidance and
supervision, as well as for providing all the necessary infrastructures and friendly
environment for the successful completion of the project. We would like to thank Mr. Maha
Prasad Hadkhale, Campus Chief, Aadikavi Bhanubhakta Campus, for his moral support
toward completing our project work. Without his support, the project would not have been
completed.
Last, but not the least, we would like to thank our peers and friends who provided us
with valuable suggestions to improve our project.
Melina Shrestha(077288012/077)
Sandesh Shrestha (077288025/077)
i
ABSTRACT
Expense Tracker aims to help everyone who are planning to know their expenses and save
form it. Expense is an android app which users can execute in their mobile phones and update
their daily expense so that they are well known to their expenses. Here user can define their
own categories for expense type like food, clothing, rent and bills where they have to enter
the money that has been spent and also can add some information in additional information to
specify the expense.
ii
Table of Contents
PRELIMINARY PAGES
TITLE…………………………………………………………………………………………..
BONAFIDE CERTIFICATE…………………………………………………………………...
SUPERVISOR’S RECOMMENDATION……………………………………………………..
CERTIFICATE OF APPROVAL………………………………………………………………
ACKNOWLEDGEMENT……………………………………………………………………..
ABSTRACT……………………………………………………………………………………
LIST OF FIGURES……………………………………………………………………………
LIST OF TABLES…………………………………………………………………………….
LIST OF ABBREVIATION…………………………………………………………………..
CHAPTER 1: INTRODUCTION
1.1. Introduction……………………………………………………………………….
1.2. Background of the study………………………………………………………….
1.3. Problem Statement and Motivation………………………………………………
1.4. Objectives…………………………………………………………………………
1.4.1. Primary Objective……………………………………………………….
1.4.2. Secondary Objective…………………………………………………….
1.5. Project Scope and Direction………………………………………………………
1.6. Limitations………………………………………………………………………..
1.7. Report Organization………………………………………………………………
CHAPTER 2: REQUIREMENT ANALYSIS
2.1. Literature Review………………………………………………………………….
2.2. Problem Definition………………………………………………………………...
2.3. Proposed Solution…………………………………………………………………
2.4. Requirement Analysis…………………………………………………………….
2.4.1. Functional Requirement…………………………………………………
2.4.2. Non-Functional Requirement……………………………………………
2.5. Feasibility………………………………………………………………………….
2.5.1. Economic Feasibility…………………………………………………….
2.5.2. Technical Feasibility……………………………………………………..
2.5.3. Operational Feasibility…………………………………………………..
2.5.4. Schedule Feasibility…………………………………………………….
iii
2.6. Limitations………………………………………………………………………..
2.6.1. Use Case Diagram………………………………………………………
2.6.2. ER Diagram…………………………………………………………….
2.6.3. Data Flow Diagram…………………………………………………….
2.6.4. Class Diagram………………………………………………………….
2.6.5. Sequence Diagram……………………………………………………..
2.6.6. Activity Diagram………………………………………………………
CHAPTER 3: SYSTEM DESIGN……………………………………………………..
3.1. System Architecture and Overview……………………………………………..
3.2. System Design…………………………………………………………………...
3.2.1. Database Schema………………………………………………………
3.3. Data Dictionary…………………………………………………………………..
CHAPTER 4: SYSTEM IMPLEMENTATION & TESTING…………………….
4.1. Implementation and Overview…………………………………………………..
4.2. Tools Used……………………………………………………………………….
4.2.1. Front End Tool…………………………………………………………
4.2.2. Back End Tool…………………………………………………………
4.2.3. Database Tool………………………………………………………….
4.2.4. Platform………………………………………………………………..
4.3. Testing……………………………………………………………………………
4.3.1. Unit Testing……………………………………………………………
4.3.2. Integration Testing……………………………………………………..
4.3.3. System Testing…………………………………………………………
CHAPTER 5: CONCLUSION AND RECOMMENDATION……………………
5.1. Conclusion……………………………………………………………………….
5.2. Recommendation…………………………………………………………………
REFERENCES…………………………………………………………………………….
APPENDIX-A: User Interface………………………………………………………….
APPENDIX-B: System Coding…………………………………………………………
iv
LIST OF FIGURES
Figure 2.1: Gantt Chart………………………………………………………………………
Figure 2.2: Use Case Diagram………………………………………………………………
Figure 2.3: ER Diagram…………………………………………………………………….
Figure 2.4: Data Flow Diagram…………………………………………………………….
Figure 2.5: Class Diagram………………………………………………………………….
Figure 2.6: Sequence Diagram……………………………………………………………...
Figure 2.7: Activity Diagram……………………………………………………………….
Figure 3.1: System Architecture…………………………………………………………….
Figure 4.1: Waterfall Model…………………………………………………………………
v
LIST OF TABLES
Table 2.1: Details of expenditure……………………………………………………………
Table 2.2: Details of Schedule task 1……………………………………………………….
Table 2.3: Details of Schedule task …………………………………………………………
Table 2.4: UC Template-01………………………………………………………………….
Table 2.5: UC Template-02………………………………………………………………….
Table 2.6: UC Template-03………………………………………………………………….
Table 2.7: UC Template-04………………………………………………………………….
Table 2.8: UC Template-05………………………………………………………………….
Table 2.9: UC Template-06………………………………………………………………….
Table 2.10: UC Template-07…………………………………………………………………
Table 2.11: UC Template-08…………………………………………………………………
Table 2.12: UC Template-09…………………………………………………………………
Table 2.13: UC Template-10…………………………………………………………………
Table 2.14: UC Template-11…………………………………………………………………
Table 2.15: UC Template-12…………………………………………………………………
Table 2.16: UC Template-13…………………………………………………………………
Table 4.1: Unit Testing………………………………………………………………………
Table 4.2: Integration Testing……………………………………………………………….
Table 4.3: System Testing……………………………………………………………………
vi
LIST OF ABBREVIATION
DFD Data Flow Diagram…………………………………………………………………...
ER Entity Relationship…………………………………………………………………....
UC Use Case………………………………………………………………………………
UI User Interface…………………………………………………………………………
UML Unified Modeling Language………………………………………………………….
vii
CHAPTER 1: INTRODUCTION
1.1 Introduction
1
1.3 Problem Statement and Motivation
The problem statement for the expense tracker revolved around the challenge of
efficiently managing and monitoring one's financial expenditures. Many individuals
find it difficult to keep track of their monthly spending, leading to excessive expenses
and hindering their ability to save for significant events such as vacations or
emergencies. This issue arose from a lack of visibility into their spending habits,
making it challenging to identify where their money was going. To address this
problem, a user-friendly expense tracker app was proposed. The aim was to provide
individuals with a straightforward and effective solution for managing their expenses.
1.4 Objective
Expenses tracker aims to provide on various platforms diverse needs and preferences
of users .It allows you to save money for pre-defined expenses which will help
planning on your future investments. There are primary and secondary objectives
which can be shown below.
1.4.1 Primary Objective
The primary objectives of Expenses tracker be:
• To monitor and record all expenses accurately. This includes
tracking both fixed and variable expenses, such as bills, groceries,
entertainment, and more.
1.4.2 Secondary Objective
Some secondary objectives of a Expense Tracker might include:
• To explore the possibility of integrating the application with
financial institutions to provide automatic transaction
categorization and real-time balance updates.
• To provide data for informed financial decisions, whether it's about
major purchases, investments, or financial commitments.
• The implementation of an optional expense approval workflow,
particularly beneficial for businesses. This feature will enable
organizations to establish a structured process for reviewing and
approving employee expenses.
2
The application had a promising market potential, being accessible and usable by
anyone willing to manage their expenses and save for future investments. Its appeal
extended across a broad demographic spectrum, without any specific range criteria,
profession, or gender focus. The versatility of the application made it highly relevant
and applicable to a wide user base.
1.6. Limitation
● User have to enter every record manually
● The category divided may be blunder or messy
● Person who is handling the system must have some technical knowledge.
Chapter 2: This chapter covers all the history, methods, requirement specification
and feasibility analysis and structured system requirements.
Chapter 3: Design of Expense Tracker project is explained in detail with all the
necessary diagrams and brief functionality.
Chapter 4: Process of implementation and testing is described along with all the tools
used for the development.
3
2.1 Literature Review
In the contemporary world, achieving financial well-being was the aspiration of every
individual, and effective management and tracking of expenses played a pivotal role
in realizing this goal. Failure to manage expenses often led to potential financial
crises, highlighting the critical importance of money management in people's lives.
Maintaining a proper balance between income and expenses was deemed essential for
a comfortable livelihood, ensuring the existence of savings for unforeseen
circumstances.
The act of noting down every single expense emerged as a commendable practice,
emphasizing the need for meticulous financial record-keeping. Expense management
and tracking involved the detailed analysis of individual or organizational transactions
over a specific period, a practice crucial for maintaining financial stability.
This application has features like add expenses categories add income so that we can
add what are the income and expenses has been done for a month, but this application
will not have any reminder to remain a person in a specific date, so that is the only
4
A writing audit is an insightful source of Expense Tracker. The Expense Tracker app
tracks all the expenses and helps the user to manage his/her expenses so that the user
month and year, it helps to see the more expenses made.(ATIYA KAZI, May, 2021)
categorize, and analyze their financial activities. The primary goal is to offer
stability. The problem being addressed is the manual and time-consuming nature of
traditional expense tracking methods, which the expense tracker seeks to alleviate
The proposed solution for the expense tracker involves the development of an
intuitive and feature-rich application that leverages automation and smart
categorization to streamline the process of recording and managing financial
transactions. The application will enable users to easily input expenses and income,
automatically classify them into predefined categories, and generate visual reports for
quick insights into their spending habits. Integrating features such as real-time
syncing across devices, customizable budget alerts, and secure cloud storage, the
solution aims to provide a user-friendly and efficient platform for individuals and
businesses to gain better control over their finances, making the task of expense
tracking more accessible and convenient.
5
2.4 Requirement Analysis
Users:
6
Cost Estimation:
The cost estimation for a note sharing and contribution project can vary
depending on several factor such as the scope of the project, the platform or
infrastructure needed, the development approach, the size of the user base,
and the features and functionality required.
● Payback period
The payback period is a financial metric that measures the time required to
recover the initial investment in a project. It represents the length of time it
takes for the project's net cash inflows to equal or surpass the initial
investment. The formula to calculate the payback period is as follows:
Payback Period = Initial Investment / Net Cash Inflow per Period
= 36,000 / 60000
= 6 months
● Return on investment:
Return on Investment (ROI) is a financial metric used to measure the
profitability and efficiency of an investment. It quantifies the return or gain
generated from an investment relative to its cost. The ROI formula is as
follows:
ROI= (Net Profit / Cost of Investment) x 100
=24000/36000*100
= 66.67%
7
● Annual Maintenance cost
The annual maintenance cost for an Expense Tracker can vary depending on
several factors, including the complexity of the platform, the size of the user
base, the technology stack, and ongoing updates and improvements.
Server and Hosting Costs =10,000
Technical Support and Troubleshooting Cost= 7,000
2.5.2 Technical Feasibility
This assessment focuses on the technical resources available. It helps
to determine whether the technical team has the capacity of converting
the ideas into working systems. It also involves evaluation of the
hardware, software and other technical requirements of the proposed
system.
➢ Compatibility
➢ Scalability
➢ Security
➢ User Acceptance
8
➢ Resource Availability
➢ Cost-effectiveness
➢ Organizational Impact
9
Figure 2.1: Gantt Chart
10
2.6 Structuring System Requirements
Structuring system requirements concentrates on the definition, structure and
relationships within data. The characteristics of data captured during data modeling
are crucial in the design of databases, programs, computer screens and printed
information is essential in ensuring data integrity in an information system.
11
Use Case No UC-01
Name Login
Actors Users
Name Authentication
Actors Users
Actors Users
12
Pre-condition All Details can be filled in the textfield.
Actors Users
Actors Users
13
Use Case No UC-01
Actors Users
Actors Users
Actors Users
14
Post condition Categories are removed from the system.
Actors Users
Actors Users
Main scenario The user locates the specific expense entry for
which they want to update the date and selects it.
15
Use Case No UC-01
Actors Users
Main scenario The user locates the specific expense entry they
want to delete and selects it.
Actors Users
Actors Users
16
Pre-condition Expense must be updated in the textfield
according to the categories
Actors Users
Actors Users
17
Use Case No UC-01
Name logout
Actors Users
Pre-condition -
Post condition -
18
2.6.3 Data Flow Diagrams
Process Modeling(DFD level-0 and DFD level 1)
19
2.6.5 Activity Diagrams
20
CHAPTER 3 SYSTEM DESiGN
User
21
3.2 System Design
System Design is the process of designing the elements of a system and how they
interact to satisfy the requirements of the system. It involves the creation of a detailed
model or blueprint of the system, including the physical and logical components and
their interfaces. The system design includes the selection of hardware, software and
network components, as well all the overall organization and structure of the system.
It also includes the definition of interfaces, protocols and standards that are used to
connect the system components.
22
CHAPTER 4: SYSTEM IMPLEMENTATION & TESTING
ss
23
4.2. Tools Used
4.2.1. Front End Tool
● JAVA Swing:
Java Swing is a lightweight Java graphical user interface (GUI) widget
toolkit that includes a rich set of widgets. It is part of the Java
Foundation Classes (JFC) and includes several packages for
developing rich desktop applications in Java. Swing includes built-in
controls such as trees, image buttons, tabbed panes, sliders, toolbars,
color choosers, tables, and text areas to display HTTP or rich text
format (RTF). Swing components are written entirely in Java and thus
are platform-independent.
4.2.2. Back End Tool
● Language: JAVA
Java is a multi-platform, object-oriented, and network-centric
language. It is among the most used programming languages. Java is
also used as a computing platform Java was designed to have the look
and feel of the C++ programming language, but is simpler to use and
enforces an object-oriented programming model. Java can be used to
create complete applications that may run on a single computer or be
distributed among servers and clients in a network.
4.2.3. Database Tool
● PostgreSQL:
PostgreSQL is a powerful, open source object-relational database system
with over 35 years of active development that has earned it a strong
reputation for reliability, feature robustness, and performance.
4.2.4. Platform
● Intellij IDEA
IntelliJ IDEA is a cross-platform IDE that provides consistent
experience on Windows, macOS, and Linux. It does the routine and
repetitive tasks for you by providing clever code completion, static
code analysis, and refactorings, and lets you focus on the bright side of
software development, making it not only productive but also an
enjoyable experience.
24
4.3 Testing
4.3.1 Unit testing
25
T-08 Delete description Test success
T-08 T-08
26
CHAPTER 5 : CONCLUSION & RECOMMENDATION
5.1. Conclusion
After making this application we assure that this application will help it users to
manage the cost of their daily expenditure. It will guide them and aware them about
there daily expenses. It will prove to be helpful for the people who are frustrated with
their daily budget management, irritated because of amount of expenses and wishes to
manage money and to preserve the record of their daily cost which may be useful to
change their way of spending money. In short, this application will help it users to
overcome the wastage of money.
5.1. Recommendation
Expense Tracker is usable by anyone who are willing to manage their expense and
aiming to save for the future investments. This app has no range criteria or any kind
of profession or gender are focused so it will hugely by any other person.
REFERENCES
Gupta, H., Singh, A. P., Kumar, N., & Blessy, J. A. (2020). Expense Tracker: A Smart
Approach to Track Everyday Expense. easychair, (4809).
Thanapal, P., Patel, M. Y., Raj, T. L., & Kumar, J. S. (2015). Income and expense tracker.
Indian Journal of Science and Technology, 8(S2), 118-122.
Kazi, A., Kherade, P. S., Vilankar, R. S., & Sawant, P. M. (2021). Expense Tracker. Iconic
Research And Engineering (IRE) Journals, 4(11).
Chandini, S., Poojitha, T., Ranjith, D., Akram, V. M., Vani, M. S., & Rajyalakshmi, V.
(2019). Online Income and Expense Tracker. International Research Journal of Engineering
and Technology (IRJET), 6(3), 2395-0056.
27
APPENDIX-A: User Interface
BudgetForm
package exp.tracker.system;
import javax.swing.*;
28
import java.awt.*;
import java.awt.event.ActionEvent;
29
30
31
APPEBDIX-B:System Coding
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.sql.PreparedStatement;
import java.util.TimeZone;
String username;
JTextField textField,textField2;
JTextArea textArea;
JLabel label2;
JComboBox<String> salaryComboBox;
Budgetform(String username){
this.username=username;
b1 = new JButton("Save");
32
b1.setFont(new Font("Arial",Font.BOLD,14));
b1.setForeground(Color.white);
b1.setBackground(new Color(159,202,116));
b1.setBounds(170,510,100,30);
b1.addActionListener(this);
add(b1);
b2 = new JButton("Cancel");
b2.setFont(new Font("Arial",Font.BOLD,14));
b2.setForeground(Color.white);
b2.setBackground(new Color(110,120,100));
b2.setBounds(280,510,100,30);
b2.addActionListener(this);
add(b2);
label1.setBounds(10,-20,200,100);
label1.setFont(new Font("Arial",Font.BOLD,16));
label1.setForeground(Color.black);
add(label1);
33
JLabel label11 = new JLabel("Amount");
label11.setBounds(10,55,200,100);
label11.setFont(new Font("Arial",Font.BOLD,20));
label11.setForeground(Color.black);
add(label11);
textField.setBackground(new Color(217,217,217));
textField.setForeground(Color.BLACK);
textField.setBounds(8,120,360,30);
add(textField);
label111.setBounds(8,135,200,100);
label111.setFont(new Font("Arial",Font.BOLD,20));
label111.setForeground(Color.black);
add(label111);
34
salaryComboBox.setFont(new Font("Arial", Font.PLAIN, 16));
salaryComboBox.setBackground(new Color(217,217,217));
add(salaryComboBox);
salaryComboBox.addActionListener(new ActionListener() {
@Override
if (source.getSelectedIndex() == source.getItemCount() - 1) {
source.setSelectedItem(newOption);
});
label1111.setBounds(8,220,200,100);
35
label1111.setFont(new Font("Arial",Font.BOLD,20));
label1111.setForeground(Color.black);
add(label1111);
add(textArea);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(null);
setSize(400,600);
setLocation(450,200);
setVisible(true);
36
@Override
try {
if(e.getSource()==b1){
if(textField.getText().equals("")){
}else {
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
// Assuming your database table has columns like username, date, category,
amount, type
String query = "INSERT INTO exp (username, date, category, amount, type,
description) VALUES (?, ?, ?, ?, 'Income',?)";
37
try (PreparedStatement preparedStatement =
c.connection.prepareStatement(query)) {
preparedStatement.setString(1, username);
preparedStatement.setString(2, formattedDate);
preparedStatement.setString(3, category);
preparedStatement.setString(4, amount);
preparedStatement.setString(5,description);
preparedStatement.executeUpdate();
setVisible(false);
new Home(username).setVisible(true);
}else if (e.getSource()==b2){
setVisible(false);
new BudgetManagement(username);
38
E.printStackTrace();
new Budgetform("");
Expense Form
package exp.tracker.system;
import java.util.TimeZone;
import java.text.SimpleDateFormat;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.PreparedStatement;
import java.util.Date;
String username;
39
JTextArea textArea;
JTextField textField,textField2;
JLabel label2;
JComboBox<String> salaryComboBox;
Expenseform(String username){
this.username=username;
b1 = new JButton("Save");
b1.setFont(new Font("Arial",Font.BOLD,14));
b1.setForeground(Color.white);
b1.setBackground(new Color(159,202,116));
b1.setBounds(170,510,100,30);
b1.addActionListener(this);
add(b1);
b2 = new JButton("Cancel");
b2.setFont(new Font("Arial",Font.BOLD,14));
b2.setForeground(Color.white);
40
b2.setBackground(new Color(110,120,100));
b2.setBounds(280,510,100,30);
b2.addActionListener(this);
add(b2);
label1.setBounds(10,-20,200,100);
label1.setFont(new Font("Arial",Font.BOLD,16));
label1.setForeground(Color.black);
add(label1);
label11.setBounds(10,55,200,100);
label11.setFont(new Font("Arial",Font.BOLD,20));
label11.setForeground(Color.black);
add(label11);
textField.setBackground(new Color(217,217,217));
textField.setForeground(Color.BLACK);
textField.setBounds(8,120,360,30);
41
textField.setFont(new Font("Raleway", Font.PLAIN,20));
add(textField);
label111.setBounds(8,135,200,100);
label111.setFont(new Font("Arial",Font.BOLD,20));
label111.setForeground(Color.black);
add(label111);
salaryComboBox.setBackground(new Color(217,217,217));
add(salaryComboBox);
salaryComboBox.addActionListener(new ActionListener() {
@Override
if (source.getSelectedIndex() == source.getItemCount() - 1) {
42
String newOption = JOptionPane.showInputDialog("Enter a new option:");
source.setSelectedItem(newOption);
});
label1111.setBounds(8,220,200,100);
label1111.setFont(new Font("Arial",Font.BOLD,20));
label1111.setForeground(Color.black);
add(label1111);
43
add(textArea);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(null);
setSize(400,600);
setLocation(450,200);
setVisible(true);
@Override
try {
if(e.getSource()==b1){
if(textField.getText().equals("")){
44
}else {
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
// Assuming your database table has columns like username, date, category,
amount, type
String query = "INSERT INTO exp (username, date, category, amount, type,
description) VALUES (?, ?, ?, ?, 'Expense',?)";
preparedStatement.setString(1, username);
preparedStatement.setString(2, formattedDate);
preparedStatement.setString(3, category);
preparedStatement.setString(4, amount);
preparedStatement.setString(5,description);
preparedStatement.executeUpdate();
45
}
setVisible(false);
new Home(username).setVisible(true);
}else if (e.getSource()==b2){
setVisible(false);
new ExpenseManagement(username);
E.printStackTrace();
new Expenseform("");
46