- Project Overview
- Features
- Technologies Used
- Prerequisites
- Installation Instructions
- Usage
- Project Documentation
- Development and Contribution
- License
- Contact Information
- Acknowledgements
The Webank Online Banking System is a middleware service designed to connect the frontend applications with a core banking system, providing a seamless online banking experience for users. The system consists of various modules to manage key functionalities such as user registration, account management, OTP verification, and access control.
- OBS (Online Banking Service): Orchestrates requests for registration and OTP verification, forwarding them to the appropriate backend modules.
- PRS (Personal Registration Service): Manages user registration and OTP verification.
- DAS (Deposit Account Service): Handles account creation and balance management.
- AAS (Account Access Service): Manages account access and authorization.
- SMS Gateway: Sends OTPs to users for verification purposes.
- User Registration: Users can register by providing their phone numbers and public keys.
- OTP Verification: Secure one-time passwords are sent to users’ phones to verify identity.
- Account Management: Once registration is complete, users can create bank accounts, check balances, and view transaction histories.
- Scalable Microservices Architecture: Each service is designed as an independent microservice, allowing for modularity and scalability.
- Backend: Spring Boot for the OBS, PRS, DAS, and AAS modules.
- Database: PostgreSQL (or any preferred database system) for secure data storage.
- API Documentation: OpenAPI for standardized API documentation.
- Messaging and SMS: Integrated SMS gateway for OTPs.
- Java 11+: Required to run the Spring Boot applications.
- Maven: Used for project dependency management.
- Docker (optional): For containerization and easier deployment.
- PostgreSQL: As the primary database for storing user and account data.
-
Clone the Repository:
git clone https://github.com/yourusername/webank-online-banking-system.git cd webank-online-banking-system
-
Run Database Migration:
- Ensure PostgreSQL is running and create necessary databases and tables (migration scripts are included in the
db/migrations
folder).
- Ensure PostgreSQL is running and create necessary databases and tables (migration scripts are included in the
-
Build and Run Services:
mvn clean install mvn spring-boot:run
-
Access API Documentation:
- The OpenAPI documentation will be available at
http://localhost:8080/swagger-ui.html
(or the port specified for each module).
- The OpenAPI documentation will be available at
- User Registration:
- Make a
POST
request to/register
withphoneNumber
andpublicKey
. - Receive an OTP on the provided phone number.
- Make a
- OTP Verification:
- Verify OTP by making a
POST
request to/verify-otp
with the OTP and public key.
- Verify OTP by making a
- Account Management:
- Access endpoints for balance inquiries, transfers, and account details.
For a detailed guide on using each endpoint, refer to the API Documentation section.
The architecture documentation and API specifications are available in the docs
folder. The documentation includes:
- Architecture Overview: Detailed information on how OBS interacts with PRS, DAS, and AAS.
- API Reference: List of available endpoints, request payloads, and response formats.
- Security Considerations: Overview of authentication and data encryption practices.
We welcome contributions! Please follow these steps:
- Fork the repository and create a new branch for your feature or bug fix.
- Follow our contribution guidelines for best practices.
- Submit a pull request detailing your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or support, please reach out to:
- Email: Adorsys
- GitHub Issues: Submit an issue
- Thanks to the adorsys development team for their contributions.
- Special thanks to the contributors and libraries that supported this project.
- Special thanks to the development team and contributors for their support and dedication in building this project.