Skip to content

The Bank Management System is a secure, scalable application built with Spring Boot, Thymeleaf, and MySQL, offering features like deposits, withdrawals, and transfers. It uses Spring Security, JWT, and OAuth2 for secure authentication. The system supports role-based access, ensuring secure, user-friendly banking for customers and employees.

Notifications You must be signed in to change notification settings

pratikkhot100/Bank-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ Bank Management System

The Bank Management System is a secure, scalable, and user-friendly application that simulates real-world banking operations using Spring Boot, Thymeleaf, and MySQL. It incorporates Spring Security for authentication and authorization, JWT for secure token-based communication, and OAuth2 for third-party login options like Google and GitHub. The system provides essential banking features such as deposits, withdrawals, fund transfers, and transaction history, while supporting role-based access control for Admin, Employee, and Customer roles. Its architecture follows a layered design with clear separation between the Controller, Service, Repository, and Security layers, making it scalable for future enhancements like multi-currency support and loan management. Built with a focus on security, user experience, and real-time functionality, it ensures a seamless and safe experience for both desktop and mobile users. A secure, feature-rich, and responsive Bank Management System built with modern Java and web technologies. This project helps manage banking operations like customer registration, account handling, fund transfers, and user role access with a clean UI and robust backend.


๐Ÿ› ๏ธ Tech Stack

๐ŸŒ Frontend

  • ๐Ÿ”น HTML5, CSS3
  • ๐Ÿ”น Responsive Design
  • ๐Ÿ”น Thymeleaf (Spring Boot templating engine)

โš™๏ธ Backend

  • ๐Ÿงฉ Spring Boot
  • ๐Ÿ” Spring Security (with Secure Authentication and Authorization)
  • ๐Ÿ” OAuth2 (for third-party login integration)
  • ๐Ÿงช RESTful APIs

๐Ÿ’พ Database & ORM

  • ๐Ÿฌ MySQL
  • ๐ŸŒฟ Hibernate JPA
  • ๐ŸŒฟ Spring Data JPA

๐Ÿ”ง Build Tool

  • ๐Ÿ“ฆ Maven

๐Ÿ“ธ Some Screenshots for the project:

  • Login

Screenshot 2025-04-18 011409

  • Registration

Screenshot 2025-04-18 011432

  • This is Pratik khot's bank account

Screenshot 2025-04-18 012048

  • Deposit

Screenshot 2025-04-18 012114

Screenshot 2025-04-18 012130

  • Withdraw

Screenshot 2025-04-18 012200

Screenshot 2025-04-18 012241

  • Transfer Money

Screenshot 2025-04-18 012359

Screenshot 2025-04-18 012419

  • Pratik Khot Account Transaction History

Screenshot 2025-04-18 012440

  • This is Yash khot's bank account

Screenshot 2025-04-18 012552

  • Deposit

Screenshot 2025-04-18 012619

Screenshot 2025-04-18 012639

  • Withdraw

Screenshot 2025-04-18 012702

Screenshot 2025-04-18 012717

  • Transfer Money

Screenshot 2025-04-18 012752

Screenshot 2025-04-18 012814

  • Yash Khot Account Transaction History

Screenshot 2025-04-18 012834

  • Pratik khot Account After Transfer Money

Screenshot 2025-04-18 012922

  • Pratik Khot Account Transaction History

Screenshot 2025-04-18 012939

  • Transfer Money for Unknown database

Screenshot 2025-04-18 013222

  • Recipient account not found

Screenshot 2025-04-18 013445

  • Transfer Money Insufficient Balance

Screenshot 2025-04-18 013508

  • Insufficient funds

Screenshot 2025-04-18 013522

  • Retrieve All Accounts Data in MySQL Database with Secure Password

Screenshot 2025-04-18 013906

  • Retrieve All Transaction Data in MySQL Database

Screenshot 2025-04-18 013950


๐Ÿ” Security Features

  • โœ… Authentication with Spring Security & OAuth2
  • โœ… Role-Based Authorization (Customer)
  • โœ… Encrypted Passwords using BCrypt
  • โœ… Session & Token-Based Authentication
  • โœ… OAuth2 Integration for social login
  • โœ… CSRF Protection and input validation

