You are on page 1of 45

PERSONAL EXPENSE TRACKER

BY

SANJAY KUMAR TS [ 41130484 ]


SATHEESH PS [ 41130491 ]

lOMoAR cPSD| 195 850 94

DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING


SCHOOL OF ELECTRICAL AND ELECTRONICS ENGINEERING

SATHYABAMA
INSTITUTE OF SCIENCE AND TECHNOLOGY
(DEEMED TO BE UNIVERSITY)
Accredited with Grade “A++” by NAAC
JEPPIAAR NAGAR,RAJIV GANDHI SALAI,CHENNAI-600119

APRIL-2023
lOMoAR cPSD| 195 850 94

DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING

BONAFIDE CERTIFICATE

This is to certify that this Project Report is the bonafide work of


SANJAY KUMAR TS(41130484),SATHEESH PS(41130491) who
carried out the project entitled “PERSONAL EXPENSE TRACKER
USING JAVA” under my supervision from JANUARY to APRIL
2024.

Head of the Department

Dr. T .RAVI,M.E,Ph.D

InternalExaminer ExternalExaminer
lOMoAR cPSD| 195 850 94
lOMoAR cPSD| 195 850 94

lOMoAR cPSD| 195 850 94

DECLARATION

SIANJAY KUMAR TS ( 41130484 ), SATHEESH PS ( 41130491 ) hereby declare


that the project “PERSONAL EXPENSE TRACKER USING JAVA” done and it is
submitted in partial fulfilment of the requirements for the award of Bachelor of
Engineering degree in ELECTRONICS AND COMMUNICATION ENGINEERING.

DATE:

PLACE: CHENNAI

SIGNATURE OF THE CANDIDATE


lOMoAR cPSD| 195 850 94

ACKNOWLEDGEMENT

We are pleased to acknowledge my sincere thanks to Board of Management of


SATHYABAMA for their kind encouragement in doing this project and for completing it
successfully. I am grateful to them.

We convey my thanks to Dr. T. Nandhitha M.E., Ph.D, Dean, School of electrical and
electronics and Dr.T. Ravi M.E., Ph.D., Head of the Department of electronics and
communication engineering for providing me necessary support and details at the right
time during the progressive reviews.

We would like to express my sincere and deep sense of gratitude to my Project Guide Dr.
RAMYA, for her valuable guidance, suggestions and constant encouragement paved way
for the successful completion of my project work.

We wish to express my thanks to all Teaching and Non-teaching staff members of the
Department of Electronics and Communication Engineering who were helpful in many
ways for the completion of the project.
lOMoAR cPSD| 195 850 94

ABSTRACT

Personal Expense Tracker (PET) is a daily expense management system which


is specially designed for non-salaried and salaried personnel for keeping track
of their daily expenditure with easy and effective way through computerized
system which tends to eliminate manual paper works. It will also manage records
in systematic way and user can access the stored data Conventiently. We have
tried to design the project in such way that user may not have any difficulty in
using this application without much effort. This software can be really used by
end user who have Windows OS running devices with them. The Language that
We used to develop this system is Java.
lOMoAR cPSD| 195 850 94

OBJECTIVE

The aim and objective of the project is to fully manage and keep tracking the
daily expenditure. The following is the benefits that come with the Personal
Expense Tracker (PET):

• Minimize manual effort with daily record of expenditures and incomes.


• Immediate and easy retrieval of report.
• Secured and transparent data.
• Graphical overview of transactions
• Help in decision making with related results.
• Help in preparing wish list for pre planning your expenses.
lOMoAR cPSD| 195 850 94

LIST OF ABBREVIATIONS

ABBREVIATION EXPANSION

HTML HYPERTEXT MARKUP LANGUAGE

UI USER INTERFACE

OS OPERATING SYSTEM

IDE INTEGRATED DEVELOPMENT ENVIRONMENT

AOT AHEAD OF TIME

JIT JUST IN TIME

RAM RANDOM ACCESS MEMORY


lOMoAR cPSD| 195 850 94

TABLE OF CONTENTS

Chapter No. TITLE Page

ABSTRACT

LIST OF ABBREVIATIONS

1 INTRODUCTION
1.2 SYNOPIS

1.3 AIM OF THIS PROJECT

1.4 GETTING STARTED

1.5 MAIN PURPOSE

1.6 WHAT TO EXPECT

2 LITERATURE SURVEY

3 METHODOLOGYY
3.1 .MODULES DESCRIPTION
3.2 METHODS
4 EXPERIMENTAL OR MATERIAL METHODS
4.1 DESIGN METHODOLOGY
4.1.1 EXISTING SYSTEM
4.1.2 PROPOSED SYSTEM
4.2 MODULE DESCRIPTION
5 CODE AND ALGORITHM
5.1 ALGORITHM
5.2 CODE
6 REQUIREMENTS
6.1 SYSTEM REQUIREMENTS
6.1.1 MAC
6.1.2 LINUX
6.1.3 CHROME OS
lOMoAR cPSD| 195 850 94

