A CSSE433 assignment in which I had to implement several basic features expected of a simple library management system in various NoSQL databases. These was done to quickly pickup on the pros and cons of each NoSQL database.
- Redis
- MongoDB
- Neo4j
My submitted solutions are all tagged with their respective database name.
The specific Python client for each of the mentioned NoSQL database and
Click
for CLI parsing.
Assumes Python and pip are of Python 3.
git clone git@github.com:lamdaV/library-cli.git library-cli
cd library-cli
pip install -e .
Construct a book library app with a rudimentary interface (Command line interface works for me) using a high-level language (Python for example) that supports the following features.
- Add book (Title, Author, ISBN, #of Pages) to library. Please note that a book may have multiple authors
- Delete book from library
- Edit book information
- Search by title, author, or ISBN
- Sort by title, author, # of pages or ISBN
- Add Borrower's (Name, Username, Phone) to library
- Delete Borrowers from library
- Edit Borrower information
- Search by name, username
- Allow Borrowers to checkout books (Can only checkout if a book is available) and return books.
- Track number of books checked out by a given user & Track which user has checked out a book
There were several other features specific to the database backing this CLI
such as building a simple book recommendation with Neo4j
.
This has been submitted to Rose-Hulman as an assignment. As such, Rose-Hulman has records of this and it is highly discouraged from submitting this repo as is.
If you are looking for a skeleton of a CLI to implement see library_cli/api
and library_cli/command
.