A Python & XML database application for a book collection.
Focus was placed on exploring various methods of parsing, manipulating, and analyzing XML data.
Project Overview:
- An XML file serves as the main data storage, with several starting book entries.
- Using the C implementation of ElementTree in Python, xml.etree.cElementTree, CRUD functionality is added. CRUD is an acronym that stands for create, read, update, and delete and encompasses the four basic functions of persistent storage.
- A user can update a book entry, delete a book entry, see all book entries, search for a book entry, and create new book entries.
- XML data is then placed into a table using Pandas Dataframes (in-memory data storage). This allows for quick data analysis and generating statistical charts and graphs on the data with the very popular and heavily used Python libraries, NumPy and MatPlotLib.
- Four chart functions are added (bar chart of genre frequency, bar chart of publish year frequency, comparison chart of publish year frequency by genre, and comparison chart of price/values by publish year). More automatically generated chart functions can easily be added.
- A GUI was added, for a more user-friendly experience.
Please view powerpoint (Databases.pptx file in this GitHub) for further details on the project.
Python (3.8.5) Libraries Used: | Python Docs |
---|---|
Pandas 1.1.1 | Pandas Docs |
NumPy 1.19.1 | NumPy Docs |
MatPlotLib 3.3.1 | MatPlotLib Docs |
Seaborn 0.10.1 | Seaborn Docs |
PySimpleGUI 4.29.0 | PySimpleGUI Docs |
Future Work: Improve GUI