Chapter No. TITLE


Page

7 RESULT AND DISCUSSION PREFORMANCE


ANALYSIS
7.1 RESULT
7.2 DISCUSSION
7.3 PREFORMANCE ANALYSIS

8 SUMMARY AND CONCLUSION


8.1 SUMMARY
8.1 CONCLUSION
8.3 FUTURE WORK

9 REFERENCES
lOMoAR cPSD| 195 850 94

CHAPTER – 1

INTRODUCTION

The “Bank Account Management System” project is a model Internet Banking Site.
This site enables the customers to perform the basic banking transactions by sitting
at their office or at homes through PC or laptop. The system provides the access to
the customer to create an account, deposit/withdraw the cash from his account, also
to view reports of all accounts present. The customers can access the banks website
for viewing their
Account details and perform the transactions on account as per their requirements.
With Internet Banking, the brick and mortar structure of the traditional banking gets
converted into a click and portal model, thereby giving a concept of virtual banking
a real shape. Thus today's banking is no longer confined to branches. E banking
facilitates banking transactions by customers round the clock globally. The
primary aim of this “Bank Account Management System” is to provide an improved
design methodology, which envisages the future expansion, and modification, which
is necessary for a core sector like banking. This necessitates the design to be
expandable and modifiable and so a modular approach is used in developing the
application software.
Anybody who is an Account holder in this bank can become a member of Bank
Account
Management System. He has to fill a form with his personal details and Account
Number. Bank is the place where customers feel the sense of safety for their
property. In the bank, customers deposit and withdraw their money. Transaction of
money also is a part where customer takes shelter of the bank. Now to keep the
belief and trust of customers, there is the positive need for management of the bank,
which can handle all this with comfort and ease. Smooth and efficient management
affects the satisfaction of the customers and staff members, indirectly. And of course,
it encourages management committee in taking some needed decision for future
enhancement of the bank. Now a day’s, managing a bank is tedious job up to certain
limit. So software that reduces the work is essential. Also today’s world is a genuine
computer world and is getting faster and faster day-by-day. Thus, considering above
necessities, the software for bank management has became necessary which would
be useful in managing the bank more efficiently. All transactions are carried out online
by transferring
lOMoAR cPSD| 195 850 94

from accounts in the same Bank or international bank. The software is meant
to overcome the drawbacks of the manual

1.2.Synopsis

Bank Account Management System keeps the day by day tally record as a
complete banking system. It can keep the information of Account type, account
opening form, Deposit fund, Withdrawal, and Searching the transaction,
Transaction reports, Individual account opening form, Group Account. The
existing part of this project is; it displays Transaction reports, Statistical
Summary of Account type and Interest Information.

1.3.AIM of this project

The main aim of designing and developing this Internet banking System PHP
primarily based Engineering project is to provide secure and efficient net
banking facilities to the banking customers over the internet. Apache Server
Pages, MYSQL database used to develop this bank application where all
banking customers can login through the secured web page by their account
login id and password. Users will have all options and features in that
application like get money from western union, money transfer to others, and
send cash or money to inter banking as well as other banking customers by
simply adding them as payees.

1.4.Getting Started

If you want to try out online banking without committing, select our Online
Banking. You don't have to register in any way, so it's a good way to check it
out first before register. Once you register, you'll have the choice of doing just
basic banking and viewing your balance or doing more involved transactions
like bill payments and transfers. The choice is yours. It really depends on how
you like to bank. You will get a confirmation number after each transaction and
you can always check the session summary to see what you've done. If you
make a mistake, customer service is always available for your kindness help.

1.5.Main Purpose

The Traditional way of maintaining details of a user in a bank was to enter the
details and record them. Every time the user needs to perform some
transactions he has to go to bank and perform the necessary actions, which
may not be so feasible all the time. It may be a
lOMoAR cPSD| 195 850 94

hardhitting task for the users and the bankers too. The project gives real life
understanding of Online Banking System and activities performed by various
roles in the supply chain.

Here, we provide automation for banking system through Internet. Online


Banking System project captures activities performed by different roles in real
life banking which provides
enhanced techniques for maintaining the required information up-to-date, which
results in efficiency. The project gives real life understanding of Online Banking
System and activities performed by various roles in the supply chain.

1.6 What To Expect

Here are some of the features available through online banking:

1. View balances: Firstly login your account with your account number and
password. Then checking your balance doesn't require much work.You
simply select Account balances and take a look at your balance and
past transactions. If you have more than one account, you can also do
transfers between accounts.

2. Transfer funds: When you select Transfer Funds, you’ll be asked where to
transfer themoney to and from, when, and the amount.

