0% found this document useful (0 votes)
10 views31 pages

Software Development Research Paper

The document certifies the project titled 'Banking Management System: A Java-Based Desktop Application' completed by Santo Ghosh at Northern University of Business and Technology Khulna. It outlines the project's objectives, methodology, and contributions, emphasizing the development of a lightweight banking application using Java and CSV file storage. The project aims to enhance understanding of digital banking systems and improve programming skills through practical implementation.

Uploaded by

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

Software Development Research Paper

The document certifies the project titled 'Banking Management System: A Java-Based Desktop Application' completed by Santo Ghosh at Northern University of Business and Technology Khulna. It outlines the project's objectives, methodology, and contributions, emphasizing the development of a lightweight banking application using Java and CSV file storage. The project aims to enhance understanding of digital banking systems and improve programming skills through practical implementation.

Uploaded by

badhanroybr02
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Declaration

This is to certify that the project work titled “ Banking Management System: A Java-Based
Desktop Application ” has been undertaken by Santo Ghosh in the Department of Computer
Science and Engineering at Northern University of Business and Technology Khulna,
Bangladesh.

This project work, in its entirety, has not been submitted elsewhere for the award of any degree
or diploma.

Signature of the Lecturer Signature of the Student

Md. Tahmid Hasan Santo Ghosh


Senior Lecturer, ID: 11240121613
Department of Computer Science and Engineering, Section: 4A
Northern University of Business and Technology Khulna
Khulna 9100, Bangladesh

1
Acknowledgement

I would like to acknowledge and express my sincere gratitude to my lecturer , Md. Tahmid
Hasan, Senior Lecturer, Department of CSE, Northern University of Business and Technology
Khulna, for his continuous guidance, valuable suggestions, and support throughout the
development of this project. His insightful advice and encouragement greatly helped me in
completing this work successfully.

I am deeply grateful to my family for their endless support, patience, and encouragement
throughout my academic journey. Their belief in me has always been a source of strength and
motivation.

Finally, I would like to thank Almighty God for giving me the strength, patience, and wisdom
to overcome all challenges and successfully complete my project.

Santo Ghosh
April, 2026

2
Chapter 1: Introduction

1.1 Introduction

In the modern era, banking systems play a vital role in managing financial transactions
efficiently and securely. With the advancement of information technology, traditional manual
banking systems are gradually being replaced by digital applications that provide faster, more
reliable, and user-friendly services.

This project presents a Banking Management System developed using Java programming
language with Swing for the graphical user interface (GUI). The application is designed to
simulate basic banking operations in a simplified manner. It allows users to create accounts,
log in securely, and perform essential financial activities such as depositing money,
withdrawing funds, and transferring money between users.

Additionally, the system provides features like transaction history tracking, mini statements
(last five transactions), password change functionality, and a money request system where
users can request funds from other users. One of the key aspects of this project is that it uses
CSV (Comma-Separated Values) files for data storage instead of a traditional database, making
the system lightweight and easy to implement.

Overall, this project demonstrates how core banking functionalities can be implemented using
object-oriented programming concepts and file handling techniques in Java.

1.2 Motivation

The motivation behind this project arises from the increasing importance of digital banking
systems in everyday life. Understanding how such systems work provides valuable insight into
real-world software development and financial technology.

The key motivations include:

 To gain practical experience in Java programming and GUI development using Swing
 To understand how real-life banking operations are implemented in software systems
 To learn file handling techniques using CSV files instead of databases

3
 To apply object-oriented programming (OOP) concepts such as classes, objects,
encapsulation, and modular design
 To build a complete project that combines both front-end (GUI) and back-end logic

This project also helps in improving problem-solving skills and understanding how different
components of a system interact with each other.

1.3 Objectives

The primary objective of this project is to design and develop a functional banking management
system that can perform essential banking operations efficiently.

The specific objectives are:

 To create a secure user registration and login system


 To implement core banking functionalities:
o Deposit money into an account
o Withdraw money from an account
o Transfer money between users
 To maintain a detailed transaction history with balance updates
 To provide a mini statement feature showing the last five transactions
 To implement a money request system where users can request and approve payments
 To allow users to change their account password securely
 To store and retrieve user data using CSV file handling techniques
 To develop an intuitive and user-friendly graphical interface (GUI)

1.4 Contributions

This project makes several important contributions in terms of design, implementation, and
functionality:

 Development of a complete Banking Management System without using a database


 Implementation of CSV-based data storage, which simplifies data management and
