- inventory of books
- add and remove
- edit the data about the book
- querying the data (search for books based on data?)
- displaying the whole library
- how much is the whole library worth?
- allow for loaning
- mark a book as loaned out or not
- who checked out the book?
- keep track of due dates
- log of historical checkouts
- public and private views of checkouts (administrative functions?)
- be able to mark books as read without checking them out
- recommendations
- looking at a book, see related books
- recommend books based on your previously checked out books
- command line interface
- display possible actions/menu
- get input about what action the user wants to take
- get input about the book in prompts
- validate the input
- be able to change data they've entered – edit
- lookup metadata from the web
- barcode scanning
- desktop interface (GUI)
- web interface
- all the same functions as command line
- what kind of database? do we need a database?
- SQL? noSQL?
- go to the cloud.
- Program for different platforms (Windows, Mac, Linux)
how to represent a book
- title
- author(s)
- physical location (coordinates, shelves, walls, rooms)
- isbn
- genre
- keywords
- number of pages
- dimensions
- due date
- status
- history
- who checked/read it out
- review
- when did they check it out
- condition
- rating
- price
- publish date
- date when you added the book
- number of copies