๐ฆ Bank Security Application
This is a Spring Boot-based backend banking application that provides secure RESTful APIs for managing user accounts, cards, investments, and admin functionalities. It integrates JWT-based authentication, role-based access control, and follows a modular structure separating concerns across controllers, services, repositories, DTOs, and security layers.
๐ Features
- โ JWT Authentication & Authorization
- ๐ค Role-based Access (Admin & Customer)
- ๐ผ Account Management
- ๐ณ Card Services
- ๐ Investment Tracking
- ๐งผ DTO & Layered Architecture
- ๐ Bootstrap Default Admin User on Startup
- ๐ Get User by ID
- Admin can view users of all roles except other admins
- Customers can only view their own details
๐ Project Structure
com.security.bank
โโโ accounts
โโโ admin
โโโ cards
โโโ config
โโโ dto
โโโ entity
โโโ investments
โโโ jwt
โโโ repository
โโโ Root
โโโ security
โโโ service
โโโ user
โโโ BankApplication.java
๐ Getting Started
Prerequisites
- Java 17+
- Maven
- MySQL or H2
- Postman for testing
Run Locally
git clone https://github.com/kumar9060/BankApp.git
cd BankApp
./mvnw spring-boot:runAPI Testing
Use Postman or Swagger to test APIs (like /auth/login, /account/create, etc.)
๐ Contribution
Pull requests are welcome. For major changes, please open an issue first.
๐ง Contact
Made ๐ป by Vikas Kumar