Skip to content

Latest commit

 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Borrowly | Library Management System

Spring Boot Angular Java 17 PostgreSQL JWT Stripe Lombok MapStruct


Borrowly-LMS is a comprehensive Library Management System built with Spring Boot, designed to digitize and automate library operations. It provides a full platform for managing books, user subscriptions, book loans, payments, penalties, reservations, reviews, and bookmarks with modern, scalable architecture.

Note

This project is currently UNDER DEVELOPMENT. Additional features will be added, existing functionalities will be enhanced, and FRONT-END DEVELOPMENT IS PLANNED.


Database Design

Database Design

  • Organized and simple design for easy reference
  • Key tables: Users, Books, Categories, Subscriptions, BookLoans, Penalties, Payments, Reservations, BookReviews, Bookmarks

Key Features

1. Book & Category Management

  • Organize and catalog books by categories
  • Manage book inventory and availability
  • Track book details and metadata

2. User Management & Authentication

  • Secure registration and login using JWT
  • Role-based access control
  • User profile management
  • Password reset via email

3. Subscription Management

  • Flexible subscription plans
  • Subscription lifecycle tracking (renewal, cancellation)
  • Renewal and cancellation management

4. Book Loan Management

  • Borrow and return books with automated tracking
  • Borrow and due date configuration
  • Renewal support (default max: 2 times)
  • Track overdue books and overdue days
  • Support multiple loan states (BORROWED, OVERDUE, RETURNED)

5. Book Reservation System

  • Reserve books with queue position tracking
  • Multiple reservation states (PENDING, AVAILABLE, FULFILLED, CANCELLED, EXPIRED)
  • Automatic availability notifications
  • Time-bound reservation windows
  • Support for expiration handling
  • Notes and comments on reservations

6. Book Reviews & Ratings

  • User-submitted book reviews with star ratings (1-5)
  • Review titles and detailed descriptions
  • Track review creation and updates
  • User-specific reviews per book
  • Support for aggregated ratings and reviews

7. Bookmark Management

  • Create personal bookmarks for favorite books
  • Add notes to bookmarked books
  • Personal reading list organization
  • Track when books were bookmarked

8. Penalty & Fine Management

  • Automatic penalty generation for overdue or damaged books
  • Multiple penalty types: Delay, Damage
  • Track penalty states: UNPAID, PARTIALLY_PAID, PAID, CANCELLED
  • Partial payment support
  • Cancel penalties with reasons and audit trail
  • Payment integration for penalty settlement

9. Integrated Payment Processing

  • Stripe payment gateway for secure transactions
  • Support for subscription and penalty payments
  • Track payment status: Initiated, Completed, Failed
  • Payment provider management and transaction tracking
  • Comprehensive payment history and audit trail

10. Advanced Search & Filtering

  • JPA Specifications-based complex queries
  • Filter by multiple criteria (state, type, user, dates)
  • Paginated results for efficient retrieval
  • Advanced book search and filtering

11. Security & Authentication

  • JWT-based authentication
  • Secure password management
  • Role-based access control

12. Communication & Notifications

  • Email integration for notifications (payment confirmations, password resets, reservation updates)
  • Thymeleaf templates for formatted emails

Tech Stack

  • Framework: Spring Boot 4.0.4
  • Database: PostgreSQL with JPA/Hibernate
  • Authentication: JWT
  • DTO Mapping: MapStruct
  • Payment Gateway: Stripe
  • Email: Spring Mail + Thymeleaf
  • Code Quality: Lombok
  • API Documentation: SpringDoc OpenAPI
  • Language: Java 17

Architecture Highlights

  • Modular Design: Separate modules for each domain (auth, book, loans, payment, penalty, subscription, user, reservation, reviews, bookmark)
  • Service Layer: Encapsulates business logic
  • Repository Pattern: Data access with JPA repositories
  • DTO Pattern: Separate entity and API models
  • Exception Handling: Custom exception handling for business logic errors
  • Shared Utilities: Common functionality in _shared module (DTOs, configs, email, audit trails)

About

A Full-Stack Library Management System for managing books, borrowing, reservations, returns, fines, subscriptions, reviews, wishlists, and analytics — built for real-world use.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages