Amazon Interview Question
Software Engineer / DevelopersCountry: United States
Interview Type: In-Person
A typical library has a set of books which the users can borrow for a certain period of time and return back. Users may choose to renew the return date if they feel they need to more time to read the book. We are trying here to design an online library.
The typical user actions with this online library would be
sign in/register
search books
borrow books
renew the return date for any of the books borrowed
view his profile(check his details, list of books he borrowed )
The online library should support all the above actions. It must keep track of the different books in the library currently available for users to borrow and also the books already borrowed bu users. Put it simply the inventory should be managed.
Going through the above description we can think of these components in the system:
User
Book
BorrowTxn -> record for the event for book b is borrowed by user u
InventoryManager -> manages the books in the library. Adds new books, remove books and respond to book search requests
LibraryManager-> Allows user interaction with the library like logging in, borrowing, renewal and return.
I have out the class diagram at
h%t%t%p://thought-works.blogspot.in/2012/11/object-oriented-design-for-library-to.html
(remove % in the url and paste)
- dileep July 23, 2012