Report

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 53

ACKNOWLEDGEMENT

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

An ‘Expense Tracker’ is a software or application designed to assist users in


tracking, recording, and managing their expenses. It played a crucial role in creating
budgets for small businesses and enhancing financial health by maintaining a daily
record of expenditures through the tracking of receipts, invoices, and other outgoing
expenses. The Expense Tracker allowed users to maintain a computerized diary,
eliminating the need for manual calculations in tracking daily expenses. Users could
effortlessly monitor their expenses on a daily, weekly, or monthly basis, facilitating
better control over their financial activities. One of the key features of the application
was its ability to help users stay on budget by providing a comprehensive overview of
their expenses. Users could calculate their total daily expenses, and these details were
stored for each unique user, allowing for personalized financial tracking. At the end of
each month, the Expense Tracker application generates a detailed report, presenting
expenses through graphical representations. This feature offered users a visual
understanding of their spending patterns, enabling them to make informed decisions
and adjustments to their budgeting strategies. Overall, the Expense Tracker
application proved to be a valuable tool for promoting financial awareness and
responsibility.

1.2 Background of the study


Expense tracker is refined system which allows user to efficiently manage his/her
expenses with ease. Tracking expenses daily can really help to us save lot of money.
Once we start off by tracking our expenses each day, we will be able to get a better
idea where you are spending your money, so you stay in control and achieve your
goal. It will be able to generate your expense and saving report as time duration you
selected. There will be reminder that will help to save money for your expenses.

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.

1.5 Project Scope and Direction

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.

1.7 Report Organization

Chapter 1: This chapter explains the overview, introduction, problem statement,


objectives, scope and limitation of the proposed system.

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.

Chapter 5: Conclusion and future scope of the application are explained.

CHAPTER 2: REQUIREMENT ANALYSIS

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.

Decades ago, individuals meticulously recorded their daily expenses in registers to


assess profits or savings, employing a traditional approach to budgeting. Around that
time, pioneering desktop applications such as Quicken and Microsoft Money
emerged, albeit with limited consumer awareness. As technology advanced, mobile
apps like Personal Capital and Dollar Bird gained popularity, offering visualizations
of spending through maps and calendars. Meanwhile, QuickBooks catered to small
business owners seeking comprehensive business management solutions. In the later
years, applications like YNAB and Penny AI introduced automation features for
expense tracking, while Mint emerged as a widely trusted and extensively used
platform for managing finances. The evolution of expense tracking methods, from
manual registers to sophisticated applications, reflects the ongoing commitment to
innovation in personal finance management.(Hrithik Gupta, 2020).

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

drawback in which the remainder is not present.(P. Thanapal, 2015)

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

is the path of financial stability. The Tracking of expenses is categorised by week,

month and year, it helps to see the more expenses made.(ATIYA KAZI, May, 2021)

2.2 Problem Definition

An expense tracker is a digital tool designed to monitor and manage financial

transactions efficiently. It addresses the challenge of keeping a detailed record of

income and expenditures by providing users with a user-friendly interface to input,

categorize, and analyze their financial activities. The primary goal is to offer

individuals or businesses a comprehensive overview of their spending patterns,

enabling better budgeting, informed decision-making, and ultimately, financial

stability. The problem being addressed is the manual and time-consuming nature of

traditional expense tracking methods, which the expense tracker seeks to alleviate

through automation and organization of financial data.

2.3 Proposed Solution

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

2.4.1 Functional requirements

Users:

 User can (add, delete, update) income and expenses.


 User can view all the data in the dashboard.

2.4.2 Non-Functional requirement

• Performance: Handle concurrent users efficiently, ensuring quick


access to resources.
• Security: Protect user data through authentication, encryption, and
access control.
• Usability: User-friendly interface with clear instructions for easy
navigation.
• Reliability: Minimize downtime, errors, and disruptions, perform
regular maintenance and backups.
• Scalability: Accommodate increasing users and study materials
without impacting performance.
• Compatibility: Compatible with different browsers and devices for
accessible user experience.
• Data Management: Efficient organization and search functionality for
study materials.
• Compliance: Adhere to data privacy, copyright, and intellectual
property regulations.
• Backup and Recovery: Robust mechanisms to prevent data loss and
restore system functionality.