โœจ Features

  • ๐Ÿง User Registration & Login
  • ๐Ÿ’ณ Account Creation & Management
  • ๐Ÿ”„ Deposit, Withdraw, and Transfer Funds
  • ๐Ÿ“œ View Transaction History
  • ๐Ÿ” Role-based dashboards (Customer)
  • ๐Ÿ›ก๏ธ Secure Authentication & Authorization
  • ๐Ÿ“Š Admin Panel for managing users & roles
  • ๐ŸŒ REST APIs for external integrations
  • ๐Ÿ“ฑ Fully Responsive UI

๐Ÿง‘ User Roles

  • Personal banking access only.

  • Can:

    • ๐Ÿ’ฐ Deposit money

    • ๐Ÿง Withdraw funds

    • ๐Ÿ”„ Transfer funds

    • ๐Ÿ“œ View their own transaction history

  • Cannot access or manage other users/accounts.


๐Ÿงฑ Project Structure

bank-management-system/ โ”œโ”€โ”€ src/โ”‚โ””โ”€โ”€ main/ โ”‚ โ”œโ”€โ”€ java/ โ”‚ โ”‚ โ””โ”€โ”€ com/example/bank/ โ”‚ โ”‚ โ”œโ”€โ”€ config/ # ๐Ÿ” Security, OAuth2, JWT configs โ”‚ โ”‚ โ”œโ”€โ”€ controller/ # ๐ŸŽฎ REST & MVC controllers โ”‚ โ”‚ โ”œโ”€โ”€ dto/ # ๐Ÿ“ฆ Data Transfer Objects โ”‚ โ”‚ โ”œโ”€โ”€ model/ # ๐Ÿงฉ JPA Entity classes โ”‚ โ”‚ โ”œโ”€โ”€ repository/ # ๐Ÿ“š Spring Data JPA Repositories โ”‚ โ”‚ โ”œโ”€โ”€ service/ # ๐Ÿง  Business Logic Layer โ”‚ โ”‚ โ””โ”€โ”€ BankApp.java # ๐Ÿš€ Main Spring Boot Application โ”‚ โ””โ”€โ”€ resources/ โ”‚ โ”œโ”€โ”€ static/ # ๐ŸŽจ Static files (CSS, JS, Images) โ”‚ โ”œโ”€โ”€ templates/ # ๐Ÿงพ Thymeleaf HTML Templates โ”‚ โ””โ”€โ”€ application.properties # โš™๏ธ App Configurations โ”œโ”€โ”€ pom.xml # ๐Ÿ› ๏ธ Maven Build Configuration โ””โ”€โ”€ README.md # ๐Ÿ“„ Project Documentation

โš™๏ธ Setup Instructions

  1. Clone the repository
git clone https://github.com/your-username/bank-management-system.git
cd bank-management-system

๐Ÿฌ Create a MySQL database

CREATE DATABASE bankdb;

๐Ÿ“ Update application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/bankdb
spring.datasource.username=root
spring.datasource.password=yourpassword

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.thymeleaf.cache=false

๐Ÿ”จ Build & Run the App

./mvnw spring-boot:run

๐ŸŒ Access the App

Visit: http://localhost:8080
  • ๐Ÿ“ฒ Mobile-friendly interface included

๐Ÿ“ฌ REST API Endpoints

Method Endpoint Description GET /api/users Fetch all users POST /api/accounts Create new account GET /api/accounts/{id} View account details PUT /api/accounts/{id} Update account info DELETE /api/users/{id} Delete a user


๐Ÿ“ฑ Responsive UI

โœ… Mobile-first design

โœ… Responsive tables & forms

โœ… Accessible via desktop, tablet, and mobile


๐Ÿ“ž Contact

Created with โค๏ธ by Pratik Khot

๐ŸŒ portfolio.com

๐Ÿ™ GitHub

๐Ÿ’ผ LinkedIn

๐Ÿ“ง pratikkhot1207.email@example.com

About

The Bank Management System is a secure, scalable application built with Spring Boot, Thymeleaf, and MySQL, offering features like deposits, withdrawals, and transfers. It uses Spring Security, JWT, and OAuth2 for secure authentication. The system supports role-based access, ensuring secure, user-friendly banking for customers and employees.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published