Library Management System

Members borrow, return, and reserve book copies with due dates and fines.

Easy40 minEntity modellingReservationsFines

Design a library management system where members search the catalogue, borrow and return physical copies, place holds, and pay fines. It's mostly an entity-modelling exercise: the key insight is separating a book (the title) from its copies (the physical items).

Requirements

Functional

  • Librarians add books (title, authors, ISBN) and copies (barcode, rack location).
  • Members search by title, author, or ISBN.
  • Members borrow available copies; limits depend on membership tier (e.g. 3 basic, 6 premium); loan period 14 days.
  • Members return copies; overdue returns incur a per-day fine with a cap.
  • Members place a hold on a book when no copy is available; when a copy is returned, the next member in the hold queue is notified and the copy is reserved for them for 48 hours.
  • Members with unpaid fines above a threshold cannot borrow.

Non-functional

  • Correct under concurrent checkouts at multiple counters.
  • Search should be fast for a catalogue of ~1M books (indexes, not scans).
  • Notifications are asynchronous and shouldn't block returns.

Try it first

Set a timer, sketch your own design on paper, then compare it with the reference walkthrough.

40:00

Complete & continue

Defend it out loud

The AI interviewer will probe your design for Library Management System and score it.

Mock interview