A RESTful web application built with Java and Spring Boot for digital library management. Librarians manage books, authors, and categories while members borrow, return, and reserve books — all through clean REST endpoints.
The Library Management System is a backend application that exposes a set of REST endpoints consumable via Postman, Swagger, or any frontend client. It models the core workflows of a real library — from cataloging books to tracking active loans.
The system enforces business rules such as borrowing limits per user, availability checks before lending, and reservation status management. All data is persisted in a relational database using Spring Data JPA.
The project was built following a layered architecture — controllers handle HTTP, services contain business logic, and repositories manage persistence — keeping each layer focused and independently testable.
Add, retrieve, and delete books through REST endpoints. Each book stores title, ISBN, total and available copies, category, and associated authors.
Register and retrieve library users with role-based access (librarian or member) and a configurable maximum borrowing limit per user.
Members borrow books when copies are available and their limit allows it. The system records borrowing date, due date, and return date, updating availability automatically.
Users can reserve unavailable books and view or cancel their reservations. Each reservation carries a status — active, cancelled, or completed.
Retrieve all active loans — books currently borrowed and not yet returned. Provides a foundation for overdue detection and usage analytics.
The system validates availability before lending, enforces per-user borrowing limits, and manages reservation state transitions automatically.
Core language for all business logic, entity modeling, and application architecture.
Framework powering the REST layer, dependency injection, and application configuration.
ORM layer for database interaction — entities, repositories, and query methods without boilerplate SQL.
Build tool and dependency manager — handles project structure, packaging, and the full build lifecycle.
Relational database for persisting books, users, loans, and reservations with referential integrity.
REST endpoint testing and documentation — all API routes are explorable and testable without a frontend.
Full source code, entity model, and REST endpoint documentation available on GitHub. Clone the repo, configure your database, and run it with a single Maven command.
View on GitHub →