🚀 A Spring Boot Monolithic Application that mimics core features of Paytm such as User Authentication, Wallet Management, Transactions, QR Payments, and Bill Payments.
Built with Java, Spring Boot, Hibernate/JPA, MySQL, Spring Security (JWT + OAuth2), Role-Based Access Control (RBAC), and Actuator Monitoring.
- 👤 User Authentication (Signup/Login with JWT & OAuth2)
- 🛡 Security
- 🔑 JWT Token Based Security
- 🔒 OAuth2 Authorization
- 🎭 Role-Based Access Control (User/Admin)
- 💰 Wallet Management (Add money, check balance)
- 🔄 Money Transfer (Send/Receive between users)
- 📲 QR Code Payments (Generate & Scan QR for transactions)
- 🧾 Bill Payments (Recharge, utilities, etc.)
- 📊 Transaction History
- 📡 Spring Boot Actuator
- Health checks
- Metrics & Info
- Custom monitoring endpoints
- 🌐 REST APIs with Swagger UI
- ☕ Java 17+
- 🌱 Spring Boot 3
- 🗄 MySQL + JPA/Hibernate
- 🔐 Spring Security (JWT + OAuth2)
- 🎭 Role-Based Access (RBAC)
- 📲 ZXing (QR Code Generator/Scanner)
- 📘 Swagger (OpenAPI)
- 📡 Spring Boot Actuator
- 🧪 JUnit & Mockito
┣ 📂 controller # REST Controllers (Auth, Wallet, QR, Txn, Admin)
┣ 📂 entity # JPA Entities (User, Wallet, Transaction, QRCode)
┣ 📂 dto # Request/Response DTOs,BankDto,WalletDto,TranscationDto,UserDto
┣ 📂 repository # Spring Data JPA Repositories
┣ 📂 service # Business Services (Auth, Wallet, Txn, QR)
┣ 📂 security # JWT, OAuth2, Role-Based Access Config
┣ 📂 qr # QR Generator/Scanner (ZXing)
┣ 📂 resources ┃ ┣ application.yml # DB + Actuator Config
┃ ┗ schema.sql # Init Scripts (optional)
┣ PaytmCloneApplication.java
Auth & Security
POST /auth/signup→ Register new userPOST /auth/login→ Login & get JWTGET /auth/oauth2→ OAuth2 login flowGET /admin/users→ List users (Admin only)
Wallet & Transactions
POST /wallet/add-money→ Add money to walletGET /wallet/balance→ Check balancePOST /wallet/transfer→ Transfer money between usersGET /transaction/history→ View all transactions
QR Code Payments
POST /qr/generate/{userId}→ Generate QR for userPOST /qr/pay→ Pay via QR scan
Actuator Monitoring
GET /actuator/health→ Health checkGET /actuator/metrics→ MetricsGET /actuator/info→ App info
git clone https://github.com/your-username/paytm-clone.git
cd paytm-clone
./mvnw spring-boot:run