portability
 Design of a visually interactive and responsive GUI using Java Swing
 Integration of multiple banking features within a single application, including:

4
o Real-time balance updates
o Transaction history with running balance calculation
o Mini statement generation
o Secure password modification
o Money request and approval mechanism
 Use of a modular programming approach, where different classes such as
BankAccount, LoginFrame, and DashboardFrame handle specific functionalities

These contributions demonstrate how a real-world system can be broken down into smaller
components and implemented effectively.

1.5 Chapter Overview

This report is organized into five chapters, each describing a specific part of the project:

 Chapter 1: Introduction

This chapter provides a general overview of the project, including its background,
motivation, objectives, and key contributions. It helps the reader understand the purpose
and scope of the system.

 Chapter 2: Related Works

This chapter discusses existing banking systems and similar applications. It compares
traditional and modern banking solutions and highlights how the proposed system
differs from them.

 Chapter 3: Methodology

This chapter explains the overall system design and development approach. It describes
the architecture, modules, and techniques used to implement the banking system,
including data storage and process flow.

5
 Chapter 4: Results and Discussion

This chapter presents the implementation results of the system. It discusses the features
achieved, system performance, and how effectively the application meets the project
objectives.

 Chapter 5: Conclusion

This chapter summarizes the entire project and its outcomes. It also discusses the
limitations of the system and suggests possible future improvements and enhancements.

6
Chapter 2: Related Works

2.1 Introduction

The development of banking systems has progressed significantly over time, evolving from
manual record-keeping methods to fully automated digital platforms. Many researchers and
developers have contributed to improving banking systems by enhancing efficiency, accuracy,
and user experience.

This chapter reviews existing banking systems and related applications to understand their
functionalities, technologies, and limitations. It also provides a comparison between traditional
systems, modern digital systems, and the proposed Banking Management System.

2.2 Traditional Banking Systems

Traditional banking systems were primarily manual or semi-automated. Banking operations


such as account management, transaction recording, and balance calculations were performed
manually by bank employees.

These systems had several disadvantages:

 Time-consuming processes
 Higher chances of human error
 Difficulty in managing large volumes of data
 Limited accessibility for customers

Although some level of computerization was later introduced, these systems still lacked real-
time processing and flexibility.

2.3 Modern Digital Banking Systems

Modern banking systems are highly advanced and utilize technologies such as databases, cloud
computing, and mobile applications. These systems allow users to perform banking activities
conveniently from anywhere at any time.

7
Key features include:

 Online account access


 Real-time transaction processing
 Instant fund transfer
 Secure authentication systems
 Mobile and web-based platforms

These systems provide high efficiency and security but require complex infrastructure and
maintenance.

2.4 Desktop-Based Banking Applications

Desktop-based banking applications are simpler systems typically developed for educational
or small-scale purposes. These applications are built using programming languages such as
Java or C# and run on personal computers.

Characteristics include:

 User-friendly graphical interface


 Limited number of users
 Basic functionalities like deposit, withdrawal, and transfer
 Local data storage using files or small databases

Such systems are useful for understanding the core logic of banking operations.

2.5 File-Based Data Storage Systems

Some banking applications use file-based storage systems instead of databases. In this
approach, data is stored in files such as CSV or text files.

Advantages:

 Easy to implement
 No need for database management systems
 Lightweight and portable

8
Disadvantages:

 Less secure compared to database systems


 Limited scalability
 Not suitable for large-scale applications

The proposed system uses CSV file storage for simplicity and ease of implementation.

2.6 Comparison with Proposed System

The proposed Banking Management System differs from existing systems in several ways:

 It is a desktop-based application developed using Java Swing


 It uses CSV files for data storage instead of a database
 It focuses on core banking functionalities in a simplified manner
 It includes additional features such as:
o Transaction history with running balance
o Mini statement (last five transactions)
o Money request system
o Password change functionality

Compared to modern banking systems, this project is less complex but serves as an effective
educational tool.

2.7 Summary

In conclusion, banking systems have evolved from manual processes to advanced digital
platforms. While modern systems provide powerful features and high security, they are
complex and resource-intensive.

The proposed system offers a simplified version of banking operations using basic
technologies. It is designed primarily for learning purposes and demonstrates how fundamental
banking features can be implemented effectively.

9
Chapter 3: Methodology

3.1 Language Selection

