Spring Boot · REST API · Java

Library Management System

Catalog · Borrow · Reserve · Track

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.

View on GitHub → Features → Tech Stack →
Scroll

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.

📚 Librarian
Manages the book catalog — adding, retrieving, and deleting books, authors, and categories. Has full administrative access to the system's resources.
👤 Member
Browses available books, borrows and returns them within their borrowing limit, and reserves books that are currently unavailable.
📖
Book Catalog Management

Add, retrieve, and delete books through REST endpoints. Each book stores title, ISBN, total and available copies, category, and associated authors.

👥
User Management

Register and retrieve library users with role-based access (librarian or member) and a configurable maximum borrowing limit per user.

🔄
Borrow & Return

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.

🔖
Book Reservation

Users can reserve unavailable books and view or cancel their reservations. Each reservation carries a status — active, cancelled, or completed.

📊
Loan Tracking

Retrieve all active loans — books currently borrowed and not yet returned. Provides a foundation for overdue detection and usage analytics.

🛡️
Business Rule Enforcement

The system validates availability before lending, enforces per-user borrowing limits, and manages reservation state transitions automatically.

Java

Core language for all business logic, entity modeling, and application architecture.

Spring Boot

Framework powering the REST layer, dependency injection, and application configuration.

Spring Data JPA

ORM layer for database interaction — entities, repositories, and query methods without boilerplate SQL.

Maven

Build tool and dependency manager — handles project structure, packaging, and the full build lifecycle.

MySQL

Relational database for persisting books, users, loans, and reservations with referential integrity.

Postman / Swagger

REST endpoint testing and documentation — all API routes are explorable and testable without a frontend.

View Source on GitHub

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 →