PART 1 – Administrative interface (in Python):
This part concerns the development of a Python application, which allows the user to
add, edit, delete and search for books and view book details.
1. You have to use Python to design the application and MySQL to create the
database and provide code to establish the connection between Python and
MySQL to facilitate the required process.
2. Create the Books table in MySQL as per the instructions given in Appendix 1.
3. Provide a user friendly GUI and write code to add, edit and delete books.
4. Allow the user to select Book ID from a summary view and then be able to
view book details of the selected ID.
5. Provide a summary of the contents of the book store, printing the number of
books available, the number of books per subject area, the range of publication
dates (from oldest and to youngest), the range of prices (from minimum to
maximum) and the average price of a book in the bookstore.
PART 2 – User interface (in C#):
This part concerns the development of a user interface (in C#) and an underlying
business logic for the book store, allowing a user to login, search for books, view
book details, check for availability and reserve a book.
As a first step, make sure that all the technologies required for the development of this
project is installed on your system. In particular, the MySQL DBMS (see the Software
section of this document).
Using the MySQL server, you are then required to create a database library, which
consists of four tables books, authors, customers and reservation
In this part of the project, you are required to develop a graphical front end to
implement the application server of the site with a user interface. The details of the
functionality required are provided below:
Home: This is the starting point for the application. The user should specify
whether he/she is a customer or not. If a customer, a customer id is required to
be passed for the application. If not a customer, the user should register first
and provide customer id. The response should contain customer details and a
link to the Search Request functionality.
Search Request: This part should allow the user to enter a search criterion
(search by name, by author, by subject) and a value for the chosen criterion.
Search Result: The reply of the search request should be provided by a search
result summary, which requires a search criterion and a value. The response
should contain links to Search Request and Book Detail.
Book Detail: This part returns the details of a particular book. A book id
parameter is required for this interaction. The response should contain links to
Search Request and Check for availability functionalities.
Check for availability: This part returns the available number of the particular
book by tracking the stock from the books table. A book id parameter is
required for this interaction. The response should contain links to the
Reserve a book: A record of reserving books should be associated with each
user, and here such a count is updated. If no record is associated with a user,
one should be created in this interaction. New items should always be added to
the record. A separate function should allow the deletion of an item. Every
time when a reservation is made, the B_STOCK in the Books table is updated
accordingly. The response contains the updated reservation record, displayed
as a list of items with unit prize and per-item costs together with the total cost
for all reserved items. This summary should include links to the records page
for each item and to the Search Request page.