3. Set up recurring bill payments or transfers: If you make a regular payment


every month,it might be convenient to set up an automatic withdrawal from
your account.

4. Monitor CIBC investments: If you have any CIBC investments, you can keep
an eye onthose stocks or mutual funds here.

5. Pay bills: To pay your bills online, you just need to add to your account the
names of thecompanies you wish to pay bills to.

6. View our VISA* accounts: Always a good place to monitor your spending.
You can makeyour credit card payments online, right from your account.

7. Order Cheques: We don’t need them much anymore due to online banking
and debitpurchases, but if you still use cheques, you can order them directly
from the BAMS website.
lOMoAR cPSD| 195 850 94

CHAPTER 2

LITERATURE SURVEY

In MD. Faizan(2012), Information and communication technology (ICT) has


helped to drive increasingly intense global Competition. In the world history the
most of the countries are most developed because of they are financially very
clear for how to use the high amount of money in the developing process in own
country. We also use the SOA architecture for providing the scalable and reliable
service therefor we studied related to the SOA architecture to know how we use
to implementation process in our project using Service Oriented Architectures
(SOA).we also refer the paper who give the case study information about
Scandinavian bank and a Swiss bank This two banks are working on the basis
of service oriented architecture for providing the service for the customer. SOA
provides potential for greater organizational agility (and thereby
competitiveness).

