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.
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.
- 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.
To run the Bank Management System locally, you will need the following:
- Java 11 or higher
- Maven
- PostgreSQL
Once you have the required tools installed, follow these steps to install the Bank Management System:
- 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.
-
Customer Actions:
- Account Creation: As a customer, you have the privilege of creating multiple accounts tailored to your financial needs.
- View Account Details: Easily access comprehensive details about your accounts, empowering you with insights into your balances and transactions.
-
Transaction Operations:
- Deposit Funds: Any interface can conveniently utilize the
/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.
- Deposit Funds: Any interface can conveniently utilize the
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"
- Java
- Spring Boot
- Spring Security
- json web token (JWT)
- Spring Data JPA
- Lombok
- PostgreSQL
- Maven
- Swagger
- Docker
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.