Welcome to the Bank Management System repository built using Spring Boot! This project is designed to provide a foundation for managing banking operations using modern web technologies.
Last updated Jun 14, 2026
77
Stars
60
Forks
6
Issues
0
Stars/day
Attention Score
32
Language breakdown
Java 99.5%
Dockerfile 0.5%
▸ Files
click to expand
README
Bank Management System
Welcome to the Bank Management System repository built using Spring Boot! This project is designed to provide a foundation for managing banking operations using modern web technologies.Table of Contents
Introduction
The Bank Management System is a web-based application developed using Spring Boot that aims to streamline various banking operations. This system offers features to manage customer accounts and perform transactions.
Features
- User-Friendly Web Interface: Enjoy a user-friendly web interface designed for both customers, crafted using Angular. Check out the frontend repository on GitHub.
- Authentication and Authorization: We prioritize security by implementing robust user authentication and authorization mechanisms, guaranteeing safe and controlled access to the system.
- Multi-Account Support: Users have the convenience of creating up to three separate accounts within the system, catering to various financial needs and goals.
- Comprehensive Account Details: Customers can easily access a wealth of information about their accounts, including balance summaries, card numbers, CVV numbers, and more. This empowers users with a clear overview of their financial status.
- Efficient Transaction Handling: Our system offers well-defined API endpoints that enable seamless fund transfers between accounts. This ensures efficient and accurate transaction processing.
Installation
To run the Bank Management System locally, you will need the following:
- Java 11 or higher
- Maven
- PostgreSQL
- Clone this repository:
git clone https://github.com/Mohammed-eid35/bank-management-system-springboot.git
- Edit the database configurations in application.properties file.
- Navigate to the project directory:
cd bank-management-system-springboot
- Build and run the application using Maven
mvn spring-boot:run
- Explore the Application: Once the application is up and running, open your web browser and access it at:
http://localhost:8080 - Access API Documentation: Additionally, you can explore the API documentation by navigating to:
http://localhost:8080/swagger-ui.html. This provides detailed insights into the available API endpoints and functionalities.
Usage
- Customer Actions:
- Transaction Operations:
/transaction/deposit endpoint to securely deposit funds into specified accounts.
- Withdraw Funds: Similarly, the /transaction/withdraw endpoint is available for withdrawing funds from accounts, ensuring your transactions are seamless and accurate.
Database Schema
erDiagram
User {
SERIAL id PK
VARCHAR name
VARCHAR password
VARCHAR phone "UNIQUE"
VARCHAR email "UNIQUE"
}
Account {
SERIAL id PK
VARCHAR card_number "UNIQUE"
VARCHAR cvv
DOUBLE balance
SERIAL user_id FK
}
Transaction { SERIAL id PK VARCHAR type DOUBLE amount TEXT notes DATE timestamp SERIAL account_id FK }
User ||--o{ Account : "has" Account ||--o{ Transaction : "history"
Technologies Used
- Java
- Spring Boot
- Spring Security
- json web token (JWT)
- Spring Data JPA
- Lombok
- PostgreSQL
- Maven
- Swagger
- Docker
Contributing
Contributions to the Bank Management System project are welcome! If you'd like to contribute:- Fork the repository.
- Create a new branch for your feature.
- Commit your changes.
- Push the branch.
- Open a Pull Request explaining your changes.
🔗 More in this category