In MD. Aqui l Amwar (2012), in the second paper we learn which type of
problems are created in banking system during the different types of
transactions. Here discuss about if any region the transaction may be fail then
how to avoid it and fixed it. We also studied about Firms in Italy defaulted more
against banks with high levels of past losses. This `selective' default increases
where legal enforcement is weak. Poor enforcement thus can create a
systematic transaction risk by encouraging banking users to defaulted masse
once the continuation value of their bank relationships comes into doubt. In
banking sector the security also must and when we talk about money or property
this case is more sensational then we found the security is the major thing to do
in banking system. In our project we provide the security questions when
customer login with account to prevent the fraud and provide the best security in
the bank management system. The study used constructs adopted from
Technology Acceptance Model along with constructs of perceived service
quality, perceived credibility and perceived risk to empirically establish the
influence on satisfaction and continuance usage intentions. The study confirmed
that after adoption of the technology, the customer finds satisfaction in the quality
parameters of the service
lOMoAR cPSD| 195 850 94

CHAPTER – 3

METHODOLOGY

3.1.Modules Description :

The Modules description of Bank Account Management System project. These


modules will be developed in C++.

Create New Account: A customer who having the account in the world can create
avirtual account through this module. This module receives the customer profile
details and the bank account details with the proof of the ownership of the bank
account.

Login: Virtual account holders can login in to the system using this module. Thus this
isthe secured login page for the customers in the website.

Virtual Account: After the approval of new virtual account creation, the
customerassigned a unique virtual account number to make the online money
transactions. This module views the details of the logged customer's virtual account.

Bank Accounts: A customer may have more than one bank account in various banks,
inthis case, the customer prompted to decide which bank account should reflect in the
account debit or amount credit. For these operations customers can add their owned
bank accounts here and it will be approved by the administrations of the system.

Fund Transfer: This is the module to make fund transfer to the virtual bank
accountholders or the usual bank account holders from the customer's specified bank
account.

Beneficiary: Beneficiary is a person who receives money. Here the customer can
addthe beneficiaries to make fund transfer in the future.

Transactions: This module displays the transactions made by the customer in the
particular date with the transaction details.

Administrative Control: This module contains the administrative functions such as


view all virtual account, transactions, approve bank accounts, approve virtual
accounts etc. There are other features and actions that can be performed on a back
account but we are not going to look at bank accounts in their entirety only the basics,
this way we avoid over complicating the exercise. The purpose of this whole exercise
is to show the usefulness of object oriented programming as opposed to really wanting
to create a banking system.
There are other features and actions that can be performed on a back account but we
are not going to look at bank accounts in their entirety only the basics, this way we
avoid over complicating the exercise. The purpose of this whole exercise is to show
lOMoAR cPSD| 195 850 94

the usefulness of object oriented programming as opposed to really wanting to create


a banking system.

3.2.Methods :

• We need to be able to generate an account number

• Account types: Savings or Current Account

• Maintain/update Balance

• Open/Close Account

• Withdraw/Deposit The next thing we need to look at is where to store the information
about the account. Obviously, the best place to store information relating to bank
accounts is in a database. To work with a database (from an OOP point of view) will
require the following methods:

• Inserting account details

• Updating the balance on any withdrawal or deposits made


lOMoAR cPSD| 195 850 94

CHAPTER 4

EXPERIMENTAL OR MATERIAL METHODS

4.1 DESIGN METHODOLOGY

4.1.1Existing System: The existing bank system is slow as


every task is being performed by the human being and comparing the
computer task speed with a computer is not fair. The complexity of this
system is increased when an increase in the number of customers and
with that there will be a number of transactions will be performed now
everything needs to log in to a file for reference in the future which is
simply not the kind of scenario we need at this time.

Some other drawbacks of the existing system:

▪ Less security of customer and bank information.


▪ Require more physical work and manpower.
▪ All the manual entry and editing will take more time.
▪ No level of clearance for the different levels of employees.
▪ Safety of paper documents from the disaster.
▪ No backup of the information.

4. 1.2Proposed System: The by looking at disadvantages


these are pretty serious for any banking system as they are capable of
bringing down the whole system. By digitalization in the banking system,
it will not only achieve its goals and also will give some benefits like less
manual calculation will be required.

4.2 MODULE DESCRIPTION :

Module 1: New Account


A person can open a bank account either by visiting a bank's branch
or through the bank's website. Here is all you need to know. There are
broadly two modes of opening a bank account - online and offline. One
can either go to a nearby branch and request to open a new bank
account or directly go to a bank's website to start the procedure online.
lOMoAR cPSD| 195 850 94

Different types of account:


Savings Account, Current Account, Recurring Deposit Account,

Fixed Deposit Account, DEMAT Account, NRI Account.

• First i need to enter the account number.


• Then enter the name of the account holder.
• Next select the which type of account savings or current account.
• And enter the initial deposit amount.

Now the new account was created.

Module 2: Transaction
The transactions are doing every day. It manages all the transactions like new
account entry, deposit as well as withdraw entry, transaction of money for
various processes. A bank transaction is a record of money that has moved
in and out of your bank account. When you have costs associated with your
business - for example, rent for office space - the payments for these will come
out of your bank account as transactions. The formation of your asset
accounts, capital accounts and liability accounts all rely on bank transactions.
A transaction account, also called a checking account, chequing account,
current account, demand deposit account, or share draft account at credit
unions, is a deposit account held at a bank or other financial institution. It is
available to the account owner "on demand" and is available for frequent and
immediate access by the account owner or to others as the account owner
may direct. Access may be in a variety of ways, such as cash withdrawals,
use of debit cards, cheques (checks) and electronic transfer. In economic
terms, the funds held in a transaction account are regarded as liquid funds. In
accounting terms, they are considered as cash.

Transaction accounts are known by a variety of descriptions, including a


current account (British English), chequing account or checking account when
held by a bank, share draft account when held by a credit union in North
America. In the United Kingdom, Hong Kong, India and a number of other
countries, they are commonly called current or cheque accounts.
lOMoAR cPSD| 195 850 94

Because money is available on demand they are also sometimes known as


demand accounts or demand deposit accounts. In the United States, NOW
accounts operate as transaction accounts.
Transaction accounts are operated by both businesses and personal users.
Depending on the country and local demand economics earning from interest
rates varies. Again depending on the country the financial institution that
maintains the account may charge the account holder maintenance or
transaction fees or offer the service free to the holder and charge only if the
holder uses an add-on service such as an overdraft.

Module 3: Close Account

Many salaried people hold multiple bank accounts as they change jobs or shift
to new cities. In such cases, some banks convert their zero balance salary
accounts into regular savings accounts after a couple of months, as they notice
no salary credits in this period. So, you are expected to maintain a minimum
average balance in those non-salary savings accounts. It is better to close any
dormant account to save on charges that would be levied for not maintaining a
minimum average balance as specified by the respective bank.

Maintaining too many bank accounts can be difficult, here are some steps you
can follow to close a bank account. Having a limited number of bank accounts
is good but too many bank account can be a trouble for you. Because you have
to maintain minimum balance requirements on each of them. So it is advisable
to close bank accounts that are not used actively. If you among them who have
an unwanted bank account then you should close it. Do you know how to close
a bank account?

Here are some steps which you can follow to close your bank account. But
before you go for it don't forget to delink your bank account from any of the
payments platforms or service apps like Paytm, Uber, Swiggy etc.
lOMoAR cPSD| 195 850 94

Things you need to know

Here are a few things you need to know before closing your bank account.
• Once you close your account you cannot re-open it again
• Before proceeding with the account closure you should make the
balance to zero
• In case if there are any pending dues, then you should clear it before
closing the account
• Before closing an account you should take the complete bank statement
of your account for future use.

Steps to close a bank account


Here are some steps which can guide you to close a bank account.
Visit Bank

You cannot close your bank account online. You need to visit your
home branch where you opened the account. So you need to walk into
the home branch where you have an account and request them for
account closure.

Account closure form

All banks provide an account closure form, which you can procure
from the bank’s branch or website. If you have a joint account, then all
account holders will have to give their consent by signing the closure
form.

Fill the complete details

After you receive the account closure form. You need


to fill the complete details on it:
• Name of the account holder
• Account number
• Contact number • Signature of the account holder Reasons for
closing the account.
lOMoAR cPSD| 195 850 94

Submit required document

After filling up the closure form you need to


submit it to the bank with the following:

• Cheque Book: You need to return the cheque book along with
remaining cheque leaves to the respective bank branch at the time of
closing their account.
• Passbook: You should also handover your passbook to the bank at the
time of closing their SBI account.
• Debit Card: The account holder should also return their debit card
which is used to withdraw money from ATM.
• ID proof: Some bank may even ask you for ID proof and address
proof before closing your account.

Closure charges

Some banks charge for the account closure. For example, SBI Bank's
don't charge for the closure within 14 days of the opening of an
account. Any closure of the SBI bank account after 14 days but before
1 year are subject to some closure charges. Keep these things in mind
and don’t let unwanted bank accounts lie idle as there is no benefit in
making yourself overburdening in gathering information and
statements from too many banks. So close unwanted account they
serve no good to your financial life.

Module 4: Deposit Amount

A deposit is a financial term that means money held at a bank. A


deposit is a transaction involving a transfer of money to another party
for safekeeping. However, a deposit can refer to a portion of money
used as security or collateral for the delivery of a good.
• First we need to enter the account number
Then we get the details of our account.
• Next we want to enter the Deposit amount.
• Then we want to select the which type of
account. Next select save option in the
display.
lOMoAR cPSD| 195 850 94

Module 5: Withdrawal Amount


A withdrawal involves removing funds from a bank account, savings
plan, pension or trust. Some accounts don't function like simple bank
accounts and carry fees for the early withdrawal of funds.

• First, we need to enter the account number


Then we get the details of our account.
• Next, we want to enter the withdrawal
amount.
• Then we want to select the which type of
account. Next select save option in the
display.

Module 6: Balance Enquiry

The Balance Inquiry process is associated with customer accounts and is


used to check the amount remaining on a customer's store credit
voucher, gift card, or gift certificate.

• First, we need to enter the account number •


we get the details of our account with
balance.

Module 7: Update Details


Details such as bank name, account number, etc., which uniquely identify
a bank account, and are used when making or receiving a payment, now
especially electronically. In recent use often in the context of the
dishonest acquisition of another's bank details in order to perpetrate
fraud.

• First, we need to enter the account number


• Next enter the account holder name and the
account type.


lOMoAR cPSD| 195 850 94



• we get the details of our account now we can
update the details.

Module 8: Account list


Here we can see the how many account are here with account number,
account holder name, account type and balance amount.
lOMoAR cPSD| 195 850 94

CHAPTER 5

CODE AND ALGORITHM.

5.1 Algorithm :

1. Define Classes:
• Customer: Represents a bank customer with attributes like
name, account number, balance, etc.
• Bank: Manages customer accounts and transactions.
2. Define Functions:
• addCustomer: Adds a new customer to the bank's records.
• displayCustomers: Displays information about all customers in the
bank.
• deposit: Allows a customer to deposit money into their account.
• withdraw: Allows a customer to withdraw money from their account.
3. Main Program:
• Create a Bank object.
• Display a menu for operations (add customer, display
customers, deposit, withdraw, exit).
• Based on user input, perform corresponding operations using
the Bank object and Customer class.
4. Algorithm Steps:
• Initialization:
• Create a Bank object.
• Initialize any necessary variables.
• Menu Display:
• Display a menu with options: Add customer
• Display customers
• Deposit money
• Withdraw money
• Exit

• Option Handling:
• Based on user input:
• If "Add customer" selected:
• Prompt for customer details (name, account
number, initial balance).
• Create a Customer object and add it to the Bank's
customer list.
• If "Display customers" selected:
• Call the displayCustomers method of the Bank
object to show all customer details.
• If "Deposit money" selected:
• Prompt for account number and deposit amount.


lOMoAR cPSD| 195 850 94




• Call the deposit method of the corresponding
Customer object.
• If "Withdraw money" selected:

• Prompt for account number and withdrawal


amount.
• Call the withdraw method of the corresponding
Customer object.
• If "Exit" selected:
• End the program.
• Looping:
• After each operation (except "Exit"), display the
menu again until the user chooses to exit.

5. End of Algorithm:

End the program when the user selects the "Exit" option.
lOMoAR cPSD| 195 850 94

5.2 Code :

C++ CODE FOR BANK MANAGEMENT SYSTEM

public class ExpenseIncomeEntry {


private String date;
private String description;
private double amount;
private String type; // The type of the entry (expense or income).

public ExpenseIncomeEntry(String date, String description, double amount, String type)


{
this.date = date;
this.description = description;
this.amount = amount;
this.type = type;
}

public String getDate(){ return date;}


public String getDescription(){ return description;}
public double getAmount(){ return amount;}
public String getType(){ return type;}

import java.util.List;

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

/**

* @author 1BestCsharp

*/

public class ExpenseIncomeTablemodel extends AbstractTableModel {

// List to store the entries (rows) in the table

private final List<ExpenseIncomeEntry> entries;

// Column names for the table


lOMoAR cPSD| 195 850 94

private final String[] columnNames = {"Date","Description","Amount","Type"};

/**

* Constructor to initialize the table model.

*/

public ExpenseIncomeTablemodel(){

entries = new ArrayList<>();

/**

* Add a new entry to the table.

* @param entry The expense or income entry to add.

*/

public void addEntry(ExpenseIncomeEntry entry){

entries.add(entry);

// Notify the table that a new row has been inserted

fireTableRowsInserted(entries.size()-1, entries.size()-1);

@Override

public int getRowCount() { return entries.size(); }

@Override

public int getColumnCount() { return columnNames.length;}

@Override

public String getColumnName(int column){ return columnNames[column]; }


lOMoAR cPSD| 195 850 94

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

ExpenseIncomeEntry entry = entries.get(rowIndex);

// Return the value for the cell based on the column index

switch(columnIndex){

case 0: return entry.getDate();

case 1: return entry.getDescription();

case 2: return entry.getAmount();

case 3: return entry.getType();

default: return null;

}
public class ExpensesIncomesTracker extends JFrame {

private final ExpenseIncomeTablemodel tableModel;


private final JTable table;
private final JTextField dateField;
private final JTextField descriptionField;
private final JTextField amountField;
private final JComboBox<String> typeCombobox;
private final JButton addButton;
private final JLabel balanceLabel;
private double balance; // The current balance based on the added expenses and incomes.

// Constructor to initialize the application and set up the form.


public ExpensesIncomesTracker(){

try{
// Apply the FlatDarkLaf look and feel for a modern and flat appearance.
UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
}
catch(Exception ex){
System.err.println("Failed to Set FlatDarkLaf LookAndFeel");
}

// Custom color schemes for specific Swing components.


UIManager.put("TextField.foreground", Color.WHITE);
UIManager.put("TextField.background", Color.DARK_GRAY);
UIManager.put("TextField.caretForeground", Color.RED);
lOMoAR cPSD| 195 850 94

UIManager.put("ComboBox.foreground", Color.YELLOW);
UIManager.put("ComboBox.selectionForeground", Color.WHITE);
UIManager.put("ComboBox.selectionBackground", Color.BLACK);
UIManager.put("Button.foreground", Color.WHITE);
UIManager.put("Button.background", Color.ORANGE);
UIManager.put("Label.foreground", Color.WHITE);

// Set the default font for the entire application


Font customFont = new Font("Arial", Font.PLAIN, 18);
UIManager.put("Label.font", customFont);
UIManager.put("TextField.font", customFont);
UIManager.put("ComboBox.font", customFont);
UIManager.put("Button.font", customFont);

// Initialize the table model and balance variable.


balance = 0.0;
tableModel = new ExpenseIncomeTablemodel();

// Create a JTable and set up a scroll pane to display the data.


table = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);

// Create input fields and components for adding new entries.


dateField = new JTextField(10);
descriptionField = new JTextField(20);
amountField = new JTextField(10);
typeCombobox = new JComboBox<>(new String[]{"Expense","Income"});

// Attach an ActionListener to the "Add" button to handle new entry addition.


addButton = new JButton("Add");
addButton.addActionListener(e -> addEntry());
balanceLabel = new JLabel("Balance: Rs" + balance);

// Create input panel to arrange input components.


JPanel inputPanel = new JPanel();
inputPanel.add(new JLabel("Date"));
inputPanel.add(dateField);

inputPanel.add(new JLabel("Description"));
inputPanel.add(descriptionField);

inputPanel.add(new JLabel("Amount"));
inputPanel.add(amountField);

inputPanel.add(new JLabel("Type"));
inputPanel.add(typeCombobox);

inputPanel.add(addButton);

// Create bottom panel to display the balance.


JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
bottomPanel.add(balanceLabel);
setLayout(new BorderLayout());

// Set the layout of the main frame and add components to appropriate positions.
add(inputPanel, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.SOUTH);

// Set the title, default close operation, and visibility of the main frame.
setTitle("Expense And Income Tracker");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
lOMoAR cPSD| 195 850 94

setVisible(true);

// Method to handle adding new entries to the table.


private void addEntry()
{
// Get input values from input fields.
String date = dateField.getText();
String description = descriptionField.getText();
String amountStr = amountField.getText();
String type = (String)typeCombobox.getSelectedItem();
double amount;

// Validate input values.


// you can the description and date to the validation
if(amountStr.isEmpty())
{
JOptionPane.showMessageDialog(this, "Enter the Amount", "Error",
JOptionPane.ERROR_MESSAGE);
return;
}

try
{
amount = Double.parseDouble(amountStr);
}
catch(NumberFormatException ex)
{
JOptionPane.showMessageDialog(this, "Invalid Amount Format", "Error",
JOptionPane.ERROR_MESSAGE);
return;
}

// Convert expenses to negative values.


if(type.equals("Expense"))
{
amount *= -1;
}

// Create a new entry and add it to the table.


ExpenseIncomeEntry entry = new ExpenseIncomeEntry(date, description, amount, type);
tableModel.addEntry(entry);

// Update the balance and display the new balance.


balance += amount;
balanceLabel.setText("Balance: Rs"+balance);

// Clear input fields for the next entry.


clearInputFields();
}

// Method to clear input fields.


private void clearInputFields()
{
dateField.setText("");
descriptionField.setText("");
amountField.setText("");
typeCombobox.setSelectedIndex(0);
}

}
lOMoAR cPSD| 195 850 94

public class expense_income_tracker {

public static void main(String[] args) {

new ExpensesIncomesTracker().setLocationRelativeTo(null);

CHAPTER – 6

REQUIREMENTS

6.1. SYSTEM REQUIREMENTS


The cool thing about using C++ for creating application is the fact that you can
build those on almost any OS.

Here are some System Requirements for c++ in visual studio codesss

6.1.1 Windows

• Microsoft® Windows® 7/8/10 64-bit

• 4 GB RAM minimum, 8 GB RAM recommended

• 2 GB of available disk space minimum,

• 4 GB Recommended 500 MB for IDE + 1.5 GB for Android SDK and


emulator system image

• 1280 x 800 minimum screen resolution

6.1.2 Mac

• Mac® OS X® 10.10 Yosemite or higher, up to 10.14 macOS Mojave

• 4 GB RAM minimum, 8 GB RAM recommended

• 2 GB of available disk space minimum,


lOMoAR cPSD| 195 850 94

• 4 GB Recommended 500 MB for IDE + 1.5 GB for Android SDK and


emulator system image

• 1280 x 800 minimum screen resolution

6.1.3 Linux

• GNOME or KDE desktop - Tested on gLinux based on Debian.

• 64-bit distribution capable of running 32-bit applications GNU

• C Library glibc 2.19 or later 16

• 4 GB RAM minimum, 8 GB RAM recommended

• 2 GB of available disk space minimum,

• 4 GB Recommended 500 MB for IDE + 1.5 GB for Android SDK and


emulator system image

• 1280 x 800 minimum screen resolution

6.1.4 Chrome OS

• 8 GB RAM or more recommended

• 4 GB of available disk space minimum

• 1280 x 800 minimum screen resolution

• Intel i5 or higher U series or higher recommended


lOMoAR cPSD| 195 850 94

CHAPTER – 7

RESULTS AND DISCUSSION, PERFORMANCE ANALYSIS

7.1 Results

After implementing the bank management system, we conducted several test scenarios
to evaluate its functionality:
Adding Customers : We successfully added multiple customers with different
account details to
the system.
Displaying Customers: The system displayed accurate information about all
customers, including their names, account numbers, and balances.

Depositing and Withdrawing Money: Customers were able to deposit and


withdraw money from their accounts, and the system updated the balances
accordingly.
Error Handling: The system handled scenarios such as insufficient balance
during
withdrawals gracefully, providing appropriate messages to the user.

7.2
Discussion

The implemented bank management system serves as a foundational model for


handling basic banking operations. However, there are several areas for improvement
and further development:
Security : Implementing authentication mechanisms and secure
transaction handling to ensure data confidentiality and integrity.
lOMoAR cPSD| 195 850 94

Transaction History: Adding functionality to track transaction history for each


customer.
Account Types: Supporting different types of accounts such as savings,
checking, and loans with specific features.
Database Integration: Integrating a database backend to store customer
information persistently.
lOMoAR cPSD| 195 850 94

7.3. PERFORMANCE ANALYSIS

• The performance of the application is very efficient on latest android Os


version 12
• The performance of the application is very efficient on latest mac version
macos 12 monterey
• Internet connection is recommended

• Minimum RAM required is 2gb

• Due to efficient build strategy the app size is comparatively lower so the
performance will be better Completely responsive

30
lOMoAR cPSD| 195 850 94

CHAPTER 8

SUMMARY AND CONCLUSION

8.1 summary :

Benefits of online banking Many of us lead busy lives. Some of us are up before the
crack of dawn, getting ourselves prepared so we can in turn get our families ready for
the day. We rush to work, rush to get the kids to school, and at the end of the day we
rush home only to brace ourselves for the next day. After a hectic day, the last thing you
want to do is spend time waiting in line at the bank, or even the post office. That's where
Online Banking comes in. Many of the benefits of doing our banking online are obvious:
o You don't have to wait in line. o You don't have to plan your day around the bank's
hours. o You can look at your balance whenever you want, not just when you get a
statement. There are some hidden benefits too. As a young bank customer, you're just
learning how to manage your money and observe your spending patterns. Online
banking allows you to watch your money on a daily basis if you want to. By keeping close
tabs on your funds, you'll always be aware of what's happening in your bank account.
For those experienced spenders, this option is far more appealing than the sudden
discovery that you're broke! It's also helpful to watch how much interest you're gathering
on investments and savings or what service charges you have incurred.

Most available benefits

1. Online banking with key bank is fast, secure, convenient and free.
2. Quick, simple, authenticated access to accounts via the web application.
3. Simply scalable to grow with changing system requirement.
4. Global enterprise wide access to information.
5. Improved data security, restricting unauthorized access.
lOMoAR cPSD| 195 850 94

8.2. CONCLUSION

This project is developed to nurture the needs of a user in a banking sector by embedding
all the tasks of transactions taking place in a bank. Future version of this project will still be
much enhanced than the current version. Writing and depositing checks are perhaps the
most fundamental ways to move money in and out of a checking account, but
advancements in technology have added ATM and debit card transactions. All banks have
rules about how long it takes to access your deposits, how many debit card transactions
you're allowed in a day, and how much cash you can withdraw from an ATM. Access to
the balance in your checking account can also be limited by businesses that place holds
on
your funds. Banks are providing internet banking services also so that the customers can
be attracted. By asking the bank employs we came to know that maximum numbers of
internet bank account holders are youth and business man. Online banking is an
innovative tool that is fast becoming a necessity. It is a successful strategic weapon for
banks to remain profitable in a volatile and competitive marketplace of today. If proper
training should be given to customer by the bank employs to open an account will be
beneficial secondly the website should be made friendlier from where the first time
customers can directly make and access their accounts. Thus the Bank Management
System it is developed and executed successfully

8.3 Future work :

The “Banking Online System is a big and ambitious project. I am thankful for being
provided this great opportunity to work on it. As already mentioned, this project has gone
through extensive research work. On the basis of the research work, we have successfully
designed and implemented banking online System. To know what the future of online
banking looks like, it’s probably worth looking at the present – online banking isn’t new.
When you think of online banking, you probably think about a computer (either a desktop
or laptop), a three or four step security process and then an interface that lets you view
the balance of your various bank accounts and credit cards, whilst permitting you to
lOMoAR cPSD| 195 850 94

transfer money and pay bills. And you’re not wrong either. The most valuable future looks
are following below: More branches of the bank, maybe it will be international, that means
more ATM machines outside. Customer issues development based on their needs, so
the help desk will be aware of their needs and easy to use. Developing a mobile App for
banking system that help users to do the obtained his operations without go to the bank
only he need to sign in using his A/C NO. And password and then use your own PIN.
Finally the system will update automatically
lOMoAR cPSD| 195 850 94

References
1. Stroustrup, B. (2013). Programming: Principles and Practice Using C++ (2nd Edition).
Addison-Wesley Professional.
This book provides a comprehensive introduction to C++ programming concepts,
including classes, object-oriented programming, and data structures, which are
essential for implementing a bank management system.
2. Deitel, P., & Deitel, H. (2017). C++ How to Program (10th Edition). Pearson.
This textbook covers C++ programming fundamentals, including classes and
objectoriented programming techniques, which are relevant to developing software
applications like a bank management system.
3. GeeksforGeeks. (n.d.). C++ Programming Language - Bank Management System
Project. Retrieved from https://www.geeksforgeeks.org/c-programming-language-
bankmanagement-system-project/
This online resource provides a sample implementation and guidance for creating a
bank management system in C++, which served as a reference for understanding
system design and functionalities.
4. Microsoft Docs. (n.d.). C++ Language Reference. Retrieved from
https://docs.microsoft.com/en-us/cpp/cpp/
The official documentation for the C++ programming language from Microsoft
provides detailed information about language syntax, standard libraries, and best
practices, which were consulted during the development of the bank management
system.
5. OpenAI. (2022). ChatGPT. Retrieved from https://openai.com/
ChatGPT, an AI language model developed by OpenAI, provided guidance and
assistance in generating algorithmic outlines and discussing programming concepts
related to the bank management system in C++.

These references include textbooks, online resources, and tools that were consulted
or used during the development or understanding of the bank management system
in C++. Adjust the references according to the specific resources you used or
consulted during your work.
lOMoAR cPSD| 195 850 94

APPENDIX
SCREENSHOTS
lOMoAR cPSD| 195 850 94
lOMoAR cPSD| 195 850 94
lOMoAR cPSD| 195 850 94
lOMoAR cPSD| 195 850 94

DFQE

You might also like