Skip to content

The Library Catalog program provides a structured way to create, browse, search and edit data for a small home library.

Notifications You must be signed in to change notification settings

nikki-t/home-library-catalog

Repository files navigation

home-library-catalog

The Library Catalog program provides a structured way to create, browse, search and edit data for a small home library.

This iteration of the Library Catalog program’s goal is to set the foundation for tracking a small home library with the idea that this foundation can be expanded upon to include many types of resources like music, newspaper/journal subscriptions, etc. There are currently 4 classes that model 2 different types of resources. The classes are resource, book, movie and name and they model resources of type book or type movie.

Six CSV files are used to store the data pertaining to each class. The resource class has a Resource.csv and Keywords.csv file associated with it. This was done in order to provide some form of data normalization and prevent repetition of data in rows to accommodate multiple keywords. This also creates a unique row for each keyword associated with the appropriate resource UID. In a similar fashion the movie class has Cast.csv and Writers.csv associated with it and was done to avoid repetition and provide some data normalization as in the resource class. The movie class also has a Movie.csv file to hold rating data. The book class has a Book.csv file associated with it. In the future it will make sense to move this CSV file-based storage to a relational database system.

The Library Catalog program itself is made up of several modules. The library_catalog.py contains the main logic of the program which is largely menu driven. Management of the CSV files is done through the file_management.py module. The creation of a resource list which contains all of the books and movies present in the home catalog is done through the create_resource_lists.py module. The rest of the functionality is implemented in the browse.py, search.py and edit.py modules. This organization allows the logical separation of the different library catalog features and provides a mechanism to expand on these features in the future.

Future features include moving catalog data storage to a relational database system, organizing code into a Python package, and recovering previous versions of the catalog. Performance should also be improved in future versions by looking at the handling of loops surrounding resource lists and a better sorting algorithm can be used to sort resources by title. Input validation should be refined so that the data that is stored is in a consistent format. And finally, a GUI should be implemented to include the visualization of catalog data.

About

The Library Catalog program provides a structured way to create, browse, search and edit data for a small home library.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages