This Assignment contributes 100% of the overall module mark. It requires you to use Python’s Standard Library Functions to develop a Book Store Inventory Program and provide a walkthrough demonstration of your program and underpinning code base via a recorded vodcast.
Task 1: You should attempt to develop the following functionality using Python:
- Read in data from a text file containing details of book title held in stock and store these into a List data structure.
- The user should remain within the program until they select a menu option ‘8’ to quit.
- Implement a set of menu options:
BASIC FEATURES
- Output a list of books titles and their respective details, including a summary report displaying (a) total number of book titles and (b) total value of books in stock.
- Output average price of books in stock [note: only title with stock levels > 0 should be included in the calculation].
- Output a report detailing the number of books existing in each genre type.
ADVANCED FEATURES
- Option to add new book item and present a summary report displaying (a) the increase in total number of titles in stock and (b) the cost difference in average price of books in stock.
- Query if a book title is available and present option of (a) increasing stock level or (b) decreasing the stock level, due to a sale. If the stock level is decreased to zero indicate to the user that the book is currently out of stock.
- Query the List to return book items ordered in alphabetic order by title or genre.
- Plot a labelled bar chart that presents the number of books existing in each genre type.
A sample text file containing a list of book titles and is available for download from Blackboard Learn (BBL).
Task 2: You are required to produce a vodcast, lasting no more than 4 minutes, which provides a walkthrough demonstration of your program accompanied by a review of the code base. The vodcast is a mandatory part of the assignment and is the primary element from which the main learning outcomes will be assessed. A detailed guide, outlining what the vodcast needs to contain, is provide at the end of this specification. Vodcasts that go beyond 4 minutes will be penalised.