This project is a revamped version of an online library system, designed and implemented using a microservices architecture. The system leverages Spring Boot for service development and MySQL as the underlying database for persistence. By decomposing the application into independent services, this approach enhances modularity, scalability, maintainability, and deployment flexibility.
- Microservices Architecture: Decomposed the application into loosely coupled, independently deployable services.
- RESTful APIs: Facilitated inter-service communication through RESTful APIs.
- Spring Boot: Employed for rapid development, efficient resource management, and streamlined service deployment.
- MySQL: Used as the relational database management system for persistence.
The project consists of the following microservices:
- User Service: Manages user registration, authentication, and profile management.
- Book Service: Handles book catalog management, including CRUD operations.
- Borrowing Service: Manages book borrowing transactions and history.
- Java 21
- Maven 3.x
- MySQL 8.x
- Docker
- NodeJs
git clone https://github.com/eslamhawas/online-library-system.git
cd online-library-system
npm -i
docker-compose up -d
- Implement service discovery and load balancing using Spring Cloud and Netflix Eureka.
- Integrate API Gateway for centralized API management.
- Add OAuth2 for secure authentication and authorization.
- Implement CI/CD pipeline using Jenkins or GitHub Actions.