Create a Library check-in/check-out and book-tracking system.
- Users should be able to add books to a library
- Books should be able to have information saved about them (author, title, description)
- A user should be able to check out books from the library for one week intervals
- A user should not be able to check out more than two books at any given time
- Checked-out books should be associated with a user
- Users with overdue books should not be able to request any new books until they turn all their overdue books in
- Users should be able to check in books to the library when they're finished with them
- Users should be able to check a book's status (e.g. available, checked out, overdue or lost)
- Users should be able to see a list of who has checked out which book and when those books are due to be returned
- Users should be able to see a list of books that are overdue
- Books should have optional attributes for year-published and edition
- Users should be able to import a .csv file with a list of books to add to the library
- Users should be able to leave reviews on books with both a rating and an optional written review
- Users should be able to schedule a future check-out for a book that is currently checked-out
- Users should be able to do a one-time extension for a week if no one has scheduled a future check-out for that book