This repository contains a Spring Boot-based microservices architecture for managing loans, mandates, KYC, bank accounts, and notifications.
| Microservice |
Description |
| Eureka Server | Service discovery |
| API Gateway | Central API access, routing, CORS, security |
| User Service | Google OAuth2 login, user-role management |
| Bank Account Service | Bank account linking and approval |
| KYC Service | Upload, verify, and approve Aadhaar/PAN |
| Loan Service | Apply for and manage loans |
| Mandate Service | Create and manage eMandates (auto-debit) |
| Notification Service | Kafka consumer for loan, mandate, and KYC events. Sends notifications via WebSocket (real-time updates) and SMS (template-based, pluggable) |
| Scheduler Service | Scheduled tasks via Kafka (e.g., EMI deduction) |
| Category |
Technologies Used |
| Backend | Spring Boot + Spring Cloud (Eureka, Gateway) |
| Messaging | Kafka – Event-driven architecture |
| Databases | PostgreSQL(neondb) – Hybrid DBs across services |
| Auth | OAuth2 (Google) |
| Real-Time | WebSocket (STOMP) + SockJS – Real-time client updates |
| Scheduling | Quartz Scheduler – Scheduled jobs/events |
| SMS Integration | Twilio |
| Step |
Action |
| 1 | Start Eureka Server at localhost:8761 |
| 2 | Start Kafka |
| 3 | Start all services |
| 4 | Access system via API Gateway at http://localhost:8080 |

microservices-springboot/
├── api-gateway/
├── eureka-server/
├── user-service/
├── bank-account-service/
├── kyc-service/
├── loan-service/
├── mandate-service/
├── notification-service/ # Kafka consumer, WebSocket, SMS
├── scheduler-service/ # Periodic jobs