Design Problem



A library needs an automated system to monitor the circulation of books in its collection. The system must provide the following functions:

Add new books purchased to the collection and delete "expired" or lost books.

Add or delete patrons from the system.  A patron has a name and an ID number that is bar coded on the person's library card.

Allow a patron to search for a book in the collection based on author or title.  The search should return the catalog information (Publisher, copyright date, and number of pages) along with the book's circulation status.

Allow a "hold" to be placed on a book currently on loan.  When the book is returned, the system should automatically send an email message to the patron who requested the hold, informing them the book is being held for them.

Respond to queries about the status of a patron including books borrowed and/or overdue, and the overdue fines accrued (if any).

Assume each book has a bar code marking with its catalog code.

Allow staff to update the patron's e-mail address or borrowing period (2 weeks, 1 month, or 3 months).

Issue ("check out") books to patrons.  If the patron borrowing the book has any outstanding fines, displaying an alert.

Return ("check in") books to circulation.  If the book is overdue, calculate the late charge and update the patron's record.