This is a comprehensive online banking portal developed as a college project to demonstrate modern microservices architecture principles. The application provides a full-featured banking experience with user management, account operations, and transaction processing, all built using Spring Boot and Spring Cloud technologies.
- User Registration & Authentication - Secure user signup and login
- Profile Management - Update personal information and preferences
- Session Management - Secure session handling and logout
- Account Creation - Create new bank accounts
- Account Details - View account information and balance
- Multi-Account Support - Manage multiple accounts per user
- Money Transfers - Transfer funds between accounts
- Transfer to Bank Account - Transfer money to external bank accounts
- Transaction History - Comprehensive transaction statements
- Real-time Balance Updates - Instant balance reflection
- Responsive Design - Works on desktop and mobile devices
- Intuitive Navigation - Easy-to-use interface
- Real-time Updates - Dynamic content updates
The application follows a microservices architecture pattern with the following components:
graph TB
UI[UI Service :8080] --> GW[API Gateway :8081]
GW --> US[User Service :8082]
GW --> AS[Account Service :8083]
GW --> TS[Transaction Service :8084]
US --> TB1[(User Table)]
AS --> TB2[(Account Table)]
TS --> TB3[(Transaction Table)]
ES[Eureka Server :8761] --> US
ES --> AS
ES --> TS
ES --> GW
| Service | Port | Description |
|---|---|---|
| Eureka Server | 8761 | Service registry and discovery |
| API Gateway | 8081 | Request routing and load balancing |
| User Service | 8082 | User authentication and management |
| Account Service | 8083 | Account operations and balance management |
| Transaction Service | 8084 | Transaction processing and history |
| UI Service | 8080 | Frontend interface and controllers |
- Java 11+ - Programming language
- Spring Boot - Application framework
- Spring Cloud - Microservices framework
- Eureka - Service discovery
- Gateway - API gateway
- Spring Security - Authentication and authorization
- Spring Data JPA - Data persistence
- Circuit Breaker - Fault tolerance and resilience
- Maven - Build and dependency management
- Thymeleaf - Template engine
- HTML5 & CSS3 - Markup and styling
- JavaScript - Client-side functionality
- Bootstrap - Responsive design framework
- H2 Database - In-memory database (default)
- MySQL/PostgreSQL - Production database options
- β Java JDK 11 or higher
- π¦ Maven 3.6+
- π Git
-
Clone the repository
git clone https://github.com/KrishnaSaxena108/Online-Banking-Portal.git cd Online-Banking-Portal -
Build all modules
mvn clean install
-
Start services in order
Step 1: Start Eureka Server
cd eureka-server mvn spring-boot:runStep 2: Start API Gateway
cd ../api-gateway mvn spring-boot:runStep 3: Start Backend Services
# Terminal 1 cd ../user-service mvn spring-boot:run # Terminal 2 cd ../account-service mvn spring-boot:run # Terminal 3 cd ../transaction-service mvn spring-boot:run
Step 4: Start UI Service
cd ../ui-service mvn spring-boot:run -
Access the application
- π Main Application: http://localhost:8080
- π Eureka Dashboard: http://localhost:8761
- π API Gateway: http://localhost:8081
- Register a new account or login with existing credentials
- Create your first bank account
- Deposit initial funds (simulation)
- Transfer money between accounts
- View transaction history and account statements
Register User β Login β Create Account β View Balance β
Transfer Funds β Check Transaction History β Logout
Online-Banking-Portal/
βββ π eureka-server/ # Service registry
β βββ src/main/java/
β βββ pom.xml
βββ π api-gateway/ # API gateway service
β βββ src/main/java/
β βββ pom.xml
βββ π user-service/ # User management
β βββ src/main/java/
β βββ pom.xml
βββ π account-service/ # Account operations
β βββ src/main/java/
β βββ pom.xml
βββ π transaction-service/ # Transaction processing
β βββ src/main/java/
β βββ pom.xml
βββ π ui-service/ # Frontend interface
β βββ src/main/java/
β βββ src/main/resources/templates/
β βββ pom.xml
βββ π pom.xml # Parent POM
βββ π README.md
βββ π .gitignore
Update application.properties in each service:
# H2 Database (Default)
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
# MySQL Example
spring.datasource.url=jdbc:mysql://localhost:3306/banking_db
spring.datasource.username=your_username
spring.datasource.password=your_passwordDefault port configuration:
- Eureka Server: 8761
- API Gateway: 8081
- User Service: 8082
- Account Service: 8083
- Transaction Service: 8084
- UI Service: 8080
- Session-based Authentication - Secure user authentication and session management
- Role-based Authorization - Secure access control
- Input Validation - Protection against malicious inputs
- HTTPS Support - Secure communication (configurable)
- Circuit Breaker Pattern - Prevents cascade failures across microservices
- Fault Tolerance - Graceful handling of service unavailability
- Service Recovery - Automatic recovery mechanisms for failed services
- Two-factor authentication (2FA)
- Bill payment functionality
- Loan management system
- Docker containerization
- API documentation (Swagger/OpenAPI)
- Comprehensive testing suite
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| π Lead Developer | ποΈ Project Architect | π¨ Frontend Developer | π» Frontend Developer |
| Krishna Saxena | Spydiecy | JollyAnsh | Armaan Thind |
| @KrishnaSaxena108 | @spydiecy | @JollyAnsh | @Armaan25Thind |
| Project leadership, backend development, microservices architecture | System design, database architecture, service integration | UI/UX design, frontend implementation, responsive design | Frontend development, user experience, client-side functionality |
This project was developed as a collaborative college assignment to demonstrate modern microservices architecture and teamwork in software development.
- Thanks to the Spring Boot community for excellent documentation
- Inspired by modern banking applications
- Built as part of college curriculum to demonstrate microservices architecture
β If you found this project helpful, please give it a star!
Made with β€οΈ by Krishna Saxena and team