2.5 Feasibility Study


2.5.1 Economical Feasibility
By conducting a comprehensive evaluation of these factors, we can
assess the economic feasibility of a note sharing and contribution
portal and determine its potential profitability and sustainability in the
market.

6
Cost Estimation:

S.N. Particulars Amount

1. Paper print cost Rs. 5,000


2. Per Person Rs. 10,000*2 = Rs. 20,000
3. Internet Cost Rs. 6,000
4. Other Expenses Rs. 5,000
Total Rs. 36,000
Table No. 1: Cost Estimation Table

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.

➢ Availability of Required Technology

➢ Compatibility

➢ Scalability

➢ Security

The technical feasibility assessment confirms that the proposed project


is feasible. It leverages available technology and resources, ensuring
compatibility with existing systems and scalability to accommodate
future growth. The project incorporates robust security measures to
protect user data, making it a viable solution for implementation.

2.5.3 Operational Feasibility

Operational feasibility focuses on determining whether the proposed


system aligns with the organization's operations, processes, and goals.
Here are some considerations for operational feasibility:

➢ User Acceptance

➢ Training and Support

8
➢ Resource Availability

➢ Cost-effectiveness

➢ Organizational Impact

Based on the operational feasibility assessment, the proposed project is


deemed feasible as it aligns with the organization's operations and
goals. Users have shown positive acceptance, and the organization
possesses the necessary resources and capabilities to operate and
maintain the system effectively.
2.5.4. Schedule Feasibility Study
Schedule Feasibility is defined as the probability of a project to be completed
within its scheduled time limits, by a planned due date. If a project has high
probability to be completed on-time, then its schedule feasibility is appraised
as high. This assessment is the most important for project success. In
scheduling feasibility, an organization estimates how much time the project
will take to complete.

S.N Activities Start Date End Date Duration(Days)

1 Requirement Analysis 2023/03/31 2023/08/01 30 days

2. System Analysis 2023/08/02 2023/09/11 10days

3. System Design 2023/09/12 2023/09/21 10 days

4. Implementation 2023/09/25 2023/10/15 25days

5. Testing and Debugging 2023/10/16 2023/11/25 12 days

6. Maintenance 2023/10/26 2023/12/13 18 days

7. Deployment 2023/11/14 2023/12/09 225days

8. Documentation 2023/07/31 2023/12/27 150 days

Table 2.2: Details of Schedule task 1

9
Figure 2.1: Gantt Chart

S.N Activities Start Date End Date Duration(Days)

1 Requirement Analysis 2023/03/31 2023/08/28 25 days

2. System Analysis 2023/08/29 2023/09/12 15 days

3. System Design 2023/09/13 2023/09/26 13 days

4. Implementation 2023/09/27 2023/10/08 22 days

5. Testing and Debugging 2023/10/16 2023/11/08 15 days

6. Maintenance 2023/11/09 2023/12/01 25 days

7. Deployment 2023/11/09 2023/12/01 23 days

8. Documentation 2023/07/31 2023/12/30 152 days

Table 2.3: Details of Schedule task

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.

2.6.1 Use Case Diagram

Figure 2.2 Use case Diagram

11
Use Case No UC-01

Name Login

Priority To login system users

Actors Users

Pre-condition Valid username and password must be entered.

Main scenario User is logged in based on their account type.

Post condition Redirect to dashboard if username and password


is valid.

Related use case -


Table 2.4: UC Template-01

Use Case No UC-01

Name Authentication

Priority To create an user account

Actors Users

Pre-condition User Login to the system.

Main scenario System checks password and authorized user


can access service
Post condition Password is verified and authorized user is
given access
to system.
Related use case -
Table 2.5: UC Template-02

Use Case No UC-01

Name Add notes

Priority To add further more information about the


expense

Actors Users

12
Pre-condition All Details can be filled in the textfield.

Main scenario All Details completed and ready to updated.

Post condition All Details is saved to the system.

Related use case -


Table 2.6: UC Template-03

Use Case No UC-01

Name Update notes

Priority To update further information about the expense

Actors Users

Pre-condition Details can be filled in the textfield

Main scenario Details are selected from the system

Post condition Details are updated from the system

Related use case


Table 2.7: UC Template-04

