A full-featured Banking Application built with Java Spring Boot, demonstrating secure account management, customer handling, and transaction processing.
This project is designed as a coding exercise but follows real-world architecture patterns used in enterprise applications.
- Customer Management
- Create, update, and view customer details
- Manage addresses, contact information, and linked accounts
- Account Management
- Create and manage bank accounts
- View account balances and details
- Transactions
- Transfer money between accounts
- View transaction history
- Security
- Spring Security configuration for authentication and authorization
- Clean Architecture
- Separation of concerns with
controller,domain,model,repository, andconfiglayers
- Separation of concerns with
src/main/java/com/coding/exercise/bankapp/ │ ├── config/ # Application & Security configuration ├── controller/ # REST API endpoints for accounts & customers ├── domain/ # Domain objects for request/response payloads ├── model/ # Entity classes mapped to the database ├── repository/ # Spring Data JPA repositories └── BankingApplication.java # Main entry point
- Java 17+
- Maven 3+
- (Optional) MySQL/PostgreSQL if you want a persistent DB setup
# Clone the repository
git clone https://github.com/iamvikash28/BankApp.git# Navigate into the project
cd BankApp# Build the project
mvn clean install# Run the application
mvn spring-boot:run| Method | Endpoint | Description |
|---|---|---|
POST |
/customers |
Create new customer |
GET |
/customers/{id} |
Get customer by ID |
POST |
/accounts |
Create new account |
POST |
/transactions/transfer |
Transfer funds |
- Java Spring Boot
- Spring Security
- Spring Data JPA
- Maven
- REST API
- H2/MySQL Database
This project is licensed under the terms of the LICENSE file.
Contributions are welcome! Please fork the repository and submit a pull request for review.