Skip to content

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.

Notifications You must be signed in to change notification settings

Tharindu714/National-Banking-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EJB Banking Application

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.


Table of Contents

  1. Project Overview
  2. Key Features
  3. Technologies & Frameworks
  4. Architecture Diagram
  5. Modules & Components
  6. Installation & Setup
  7. Database Configuration
  8. Running the Application
  9. GUI Screenshots
  10. Usage & Workflow
  11. Testing
  12. Contributing
  13. License
  14. Acknowledgements

Project Overview

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.


Key Features

  • 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.

Technologies & Frameworks

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

Architecture Diagram

Untitled diagram _ Mermaid Chart-2025-07-13-095129 Untitled diagram _ Mermaid Chart-2025-07-13-094254

Figure 1: Overall system architecture showcasing the interaction between client, EJB tier, and database.


Modules & Components

  1. Common: Shared utilities and constants.
  2. EJB Module: Business interfaces, session beans (stateless/stateful), and entity beans.
  3. Web Module: JSF pages (.xhtml), backing beans, and resource bundles.
  4. Persistence Module: Entity classes, persistence.xml, and DAO implementations.
  5. Database Scripts: SQL scripts for schema creation and sample data.

Installation & Setup

  1. Clone the Repository

    git clone https://github.com/Tharindu714/National-Banking-System.git
    cd National-Banking-System
  2. Build with Maven

    mvn clean install
  3. Configure GlassFish

    • Create a new domain (if needed).
    • Deploy the generated .ear file via the Admin Console or CLI.

Database Configuration

  1. JDBC Resource

    • In GlassFish, define a JDBC Connection Pool pointing to bank_jdbc.
    • Create a JDBC Resource bank_jdbc linked to that pool.

Running the Application

  1. Start GlassFish Domain

    asadmin start-domain
  2. Access the GUI Navigate to http://localhost:8080/NATIONAL-BANK/

  3. Default Credentials

    • Admin: admin@bank.com / admin123
    • Teller: teller@bank.com / teller123
    • Customer: customer@bank.com / cust123

GUI Screenshots

index

▶️ Click to view All the GUI


Home Page Register Page Quick Transfers Profile Page Under Maintenance Security Check Staff Login Account Manager Dashboard CSR Dashboard CSR Fund Updates 1 CSR Fund Updates 2 Manage Users Create Account Traditional Customer KYC

Usage & Workflow

  1. Login: Select role and authenticate.
  2. Account Operations: Use the sidebar to navigate and manage accounts.
  3. Perform Transactions: Enter transfer details and submit.
  4. View Reports: Generate and export transaction history.

Testing

  • 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).

Contributing

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.

License

This project is licensed under the MIT License.


Acknowledgements

  • Java EE documentation and community tutorials.
  • Open-source libraries: Hibernate, PrimeFaces, Logback.

About

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.

Topics

Resources

Stars

Watchers

Forks

Languages