The Banking Management System is developed using the Java programming language. Java
was selected because it is platform-independent, object-oriented, and widely used for building
desktop applications.

For the graphical user interface (GUI), Java Swing is used. Swing provides a rich set of
components such as buttons, labels, text fields, and panels, which help in designing an
interactive and user-friendly interface.

The system uses CSV (Comma-Separated Values) files for data storage instead of a database.
This approach simplifies the implementation and makes the system lightweight. File handling
techniques in Java are used to store and retrieve user data, transaction history, and money
requests.

Overall, the combination of Java, Swing, and CSV file handling makes the system efficient,
simple, and suitable for academic purposes.

3.2 Project Use Case Diagram

The Use Case Diagram represents the interaction between the user (actor) and the system
functionalities.

Actor:

 User (Account Holder)

Main Use Cases:

 Create Account
 Login
 Deposit Money
 Withdraw Money
 Transfer Money
 View Transaction History

10
 View Mini Statement
 Change Password
 Request Money
 Approve/Reject Money Request
 Logout

Description:
The user first creates an account and logs into the system. After successful login, the user can
perform various banking operations such as deposit, withdrawal, and transfer. The system
also allows the user to view transaction history, request money from other users, and manage
account settings.

3.3 Project ER Diagram (Entity-Relationship Diagram)

The ER Diagram represents the structure of data and relationships between entities in the
system.

Fig 3.1 : Entity-Relationship Diagram

Entities:

 User
o Attributes: Username, Password
 BankAccount
o Attributes: Username, Balance

11
 Transaction

o Attributes: Type, Amount, Date (optional), Description


 Request
o Attributes: FromUser, ToUser, Amount

Relationships:

 A User has one BankAccount


 A BankAccount performs many Transactions
 A User can send/receive multiple Requests

Description:
The ER diagram shows how user data, account details, transactions, and requests are connected.
Each user has one account, and each account maintains multiple transaction records.

3.4 Project DFD (Data Flow Diagram)

DFD 0 :

Fig 3.2 : DFD Level 0

The system is represented as a single process interacting with the user.


12
Input:

 Login details
 Transaction data (deposit, withdraw, transfer)
 Request data

Output:

 Account balance
 Transaction history
 Confirmation messages

DFD 1 :

Fig 3.3 : DFD Level 1

The system is divided into multiple processes:

Processes:

13
1. User Authentication
2. Transaction Processing
3. Data Storage (CSV files)
4. Request Handling

Data Stores:

 Users File ([Link])


 Transaction History Files
 Request Files

DFD 2 :

Fig 3.4 : DFD Level 2

Description:
The user interacts with the system through the GUI. The system processes requests and
stores/retrieves data from CSV files.

3.5 Project Architecture Diagram

14
The system follows a simple layered architecture:

Fig 3.5 : Project Architecture Diagram

1. User Interface Layer (Java Swing GUI)

This is the front-end part of the system where the user interacts directly. It is developed
using Java Swing components such as JFrame, JButton, JTextField, JLabel, and JList.

 The LoginFrame handles user authentication (username and password input).


 The DashboardFrame is the main interface where all banking operations are performed.
 Users can perform actions like deposit, withdraw, transfer, and request money through
buttons.
 Transaction history and balance are displayed dynamically on the screen.

In simple terms, this layer is responsible for what the user sees and interacts with.

15
2. Business Logic Layer (BankAccount Class)

This is the core processing part of the system. It contains all rules and logic of banking
operations.

Main responsibilities include:

1. Account Management
o Stores username, balance, transaction history, and requests
2. Transaction Processing
o Deposit increases balance
o Withdraw decreases balance
o Transfer moves money between accounts
3. Validation Rules
o Prevents invalid transactions (negative amount, insufficient balance)
o Ensures user exists before transfer
4. History Management
o Records every transaction in a list
o Generates mini statement
5. Request Handling
o Stores incoming money requests
o Allows approval or rejection

This layer acts as the brain of the system, controlling all banking operations.

3. Data Storage Layer (CSV Files)

This layer is responsible for saving and loading data permanently.

The system uses file-based storage (CSV files) instead of a database.

It stores:

1. User Data File ([Link])


o Username
o Password

16
o Balance
2. Transaction History File (history_username.csv)
o Stores all deposit, withdraw, transfer records
3. Request File (requests_username.csv)
o Stores pending money requests

This layer ensures that data is not lost after closing the application.

