https://github.com/akhilesh664/bankingsystem
๐ฆ A robust Banking System built with Core Java, Spring Boot, MySQL, and Spring Data JPA, offering secure user authentication, account management, fund transfers, transaction history, and real-time balance checks. It features REST APIs for seamless integration, role-based access control, automated notifications, and efficient data handling. ๐
https://github.com/akhilesh664/bankingsystem
java mysql rest springboot springdata-jpa springframework springsecurity
Last synced: 8 months ago
JSON representation
๐ฆ A robust Banking System built with Core Java, Spring Boot, MySQL, and Spring Data JPA, offering secure user authentication, account management, fund transfers, transaction history, and real-time balance checks. It features REST APIs for seamless integration, role-based access control, automated notifications, and efficient data handling. ๐
- Host: GitHub
- URL: https://github.com/akhilesh664/bankingsystem
- Owner: Akhilesh664
- Created: 2025-03-02T17:44:02.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-09T07:46:25.000Z (10 months ago)
- Last Synced: 2025-08-09T09:19:58.372Z (10 months ago)
- Topics: java, mysql, rest, springboot, springdata-jpa, springframework, springsecurity
- Language: Java
- Homepage:
- Size: 27.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#
๐ฆ Banking System
A robust and secure **Banking System** built using **Core Java**, **Spring Boot**, **MySQL**, and **Spring Data JPA**. This project provides RESTful APIs for handling user authentication, account management, fund transfers, transaction history, and real-time balance checks. It also supports role-based access and automated notifications.
---
## ๐ Features
โ
Secure User Registration & Login (JWT-based)
โ
Account Creation & Management
โ
Fund Transfer between Accounts
โ
View Transaction History
โ
Real-Time Balance Check
โ
Role-Based Access Control (Admin / User)
โ
RESTful API Architecture
โ
Input Validation & Error Handling
โ
Automated Email or Console Notifications
โ
MySQL Integration with JPA/Hibernate
---
## ๐งฐ Tech Stack
- **Java** (Core Java, Java 17 or above)
- **Spring Boot**
- **Spring Data JPA**
- **MySQL**
- **Hibernate**
- **JWT for Authentication**
- **Lombok**
- **Maven**
- **Postman** for API Testing
---
## ๐ Project Structure
```
src
โโโ main
โโโ java
โ โโโ com.bankingsystem
โ โโโ controller
โ โโโ service
โ โโโ repository
โ โโโ model
โ โโโ config
โโโ resources
โโโ application.properties
โโโ data.sql
```
---
## ๐ ๏ธ Getting Started
### โ
Prerequisites
- Java 17+
- Maven
- MySQL Server
### ๐ฆ Steps to Run
1. **Clone the Repository**
```bash
git clone https://github.com/your-username/Banking-System.git
cd Banking-System
```
2. **Set up MySQL Database**
```sql
CREATE DATABASE banking_system;
```
3. **Configure `application.properties`**
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/banking_system
spring.datasource.username=root
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
```
4. **Build and Run**
```bash
mvn spring-boot:run
```
5. **Test with Postman**
- Base URL: `http://localhost:8080/api`
---
## ๐ฎ API Endpoints
| Method | Endpoint | Description |
|--------|---------------------------|------------------------------|
| POST | /auth/register | Register new user |
| POST | /auth/login | Login and get JWT token |
| GET | /accounts/{id} | Get account details |
| POST | /accounts/transfer | Transfer funds |
| GET | /transactions/{userId} | Transaction history |
| GET | /accounts/balance/{id} | Real-time balance check |
---
## ๐ Role-Based Access
| Role | Access Permissions |
|-------|----------------------------------------------|
| Admin | View all users, transactions, delete users |
| User | Manage own account, transfer, view history |
---
## ๐งช Testing
- Use **JUnit** and **Mockito** for service/controller layer testing.
- Coverage for login, transfer, and exception handling.
---
## ๐ Acknowledgements
- Spring Boot Documentation
- MySQL Community
- Baeldung & StackOverflow
---
## ๐ฌ Contact
**Akhilesh Ojha**
๐ง [akhil00664@gmail.com](mailto:akhil00664@gmail.com)
๐ [LinkedIn](https://www.linkedin.com/in/theakhileshojha/)
---
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.