A secure, scalable, and microservices-based online banking platform built using Spring Boot 3.5, Java 21, PostgreSQL, and RabbitMQ.
Neptune Bank provides a complete digital banking solution with user onboarding, KYC verification, account management, secure fund transfers, transaction tracking, OTP-based verification, and JWT-based authentication.
- User Registration with KYC verification
- Profile Management (CRUD Operations)
- Soft Delete Support
- Contact & Nominee Management
- Employee-based KYC Verification
- Savings Account
- Current Account
- Fixed Deposit Account
- Branch Association
- Balance Management
- Optimistic Locking Support
- Account-to-Account Transfers
- RabbitMQ-based Processing
- Automatic Rollback on Failures
- Transaction Tracking
- Complete Audit Trail
- Account-wise History
- Chronological Ordering
- Status Tracking
- JWT Authentication (RS256)
- RSA Key Pair Signing
- BCrypt Password Hashing
- Spring Security Integration
- Role-Based Access Control (RBAC)
- SMS OTP via TextBee API
- Email OTP via SMTP
- OTP Expiry Management
- Verification Tracking
| Category | Technology |
|---|---|
| Language | Java 21 |
| Framework | Spring Boot 3.5.5 |
| Build Tool | Gradle |
| Database | PostgreSQL 16 |
| ORM | Spring Data JPA / Hibernate |
| Messaging | RabbitMQ |
| Authentication | JWT (RS256) |
| Security | Spring Security |
| Password Hashing | BCrypt |
| Mail Service | Spring Mail |
| SMS Gateway | TextBee API |
The system consists of five independent microservices.
| Service | Port | Responsibility |
|---|---|---|
| Auth Service | 8086 | Authentication & JWT |
| User Service | 8080 | User Profiles & KYC |
| OTP Service | 8082 | OTP Generation & Verification |
| Account Service | 8083 | Account Management |
| Transaction Service | 8084 | Fund Transfers & Transactions |
βββββββββββββββββββ
β Client β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββββββ
β Auth Service β
β Port 8086 β
ββββββββββ¬βββββββββββββ
β JWT
βΌ
βββββββββββββββββββ RabbitMQ βββββββββββββββββββ
β User Service βββββββββββββββββΊβ Account Service β
β Port 8080 β β Port 8083 β
βββββββββββββββββββ ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
βTransaction Svc β
β Port 8084 β
ββββββββββ¬ββββββββ
β
βΌ
βββββββββββββββββββ
β OTP Service β
β Port 8082 β
βββββββββββββββββββ
| Queue Name | Producer | Consumer |
|---|---|---|
| user-validation-queue | account-service | user-service |
| account-validation-queue | transaction-service | account-service |
| account-debit-queue | transaction-service | account-service |
| account-credit-queue | transaction-service | account-service |
Client Login
β
βΌ
Auth Service
β
βΌ
Validate Credentials
β
βΌ
Generate JWT Token
β
βΌ
Return JWT
β
βΌ
Use JWT for API Requests
{
"sub": "john_doe",
"role": "USER",
"iat": 1718150400,
"exp": 1718161200
}| Role | Access |
|---|---|
| ADMIN | Full System Access |
| EMPLOYEE | KYC Verification & Customer Management |
| USER | Banking Operations |
- Login Authentication
- JWT Generation
- User Credential Management
- Role Assignment
POST /auth/login
POST /auth/add-user
GET /auth/validate{
"username": "john_doe",
"password": "password123",
"mode": "jwt"
}- User Registration
- Profile Management
- KYC Document Management
- Nominee Management
- Aadhaar
- PAN
- Passport
- Voter ID
- Driving License
- User Photograph
- Signature
POST /auth/user
GET /auth/user/{id}
GET /auth/users
PUT /auth/user/{id}
DELETE /auth/user/{id}
GET /auth/user/exists/{id}- Account Creation
- Balance Management
- Branch Management
- Account Validation
SAVINGS
CURRENT
FIXED_DEPOSITPOST /api/accounts/create
GET /api/accounts/get/{id}
GET /api/accounts/get/all
GET /api/accounts/user/{userId}
GET /api/accounts/number/{number}
PUT /api/accounts/update/{id}
DELETE /api/accounts/delete/{id}- Fund Transfers
- Transaction Tracking
- Audit Trail
POST /transactions/create
POST /transactions/transfer
GET /transactions/{transactionId}
GET /transactions/account/{accountId}
GET /transactions/allValidate Accounts
β
βΌ
Create Transaction (PENDING)
β
βΌ
Debit Source Account
β
βΌ
Credit Destination Account
β
βΌ
Success
Debit Success
β
βΌ
Credit Failed
β
βΌ
Refund Source Account
β
βΌ
Mark Transaction Failed
- OTP Generation
- OTP Verification
- SMS Delivery
- Email Delivery
POST /api/otp/send
POST /api/otp/verify| Property | Value |
|---|---|
| Length | 6 Digits |
| Generator | SecureRandom |
| Expiry | 5 Minutes |
| Usage | One Time |
Create the following databases:
CREATE DATABASE AuthDB;
CREATE DATABASE UserDB;
CREATE DATABASE OtpDB;
CREATE DATABASE AccountDB;
CREATE DATABASE TransactionDB;spring.datasource.url=jdbc:postgresql://localhost:5433
spring.datasource.username=neptune
spring.datasource.password=********- Java 21
- PostgreSQL 16
- RabbitMQ
- Gradle
- RSA Public Key
- RSA Private Key
cd auth-service
./gradlew build -x test
cd ../user-service
./gradlew build -x test
cd ../otp-service
./gradlew build -x test
cd ../account-service
./gradlew build -x test
cd ../transaction-service
./gradlew build -x testStart services in the following order:
1. Auth Service
2. OTP Service
3. User Service
4. Account Service
5. Transaction Service
POST /auth/login
POST /auth/add-user
GET /auth/validatePOST /auth/user
GET /auth/user/{id}
GET /auth/users
PUT /auth/user/{id}
DELETE /auth/user/{id}POST /api/accounts/create
GET /api/accounts/get/{id}
GET /api/accounts/get/all
PUT /api/accounts/update/{id}
DELETE /api/accounts/delete/{id}POST /transactions/create
POST /transactions/transfer
GET /transactions/{id}
GET /transactions/account/{accountId}POST /api/otp/send
POST /api/otp/verify{
"success": false,
"message": "Resource not found",
"errors": [
"validation message"
]
}β Spring Boot Microservices
β PostgreSQL Persistence
β RabbitMQ Messaging
β JWT Authentication
β BCrypt Security
β OTP Verification
β KYC Document Management
β Saga-Based Transaction Rollback
β Role-Based Access Control
β Scalable Architecture
Ayshi Shannidhya Panda
GitHub: https://github.com/ayshishannidhya
Email: a.shannidhya@gmail.com
Copyright Β© 2025-2026 Ayshi Shannidhya Panda.
This project is distributed under a Proprietary License. Unauthorized copying, modification, distribution, or commercial use is prohibited without explicit permission from the author.
A modern microservices-based banking platform designed for security, scalability, reliability, and enterprise-grade banking operations.