4. Interaction Between Layers

The flow between layers works like this:

1. User performs action in GUI


2. UI sends request to Business Logic
3. Business Logic processes request
4. Data is updated in memory
5. Data is saved in CSV files
6. Updated result is shown back in UI

Architecture Flow:

User → GUI → Business Logic → File Storage → Response → GUI

Description:
The user interacts with the GUI, which sends requests to the business logic layer. The logic
processes the request and interacts with the data layer to store or retrieve information. The
result is then displayed back to the user.

17
3.6 Flowchart :

Fig 3.6 : Flowchart

18
CHAPTER 4 : RESULTS AND DISCUSSION

4.1 General Section

This chapter presents the results and working outputs of the developed Banking Management
System. The system is implemented to automate basic banking operations such as account
creation, login authentication, deposit, withdrawal, balance inquiry, and transaction
management.

The application is divided into two main roles: User and Admin. Each role has specific
functionalities to ensure proper access control and secure banking operations.

The system provides a user-friendly interface, fast processing, and secure data handling using
a structured database system.

4.1.1 Login Page

The Login Page is the entry point of the system. Users must enter valid credentials (username
and password) to access the system.

After successful authentication, the system redirects the user to their dashboard based on their
role (User or Admin). This ensures system security and prevents unauthorized access.

4.1.2 User Registration Page

This page allows new users to create an account in the system.

Users provide personal information such as name, email, phone number, and password. After
successful registration, data is stored in the database and the user can access banking services.

This module ensures each user has a unique identity in the system.

4.1.3 User Dashboard

The User Dashboard is the main interface for customers after login.

It provides quick access to all banking services such as:

19
 Account balance
 Deposit money
 Withdraw money
 Transaction history
 Profile management

This dashboard helps users easily navigate and manage their banking activities.

4.1.4 Account Management

This module manages all user account information.

Each user account is uniquely identified and stored securely in the database. It ensures data
consistency and proper linkage between user and transactions.

4.1.5 Deposit Module

The deposit module allows users to add money to their account.

After entering a valid amount, the system updates the account balance and stores the transaction
in the database.

This ensures accurate financial record keeping.

4.1.6 Withdrawal Module

This module allows users to withdraw money from their account.

Before processing, the system checks available balance. If sufficient funds are available, the
transaction is completed; otherwise, an error message is shown.

4.1.7 Balance Inquiry

This feature allows users to check their current account balance at any time.

20
The system fetches real-time data from the database and displays updated balance.

4.1.8 Transaction History

This module records all financial activities such as deposits, withdrawals, and transfers.

It helps users track their banking activities and ensures transparency in the system.

4.1.9 Admin Dashboard

The Admin Dashboard is the control center of the system.

Admin can manage users, monitor transactions, and control system operations.

4.1 Work Screenshot Description

This section describes the implemented system interface with reference to actual system
screens (screenshots should be inserted in the report at this section).

Screenshot 1: Login Page

Fig 4.1 : Login Page

This screenshot shows the login interface of the system. Users must enter their username and
password to access the system. It ensures secure authentication and prevents unauthorized
access.

21
Screenshot 2 : User Dashboard

Fig 4.2 : User Dashboard

This screenshot shows the main dashboard of the user. It provides navigation to all banking
services such as deposit, withdrawal, and transaction history.

Screenshot 3 : Deposit Module

Fig 4.3 : Deposit Module

This screen shows the deposit interface where users can enter an amount to add money to their
account. After submission, the balance is updated automatically.

22
Screenshot 4: Withdrawal Module

Fig 4.4 : Login Page

This screenshot shows the withdrawal page. Users can withdraw money if sufficient balance
is available. Otherwise, an error message is displayed.

Screenshot 5: Transaction History Page

Fig 4.5 : Transaction History Page

This screenshot shows all previous transactions made by the user including deposits and
withdrawals. It helps users track their financial activities.

23
Screenshot 6 : Request pop up

Fig 4.6 : Request pop up

This screenshot shows the Request pop up. Users can request money from an another user
whoes account exists on the bank database.

Screenshot 7 : Transfer money

Fig 4.7: Transfer Money

This screenshot shows the Transfer money . Users can transfer his money to an another user
whoes account exist on the bank database.

24
4.2 User Section

Users can:

 Login and register


 Deposit and withdraw money
 Check balance
 View transaction history

4.3 Results of the System

