Skip to content

PhoenixMaster123/Library-Management-System

Repository files navigation

Library Management System

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.

Technologies and Dependencies Used

  • 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.

Setup Instructions

Prerequisites

  • JDK 21
  • Apache Maven 3.9.9
  • Docker

Installation Steps

  1. Clone the Repository
    git clone https://github.com/your-username/Library-Management-System.git
    cd LibraryManagementSystem
  2. Build the Application
    mvn clean install
  3. Run the Application
    mvn spring-boot:run

Run unit tests using Maven

mvn verify

Run integration tests using Docker

mvn -f pom-docker.xml verify

Quick Guide: Library Management System Overview (German)

libMS.mp4

Link for the video: libMS

License ⚖️

This project is licensed under the MIT License. For more details, please refer to the file: LICENSE.

Authors 👨‍💻👩‍💻

  • Kristian Popov
  • Enrico Ebert

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •