The Library Management System is a Java-based backend application that follows the Hexagonal Architecture pattern. It facilitates the management of books, authors, and transactions for a library. The system provides functionalities to manage book catalogs, register customers, process borrowing and returning transactions, and view borrowing history.
- Java: Core programming language.
- Spring Boot: Used to build hassle-free web applications and write REST APIs.
- Spring Data JPA (Hibernate): Reduces the time of writing hardcoded SQL queries, allowing for more readable and scalable code.
- Spring Security: Used for authentication and authorization.
- H2: Used as a persistence store for development and testing.
- Apache Maven: Dependency management and build tool.
- Docker: Containerization for deployment.
- JUnit: Testing framework for unit and integration tests.
- Lombok: Reduces the time of writing Java boilerplate code.
- Caching Strategy: Improves efficiency by using HTTP caching, reducing redundant requests, and optimizing client-server interactions.
- Hypermedia Principle: REST API usability by providing navigable links between resources.
- JDK 21
- Apache Maven 3.9.9
- Docker
- Clone the Repository
git clone https://github.com/your-username/Library-Management-System.git cd LibraryManagementSystem
- Build the Application
mvn clean install
- Run the Application
mvn spring-boot:run
mvn verify
mvn -f pom-docker.xml verify
libMS.mp4
Link for the video: libMS
This project is licensed under the MIT License. For more details, please refer to the file: LICENSE.
- Kristian Popov
- Enrico Ebert