After implementation, the system works successfully and meets all functional requirements.

The system provides:

 Secure login system


 Fast transaction processing
 Accurate balance updates
 Easy navigation
 Proper transaction records

Overall, the system improves banking efficiency and reduces manual errors.

4.4 Discussion

The Banking Management System successfully automates basic banking operations. It reduces
manual workload and improves transaction speed and accuracy.

The system is secure and user-friendly, making it suitable for real-world applications at a basic
level.

Future improvements can include:

 Mobile banking integration


 OTP verification
 Real-time notifications
 Advanced encryption system

25
CHAPTER 5: CONCLUSION

5.1 Conclusion

The Banking Management System has been successfully designed and implemented to
automate essential banking operations in a simple, efficient, and secure manner. The system
provides core functionalities such as user registration, login authentication, account
management, deposit, withdrawal, balance inquiry, and transaction history tracking.

The main objective of this project was to reduce manual banking work and provide a
computerized solution that ensures accuracy, speed, and reliability in financial transactions.
This system also improves data management by storing all user and transaction information in
a structured database.

The application has two main roles: User and Admin. Users can perform basic banking
operations, while the Admin has full control over managing users, monitoring transactions,
and maintaining system security.

Overall, the system successfully demonstrates how a simple software solution can improve
traditional banking operations by making them faster, more organized, and more user-friendly.

5.2 Limitations

Although the system works effectively, there are some limitations in the current
implementation:

1. Limited Security Features

The system uses basic authentication methods. Advanced security features like OTP
verification, two-factor authentication, or biometric login are not implemented.

26
2. No Real Banking Integration

This system is a simulation project and is not connected to real banking networks or
financial institutions.

3. Single Platform Usage

The application is designed for desktop/web usage only and does not support mobile
application integration.

4. Basic UI Design

The user interface is functional but can be improved with more modern and interactive
design elements.

5. Limited Advanced Banking Features

Features like loan management, interest calculation, ATM simulation, and credit/debit
card management are not included.

5.3 Future Plan

In the future, the Banking Management System can be improved and expanded with additional
advanced features to make it more practical and closer to real-world banking systems.

Possible future improvements include:

1. Mobile Banking Application

Developing a mobile version of the system for Android and iOS users.

27
2. Advanced Security System

Implementing OTP verification, biometric authentication, and stronger encryption


techniques.

3. Real-Time Transaction System

Adding instant notifications for deposits, withdrawals, and transfers.

4. Loan and Interest Module

Including features for loan management and automatic interest calculation.

5. ATM Integration Simulation

Developing a virtual ATM system for better practical understanding.

6. Cloud Database Integration

Using cloud storage to improve scalability and data accessibility.

7. Improved UI/UX Design

Enhancing the interface with modern design frameworks for better user experience.

5.4 Error Handling

The system handles invalid inputs such as:

1. Incorrect amount
2. Invalid username
3. Insufficient balance

28
5.5 Data Management

CSV files are used for storing data. Each user has separate history and request files.

5.6 Final Remarks

This project is a complete demonstration of a banking system with essential features and can
be further enhanced for real-world applications.

29
REFERENCES

The following books, documentation, and online resources were used for the development and
documentation of the Banking Management System project:

1. Java Programming Language Documentation

Oracle Java SE [Link]://[Link]/javase/


(Used for Java programming concepts, object-oriented programming, and Swing GUI
development)

2. Java Swing Tutorial

Oracle Creating GUI Applications with


[Link]://[Link]/javase/tutorial/uiswing/
(Used for designing graphical user interface of the banking system)

3. Database Management System Concepts

Elmasri, R. & Navathe, S. B. Fundamentals of Database Systems. Pearson.


(Used for database design, relational model, and normalization concepts)

4. MySQL Database Reference Manual

Oracle Corporation. MySQL [Link]://[Link]/doc/


(Used for database creation, queries, and managing banking data)

30
5. Software Engineering Principles

Pressman, R. S. Software Engineering: A Practitioner’s Approach. McGraw-Hill.


(Used for system design, development methodology, and project structuring)

6. Web and UI Design References (if applicable for GUI styling)

W3Schools. HTML, CSS & UI Design [Link]://[Link]/


(Used for basic UI design concepts and layout improvement)

7. Course Lecture Notes

Department of Computer Science & Engineering, Lecture Notes on Software.


Development and Database Systems.
(Used for academic guidance and project development structure)

31

You might also like