System design interview question
Design a Library Book Management System
Design a system to manage book borrowing and returning in a library. The system tracks books (with multiple copies), members (patrons), and lending transactions. Key operations include: adding books to inventory, registering members, borrowing books (with availability checks), returning books, and viewing borrowing history. Handle edge cases like preventing members from borrowing more than 5 books simultaneously, tracking overdue books, and managing book copies with different conditions (available, borrowed, damaged). Consider how different book types (physical books, reference books) might have different borrowing rules.
Practice this question step by step with an AI interviewer that reviews your requirements, your architecture and your trade-offs, and scores the design.