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
Defend it out loud
The AI interviewer will probe your design for Library Management System and score it.