A JavaFX-based desktop banking application for secure account and transaction management.
eBankingBMS is a Java-based Banking Management System (BMS) built for desktop use. It allows both clients and administrators to manage banking operations through an intuitive graphical interface.
The project follows the Model-View-Controller (MVC) and Client-Server architectural styles to ensure scalability, modularity, and maintainability.
- User registration and secure login
- View account balance and transaction history
- Transfer funds to other client accounts
- Create, read, update, and manage client accounts (CRUD)
- View all transactions in the system
- Manage admin credentials and system data
- Persistent data storage using Microsoft SQL Server 2022
- JavaFX 21 GUI for a modern and responsive interface
- Secure JDBC connections with MSSQL
- Clean separation of layers (MVC pattern)
- Extensible design for future online or networked deployment
- Model: Encapsulates data and business logic; interacts with the database via DAO classes.
- View: JavaFX FXML layouts define user interfaces.
- Controller: Handles events, coordinates between View and Model, and updates the UI.
- The JavaFX frontend acts as the client.
- The database and logic layer act as the server-side.
- Promotes centralized data management and security.
- Database: Microsoft SQL Server (Developer Edition)
- Tables:
client– stores client details and balanceadminlogin– stores admin credentialstransactions– records all fund transfers
| Pattern | Type | Purpose |
|---|---|---|
| Singleton | Creational | Ensures one global instance of the Model for state consistency |
| Factory Method | Creational | Centralizes creation of JavaFX views and windows |
| DAO (Data Access Object) | Structural | Separates database logic from business logic |
| Observer | Behavioral | Enables automatic UI updates via JavaFX property bindings |
| Event Listener | Behavioral | Handles user actions (buttons, forms, events) in controllers |
- Language: Java 21 (Azul Zulu distribution recommended)
- Frameworks: JavaFX 21
- Build Tool: Maven
- IDE: NetBeans + Scene Builder
- Database: Microsoft SQL Server 2022 + JDBC driver
Dependencies:
- FontAwesomeFX (for icons)
- Microsoft SQL Server JDBC Driver
| Test Case | Description | Result |
|---|---|---|
| Login Validation | Checked valid/invalid credentials | ✅ Passed |
| Client Creation | Added and verified new client in DB | ✅ Passed |
| Fund Transfer | Tested balance update and record creation | ✅ Passed |
| Data Binding | UI auto-updates after data changes | ✅ Passed |
- Add input validation (e.g., email formats, prevent negative balances)
- Introduce multithreading for smooth UI during DB operations
- Implement password hashing and encryption for sensitive data
- Add Delete functionality for client removal
- Expand to networked deployment for real-time online banking
- Refactoring.Guru – Singleton Pattern
- Refactoring.Guru – Factory Method Pattern
- DigitalOcean – DAO Pattern
- Oracle – JavaFX Event Handling
- Microsoft – SQL Server Developer Edition
- Clone the repository
git clone https://github.com/Salman-Sensei/eBankingBMS.git
- Open the project in NetBeans or your preferred IDE.
- Make sure you have installed:
- JDK 21 (Azul Zulu)
- JavaFX 21 SDK
- SQL Server 2022 (Developer Edition)
- Configure your database connection in the DAO or configuration file.
- Run the application → The login window should appear.





