Library Management System is a comprehensive application designed with a microservices architecture using Java, Spring Boot, and Spring Cloud. This project includes multiple independent services such as user management, book management, notification service, employee management, borrowing service, and a discovery server.
- User authentication and authorization
- Book information management and storage
- Notification system via email and messages
- Employee management and book borrowing/return system
- API Gateway for request routing and security
- Automatic service discovery with Eureka Server
- Distributed tracing and monitoring with Spring Cloud Sleuth and Zipkin
- Message-driven microservices communication with Spring Cloud Stream and Kafka
- Containerization and orchestration with Docker & Kubernetes
- Deployment and hosting on AWS & Azure
- Java, Spring Boot, Spring Cloud, Spring Security, Spring Data JPA
- Thymeleaf, Bootstrap, H2 Database
- Eureka Server, API Gateway, Spring Cloud Sleuth, Zipkin, Spring Cloud Stream
- AxonServer, Kafka
- Docker, Kubernetes
- Lombok, Maven
- Git, GitHub, Jenkins
- AWS, Azure
- Java 11 or later
- Maven 3.6.3 or later
- Docker
- Docker Compose
- AxonServer
- Apache Kafka
-
Clone the repository:
git clone https://github.com/trthanhdo41/library-management-system.git
-
Navigate to the project directory:
cd library-management-system
-
Build the project:
mvn clean install
-
Download AxonServer:
- Download AxonServer SE from AxonIQ's website.
-
Extract the downloaded zip file:
unzip AxonServer.zip -d axonserver cd axonserver
-
Run AxonServer:
java -jar axonserver.jar
-
Download and Extract Kafka:
- Download Kafka from Apache Kafka's website.
-
Extract the downloaded tar file:
tar -xzf kafka_2.13-2.8.0.tgz cd kafka_2.13-2.8.0
-
Start Zookeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties
-
Start Kafka Server: Open another terminal and run:
bin/kafka-server-start.sh config/server.properties
- Navigate to the discovery server directory:
cd discoveryserver
- Run the Eureka Server:
mvn spring-boot:run
- Navigate to the API Gateway directory:
cd apigateway
- Run the API Gateway:
mvn spring-boot:run
- Navigate to the user service directory:
cd userservice
- Run the User Service:
mvn spring-boot:run
- Navigate to the book service directory:
cd bookservice
- Run the Book Service:
mvn spring-boot:run
- Navigate to the borrowing service directory:
cd borrowingservice
- Run the Borrowing Service:
mvn spring-boot:run
- Navigate to the employee service directory:
cd employeeservice
- Run the Employee Service:
mvn spring-boot:run
- Navigate to the notification service directory:
cd notificationservice
- Run the Notification Service:
mvn spring-boot:run
- Navigate to the common service directory:
cd commonservice
- Run the Common Service:
mvn spring-boot:run