A robust, enterprise-grade banking system built with Java EE and Enterprise JavaBeans (EJB), delivering a secure, scalable, and user-friendly experience for financial operations.
- Project Overview
- Key Features
- Technologies & Frameworks
- Architecture Diagram
- Modules & Components
- Installation & Setup
- Database Configuration
- Running the Application
- GUI Screenshots
- Usage & Workflow
- Testing
- Contributing
- License
- Acknowledgements
The EJB Banking Application is a full-stack, Java EE-based system designed to manage typical banking operations with strong emphasis on security, performance, and maintainability. It features:
- Robust business logic encapsulated in EJBs for transactional consistency.
- JSF-based web GUI for intuitive user interactions.
- JPA/Hibernate for ORM-based data persistence.
- GlassFish application server for deployment and scalability.
This project serves both as an academic assignment showcasing enterprise patterns and as a production-ready blueprint for real-world banking solutions.
- Account Management: Create, view, update, and delete customer accounts.
- Fund Transfers: Secure intra- and inter-bank transfers with transaction auditing.
- Transaction History: Detailed logs of all debit, credit, and transfer activities.
- User Authentication & Authorization: Role-based access control (Admin, Teller, Customer).
- Reporting Dashboard: Visualize key metrics, such as total deposits and withdrawals.
- Exception Handling & Logging: Centralized error management with logback integration.
Layer | Technology |
---|---|
Presentation | JavaServer Faces (JSF) |
Business Logic | Enterprise JavaBeans (EJB) |
Persistence | JPA / Hibernate |
Database | MySQL / SQL Script |
Application Server | GlassFish 5 |
Build & Tools | Maven, Git, JUnit |


Figure 1: Overall system architecture showcasing the interaction between client, EJB tier, and database.
- Common: Shared utilities and constants.
- EJB Module: Business interfaces, session beans (stateless/stateful), and entity beans.
- Web Module: JSF pages (.xhtml), backing beans, and resource bundles.
- Persistence Module: Entity classes,
persistence.xml
, and DAO implementations. - Database Scripts: SQL scripts for schema creation and sample data.
-
Clone the Repository
git clone https://github.com/Tharindu714/National-Banking-System.git cd National-Banking-System
-
Build with Maven
mvn clean install
-
Configure GlassFish
- Create a new domain (if needed).
- Deploy the generated
.ear
file via the Admin Console or CLI.
-
JDBC Resource
- In GlassFish, define a JDBC Connection Pool pointing to
bank_jdbc
. - Create a JDBC Resource
bank_jdbc
linked to that pool.
- In GlassFish, define a JDBC Connection Pool pointing to
-
Start GlassFish Domain
asadmin start-domain
-
Access the GUI Navigate to
http://localhost:8080/NATIONAL-BANK/
-
Default Credentials
- Admin:
admin@bank.com
/admin123
- Teller:
teller@bank.com
/teller123
- Customer:
customer@bank.com
/cust123
- Admin:
- Login: Select role and authenticate.
- Account Operations: Use the sidebar to navigate and manage accounts.
- Perform Transactions: Enter transfer details and submit.
- View Reports: Generate and export transaction history.
- Unit Tests: Run
mvn test
to execute JUnit tests for EJB and DAO layers. - Integration Tests: Use Arquillian (setup instructions in
tests/ arquillian-setup.md
).
Contributions are welcome! Please fork the repository and submit a pull request with:
- Clear description of changes.
- Relevant unit/integration tests.
- Updated documentation if necessary.
This project is licensed under the MIT License.
- Java EE documentation and community tutorials.
- Open-source libraries: Hibernate, PrimeFaces, Logback.