PrepZone Logo
PrepZone
All project ideas

Beginner · 2–3 weeks

Library Management System

Digital library backend: manage books, members, borrow/return transactions, and fine calculation for overdue returns. Librarian role can add books; members can search catalog and view borrowing history.

Why this project

Classic domain with clear business rules (availability, due dates, fines). Great for discussing transactions, state machines, and role-based access.

Tech stack

Java 17Spring Boot 3Spring SecuritySpring Data JPAMySQLFlywayDocker Compose

Skills demonstrated

  • RBAC
  • Transaction management
  • Date-based business logic
  • Search and pagination

Interview talking points

  • How borrow/return is modeled as state transitions on a Loan entity
  • Why @Transactional is needed when borrowing a book
  • Handling concurrent borrow attempts on the last copy
  • Fine calculation logic and edge cases

Problem statement

Physical libraries need to track book inventory, member borrowing, and fines for overdue returns. Doing this on paper is error-prone and cannot handle concurrent access. This API replaces manual records with a single source of truth.