Use Case No UC-01

Name Delete notes

Priority To delete the notes

Actors Users

Pre-condition Details can be filled in the textfield.

Main scenario Details are selected from the system.

Post condition Detailed are removed from the system.

Related use case


Table 2.8: UC Template-05

13
Use Case No UC-01

Name Add categories

Priority To add categories where the user is supposed to


spend more.

Actors Users

Pre-condition Categories name must be filled in the textfield

Main scenario Categories are completed and added in the


system.

Post condition Categories is saved into the system.

Related use case -


Table 2.9: UC Template-06

Use Case No UC-01

Name Update categories

Priority To Update categories added in the system.

Actors Users

Pre-condition Categories name must be filled in the textfield

Main scenario Categories are selected from the system.

Post condition Categories are updated from the system.

Related use case -


Table 2.10: UC Template-07

Use Case No UC-01

Name Delete categories

Priority To Delete categories added in the system.

Actors Users

Pre-condition Categories name must be filled in the textfield

Main scenario Categories are selected from the system.

14
Post condition Categories are removed from the system.

Related use case -


Table 2.11: UC Template-08

Use Case No UC-01

Name Add date

Priority To add the date of expenses

Actors Users

Pre-condition User must be login to the system.

Main scenario User navigates to the expense entry section and


initiates the process of adding a new expense.

Post condition The expense entry, including the specified date,


is successfully saved in the system.

Related use case -


Table 2.12: UC Template-09

Use Case No UC-01

Name Update date

Priority To update the date of expenses

Actors Users

Pre-condition The user has navigated to the section for


managing or editing expense entries.

Main scenario The user locates the specific expense entry for
which they want to update the date and selects it.

Post condition The expense entry, including the updated date, is


successfully saved in the system.

Related use case -


Table 2.13: UC Template-10

15
Use Case No UC-01

Name Delete date

Priority To delete the date of expenses

Actors Users

Pre-condition The user has navigated to the section for


managing or deleting expense entries.

Main scenario The user locates the specific expense entry they
want to delete and selects it.

Post condition The expense entry, including its associated date,


is successfully deleted from the expense tracker
database.

Related use case -


Table 2.13: UC Template-11

Use Case No UC-01

Name Add expense

Priority To add expense

Actors Users

Pre-condition Expense must be added in the textfield according


to the categories.

Main scenario Expenses are inserted in the system.

Post condition New expense is saved into the system.

Related use case -


Table 2.14: UC Template-12

Use Case No UC-01

Name Update expense

Priority To update expense

Actors Users

16
Pre-condition Expense must be updated in the textfield
according to the categories

Main scenario Selected a inserted expense from the system and


ready to updated.

Post condition Expense must be updated successfully.

Related use case -


Table 2.15: UC Template-13

Use Case No UC-01

Name Delete expense

Priority To delete expense

Actors Users

Pre-condition Expense must be removed in the textfield


according to the categories.

Main scenario Selected a inserted expense from the system and


ready to deleted.

Post condition Expense must be removed successfully.

Related use case


Table 2.16: UC Template-14

Use Case No UC-01

Name View expense

Priority To view all the data on dashboard

Actors Users

Pre-condition Provide the updated log of expenses.

Main scenario User select a details and result is displayed.

Post condition User get informed about the expenses

Related use case View expense details


Table 2.17: UC Template-15

17
Use Case No UC-01

Name logout

Priority To logout system users

Actors Users

Pre-condition -

Main scenario User is logout on their account type.

Post condition -

Related use case


Table 2.18: UC Template-16
2.6.2 E-R Diagrams

Figure: 2.3: Entity-Relationship Diagrams

18
2.6.3 Data Flow Diagrams
Process Modeling(DFD level-0 and DFD level 1)

Figure:2.4 Data Flow Diagrams Levels -0

2.6.4. UML Class Diagrams

Figure: 2.5: UML Class Diagrams

19
2.6.5 Activity Diagrams

Figure: 2.6: Activity Diagrams

2.6.6 Sequence Diagrams

Figure: 2.7: sequence diagrams

20
CHAPTER 3 SYSTEM DESiGN

3.1. System architecture and overview


System Architecture refers to the overall design and structure of a system, including
the hardware, software and network components that make up the system, as well as
the relationships and interactions between them. It is a high-level view of a system
that describes how the components work together to achieve the system's goals. The
architecture provides a blueprint for the system, allowing different teams to
understand and work on different parts of the system without interfacing with each
other.

User

Figure: 3.1: System Architecture

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.

3.2.1 Database Schema

3.3 Data Dictionary

22
CHAPTER 4: SYSTEM IMPLEMENTATION & TESTING

4.1 Implementation and overview


Waterfall model is used for our project, as our project starts with the requirement
gathering and requirement divided into only one cycle. The Waterfall model is also
known as the Classical/Traditional Model. Sometimes, it is referred to as a linear-
sequential life cycle model because all phases involved in this model are completed
one by one in linear fashion. In this model, we get software after completion of all
coding phases. This model is basically used for small projects. In the waterfall model,
each step is dependent on the output of the previous step.

ss

Figure 4.1: Waterfall Model

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

S.N Test Case Test Input test Expected Actual Remarks


id description data result result

1. T-01 Login user User Failed to Failed to Username or password


with 12345(wr login with login with didn’t match
username and ong the alert the alert
password username box box.
and
password

Login user Sachina Login and Success Login Success


with sachina redirect to
username and dashboard
password

2. T-02 Add new 500, Successful Success Income added


budget salary, ly added Amount:500
Teaching Categories: salary
Description :Teaching

3. T-03 Add new 400, party Successful Success Expenses added


expenses , sachina ly added Amount: 400
birthday Categories : party
Description: Birthday
party

4.3.2. Integration Testing

Test Suite Plan Test Case Id Description Remarks

Users T-01 Login Test success

T-02 Add amount Test success

T-03 Delete amount Test success

T-04 Update amount Test success

T-05 Add categories Test success

T-06 Delete categories Test success

T-07 Update categories Test success

T-07 Add description Test success

25
T-08 Delete description Test success

T-09 Update description Test success

T-10 Logout Test success

4.3.3 System Testing

Test Suite Test Case Description Remarks


Plan Id

Users T-01 Login Test success

T-02 Add amount Test success

T-03 Delete amount Test success

T-04 Update amount Test success

T-05 Add categories Test success

T-06 Delete categories Test success

T-07 Update categories 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

APPENDIX-B: System Coding

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;

public class Budgetform extends JFrame implements ActionListener {

String username;

JTextField textField,textField2;

JTextArea textArea;

JButton b1, b2;

JLabel label2;

JComboBox<String> salaryComboBox;

Budgetform(String username){

super("+ Add New Budget");

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);

JLabel label1 = new JLabel("+ Add New Budget");

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 = new JTextField();

textField.setBackground(new Color(217,217,217));

textField.setForeground(Color.BLACK);

textField.setBounds(8,120,360,30);

textField.setFont(new Font("Raleway", Font.PLAIN,20));

add(textField);

JLabel label111 = new JLabel("Category");

label111.setBounds(8,135,200,100);

label111.setFont(new Font("Arial",Font.BOLD,20));

label111.setForeground(Color.black);

add(label111);

String[] initialOptions = {"Salary", "Part Time", "Freelancing", "Others", "Add New


Option"};

salaryComboBox = new JComboBox<>(initialOptions);

34
salaryComboBox.setFont(new Font("Arial", Font.PLAIN, 16));

salaryComboBox.setBackground(new Color(217,217,217));

salaryComboBox.setBounds(8, 200, 360, 35);

add(salaryComboBox);

salaryComboBox.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

JComboBox<String> source = (JComboBox<String>) e.getSource();

if (source.getSelectedIndex() == source.getItemCount() - 1) {

String newOption = JOptionPane.showInputDialog("Enter a new option:");

if (newOption != null && !newOption.isEmpty()) {

source.insertItemAt(newOption, source.getItemCount() - 1);

source.setSelectedItem(newOption);

});

JLabel label1111 = new JLabel("Description");

label1111.setBounds(8,220,200,100);

35
label1111.setFont(new Font("Arial",Font.BOLD,20));

label1111.setForeground(Color.black);

add(label1111);

textArea = new JTextArea();

textArea.setBounds(8, 285, 360, 200);

textArea.setBackground(new Color(217, 217, 217));

textArea.setFont(new Font("Arial", Font.PLAIN, 20));

textArea.setLineWrap(true); // Enable line wrapping

textArea.setWrapStyleWord(true); // Wrap at word boundaries

add(textArea);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

setLayout(null);

setSize(400,600);

setLocation(450,200);

setVisible(true);

36
@Override

public void actionPerformed(ActionEvent e) {

try {

String amount = textField.getText();

Date date = new Date();

String category = (String) salaryComboBox.getSelectedItem();

String description = textArea.getText();

if(e.getSource()==b1){

if(textField.getText().equals("")){

JOptionPane.showMessageDialog(null,"Please enter some amount");

}else {

Con c = new Con();

// Format the date and time with UTC time zone

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm


a");

dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

String formattedDate = dateFormat.format(date);

// 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();

JOptionPane.showMessageDialog(null, "Rs." + amount + " Income added


Successfully");

setVisible(false);

new Home(username).setVisible(true);

}else if (e.getSource()==b2){

setVisible(false);

new BudgetManagement(username);

}catch (Exception E){

38
E.printStackTrace();

public static void main(String[] args) {

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;

public class Expenseform extends JFrame implements ActionListener {

String username;

39
JTextArea textArea;

JTextField textField,textField2;

JButton b1, b2;

JLabel label2;

JComboBox<String> salaryComboBox;

Expenseform(String username){

super("+ Add New Budget");

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);

JLabel label1 = new JLabel("+ Add New Budget");

label1.setBounds(10,-20,200,100);

label1.setFont(new Font("Arial",Font.BOLD,16));

label1.setForeground(Color.black);

add(label1);

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 = new JTextField();

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);

JLabel label111 = new JLabel("Category");

label111.setBounds(8,135,200,100);

label111.setFont(new Font("Arial",Font.BOLD,20));

label111.setForeground(Color.black);

add(label111);

String[] initialOptions = {"Party", "Dating", "Movie", "Rent","Add New Option"};

salaryComboBox = new JComboBox<>(initialOptions);

salaryComboBox.setFont(new Font("Arial", Font.PLAIN, 16));

salaryComboBox.setBackground(new Color(217,217,217));

salaryComboBox.setBounds(8, 200, 360, 35);

add(salaryComboBox);

salaryComboBox.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

JComboBox<String> source = (JComboBox<String>) e.getSource();

if (source.getSelectedIndex() == source.getItemCount() - 1) {

42
String newOption = JOptionPane.showInputDialog("Enter a new option:");

if (newOption != null && !newOption.isEmpty()) {

source.insertItemAt(newOption, source.getItemCount() - 1);

source.setSelectedItem(newOption);

});

JLabel label1111 = new JLabel("Description");

label1111.setBounds(8,220,200,100);

label1111.setFont(new Font("Arial",Font.BOLD,20));

label1111.setForeground(Color.black);

add(label1111);

textArea = new JTextArea();

textArea.setBounds(8, 285, 360, 200);

textArea.setBackground(new Color(217, 217, 217));

textArea.setFont(new Font("Arial", Font.PLAIN, 20));

textArea.setLineWrap(true); // Enable line wrapping

textArea.setWrapStyleWord(true); // Wrap at word boundaries

43
add(textArea);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

setLayout(null);

setSize(400,600);

setLocation(450,200);

setVisible(true);

@Override

public void actionPerformed(ActionEvent e) {

try {

String amount = textField.getText();

Date date = new Date();

String category = (String) salaryComboBox.getSelectedItem();

String description= textArea.getText();

if(e.getSource()==b1){

if(textField.getText().equals("")){

JOptionPane.showMessageDialog(null,"Please enter some amount");

44
}else {

Con c = new Con();

// Format the date and time with UTC time zone

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm


a");

dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

String formattedDate = dateFormat.format(date);

// 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',?)";

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();

45
}

JOptionPane.showMessageDialog(null, "Rs." + amount + " Expenses


Successfully");

setVisible(false);

new Home(username).setVisible(true);

}else if (e.getSource()==b2){

setVisible(false);

new ExpenseManagement(username);

}catch (Exception E){

E.printStackTrace();

public static void main(String[] args) {

new Expenseform("");

46

You might also like