StackOverdue is a library management system with export-import, time travel and overdue book tracking capabilites
The program is executed via a shell, so only the shell's COMMANDS and API are listed (read didn't have time).
BROWSE
: Provides the status of all the books.BOOK
: Provides the status of a specific book.SEARCH
: Searches for all books with a key-phrase in the title or author.ACCOUNTS
: Provides account snapshots for all user accounts.ACCOUNT
: Provides an account snapshot for a specific user account.CHECKOUT
: Checks a book out to a user account.RENEW
: Renews a checked out book. (Up to two times allowed)RETURN
: Returns a checked out book.RECOMMEND
: Generates a list of recommended books for a given user.ADDB
: Adds a new book to the library.REMOVEB
: Removes a specific book from the library.ADDA
: Creates a new user account in the library.REMOVEA
: Removes a specific user account from the library.SYSTEM
: Provides diagnostic information about the system.TIME
: Fast forwards the system time by a specified number of days.EXPORT
: Exports the library's books and accounts to files.HELP
: Displays this help menu.EXIT
: Exists the program.
void prompt()
: Prompts the user for an input and processes itbool getStatus()
: Returns false when the user inputs 'EXIT' into it.
To compile the project:
$ git clone https://github.com/CSCI235-Ayzman/f0cus10-assignment3-StackOverdue.git
$ make
After Compilation is successful, run it using:
$ ./StackOverdue <Books File Name> <Accounts File Name>
If no files are provided, no default files will be used
To clean up, run:
$ make clean
- Although
RECOMMEND
has been checked for theNULL
case, there maybe unexpected crash when the book recommendation is empty - Input validation only happens at the
Shell
class. All other classes require validated input