Gambela University
Facility of Natural and Computation Science Department of
Computer Science
Java Programming Mini Project
NO GROUP MEMBERS ID_NO
1 HANI MILIYON 1069
2 ISAYAS WANDIMUA 1219
3 GETE WALDE 1167
4 HAIMANOT NEBSOYE 1113
5 MANALIE GETAHUN 677
SUBMITTED TO: ABEBE ALAMBO
SUBMITTED DATE FEB/9/2026
1
Table of Contents
1. Introduction
2. Objectives
3. Scope of the Project
4. Functional Requirements
5. System Modules Description
6. System Design (OOP)
7. Database Design
8. GUI Screenshots Explanation
9. Testing and Validation
10. Conclusion
11. Future Enhancements
CHAPTER 1: INTRODUCTION
A Banking Management System is an important software application that helps
banks manage customer accounts and transactions digitally.
In the modern world, banking operations are no longer done manually. Most banks
use computerized systems to provide fast and secure services.
This project is a GUI Based Banking Application developed using Java Swing.
It simulates real-world banking operations such as:
• Creating customer accounts
• Secure login system
• Depositing money
• Withdrawing money
• Transferring money between accounts
• Viewing balance
• Transaction history tracking
The application provides a simple and user-friendly interface that allows customers
to perform banking activities efficiently.
2
CHAPTER 2: OBJECTIVES
The main objectives of this mini project are:
1. To design a banking system using Java Swing GUI.
2. To implement secure registration and login for users.
3. To allow users to perform deposit, withdrawal, and transfer operations.
4. To display current balance and transaction history.
5. To store all customer and transaction data in a database using JDBC.
6. To apply Object-Oriented Programming (OOP) concepts in a real
application.
CHAPTER 3: SCOPE OF THE PROJECT
The scope of this project is limited to basic banking operations.
It focuses on providing essential banking services in a simulated environment.
The system supports:
• Multiple customer accounts
• Secure authentication
• Transaction record keeping
• Database storage
This project is suitable for learning:
• Java Swing GUI development
• JDBC connectivity
• OOP principles
• Event-driven programming
CHAPTER 4: FUNCTIONAL REQUIREMENTS
The system must satisfy the following functional requirements:
3
4.1 Registration
• New users can create an account by entering:
o Full name
o Email
o Password
o Initial deposit
• The system stores the user data in the database
4.2 Login
• Existing users can log in using their email and password.
• Incorrect login details are rejected with an error message.
4
4.3 Dashboard
After successful login, the user is redirected to the dashboard which provides
options:
• Deposit
• Withdraw
• Transfer
• View Balance
• Transaction History
5
• Logout
4.4 Deposit Operation
Deposit allows customers to add money into their account.
Steps:
1. User enters deposit amount
2. System validates input
3. Balance is updated
4. Transaction is recorded
4.5 Withdrawal Operation
Withdrawal allows customers to remove money from their account.
Steps:
1. User enters withdrawal amount
2. System checks if balance is sufficient
3. If valid, money is deducted
4. Transaction is saved
6
4.6 Transfer Operation
Transfer enables customers to send money from one account to another.
Steps:
1. Sender enters receiver account number
2. Amount is entered
3. System validates receiver existence
4. Money is deducted from sender
5. Money is added to receiver
6. Both transactions are recorded
4.7 View Balance
This module displays the current account balance of the logged-in user.
4.8 Transaction History
Transaction history provides a detailed list of all operations performed, including:
• Date
• Transaction type
• Amount
• Updated balance
It is displayed using a JTable component
✅ CHAPTER 5: SYSTEM DESIGN (OOP STRUCTURE)
This project is developed using Object-Oriented Programming principles.
Main Classes Used
• Bank Class
manages all accounts and transactions.
7
• Account Class
Stores account number, owner details, and balance.
• Customer Class
Holds customer information such as name, email, and password.
• Transaction Class
represents each banking transaction record.
• Login Frame Class
GUI for registration and login.
• Dashboard Frame Class
Main interface for banking operations.
• Database Manager Class
Handles database connection and queries.
✅ CHAPTER 6: DATABASE DESIGN
The system uses SQLite/MySQL database.
Table of content
Field Description
customer_id Unique ID
name Customer name
email Login email
password Encrypted password
balance Current balance
Transaction Table
Field Description
transaction_id Unique ID
customer_id Account owner
8
Field Description
type Deposit/Withdraw/Transfer
amount Transaction amount
date Date and time
balance_after Updated balance
✅ CHAPTER 7: GUI DESIGN
The GUI is designed using Java Swing components:
• JFrame
• JPanel
• JLabel
• JTextField
• JPasswordField
• JButton
• JTable
• JOptionPane
Layout managers used:
• Grid Layout
• Border Layout
• Box Layout
The design ensures usability, clarity, and user-friendly navigation.
✅ CHAPTER 8: TESTING AND VALIDATION
The system was tested for:
9
• Correct registration
• Login validation
• Deposit balance update
• Withdrawal insufficient funds prevention
• Transfer correctness
• Transaction history accuracy
Exception handling ensures the program does not crash on invalid input.
✅ CHAPTER 9: CONCLUSION
The GUI Based Banking Application successfully simulates real banking
operations.
It provides:
• Secure login and registration
• Account management
• Deposit, withdraw, and transfer
• Transaction tracking
• Database integration
This project enhanced our understanding of:
• Java Swing GUI
• JDBC database connectivity
• OOP concepts
• Real-world banking workflow simulation
✅ CHAPTER 10: FUTURE ENHANCEMENTS
In the future, the system can be improved by adding:
• ATM PIN verification
• Interest calculation
• Online banking features
10
• Mobile application version
• Stronger encryption security
11