PROJECT OVERVIEW
Java-Based Bank Management System
This project was developed for a Java Programming course at ICP Institute, Rawalpindi, under the guidance of Mr. Afraz Qureshi. The three-month course covered Java fundamentals and database connectivity.
The Bank Management System served as the final practical assessment, demonstrating understanding of Java programming, GUI development, and basic database operations. A course completion certificate was awarded upon successful completion.
Functional Report
Banking System Project
1. Introduction: System Foundation
The Banking System is a Java-based application using Java Swing for the graphical user interface (GUI) and MySQL for database management.
Its primary objective is to simulate core banking operations, allowing users to perform essential activities through a desktop application. It is designed for educational purposes, showcasing Java and database connectivity implementation.
Java Swing
Used for the desktop application's GUI.
MySQL
Manages user and transaction data.
Core Operations
Simulates essential banking activities.
2. Overall System Workflow
The system uses a screen-driven workflow, where users interact with functional modules via GUI forms. It operates on a client–database model using JDBC for communication.
Authentication
Login or registration is performed.
Access Dashboard
User accesses the central hub.
Service Selection
Banking services interact with the database.
Display Results
Results are shown to the user.

The system components are Java Swing (client interface), MySQL (data storage), and JDBC (communication).
3. Core Functional Modules
User Registration
Captures user details via GUI, uses JDBC to execute an SQL INSERT query, and stores new records in the database.
Login & Authentication
Verifies user credentials against the database; grants access to the dashboard upon success. Includes error messages for invalid attempts.
Fund Transfer
Verifies accounts, reduces sender's balance, increases recipient's balance, and updates the database with transaction logic.
Account Balance Inquiry
Queries the database for the logged-in user's balance and displays the real-time data on the GUI.
Bill Payment & Instant Payment
Allows payment of bills or instant transfers by deducting the amount from the user's balance and updating the database in real time.
Other Services
Includes Forgot Password (retrieves recovery details) and Cheque Book Request (stores service request details in the database).
4. Data Handling and Database Interaction
JDBC Connector
Java Database Connectivity (JDBC) is used for all database operations, ensuring communication between the application and MySQL.
SQL Execution
SQL queries are executed for authentication, balance retrieval, transaction updates, and service requests.
Connection Management
Each module establishes a database connection only when required to perform an operation.
5. User Interface Functionality (Java Swing)
The user interface was developed using Java Swing, with each feature having a dedicated window or form. Forms were created using the NetBeans GUI Builder.
Buttons trigger specific event handlers connected to the backend logic, enabling GUI-based user interaction and an event-driven programming model.
Dedicated Windows
Each banking feature has its own form for clarity.
Event Handlers
Buttons link GUI actions to backend processing.
NetBeans Builder
Used for rapid GUI form creation.
Banking System Project – Diagrams
System Architecture
Shows the flow from User (Java Swing GUI) through Application Logic and JDBC to the MySQL Database.
Data Flow (Level 1)
Breaks down the system into core banking modules and their interactions with the central Database.
Process Flowcharts
Explains step-by-step execution logic for critical processes like User Login and Fund Transfer.
6. Embedded Functional Characteristics
The system incorporates several key design characteristics that ensure its functionality and modularity.
Modular Design
Separate class for each function.
Event-Driven
Programming model based on user actions.
Real-Time Updates
Immediate database synchronization.
Multi-Service
Simulation of various banking services.
7. Limitations and Conclusion
Limitations in Functionality
  • No real-time transaction logging system.
  • Lacks role-based access (admin/user).
  • No transaction history visualization.
  • Limited validation on inputs.
  • Desktop-only accessibility.
Conclusion
The project successfully implements fundamental banking functions, demonstrating the integration of Java Swing and MySQL. While suitable for learning and demonstration, further enhancements in security, scalability, and architecture would be required for real-world deployment.
Made with