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.
- ✅ 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
com.security.bank
├── accounts
├── admin
├── cards
├── config
├── dto
├── entity
├── investments
├── jwt
├── repository
├── Root
├── security
├── service
├── user
└── BankApplication.java
- Java 17+
- Maven
- MySQL or H2
- Postman for testing
git clone https://github.com/kumar9060/BankApp.git
cd BankApp
./mvnw spring-boot:runUse Postman or Swagger to test APIs (like /auth/login, /account/create, etc.)
Pull requests are welcome. For major changes, please open an issue first.
Made 💻 by Vikas Kumar