Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
COMP1048 Databases and Interfaces
iMusic is a company that specialises in collecting and selling physical vinyl records. The
company previously operated a physical store in the city center, but has recently decided
to shift to an online-only business model. To reflect this change, they plan to update their
website. They initially hired a professional developer to complete the work, but due to other
commitments, the developer was unable to do so. Therefore, you have been hired to finish the
project.
iMusic has provided you with a list of requirements for the website, which are outlined in the
next sections. The website is partially implemented, and you are tasked with completing the
implementation.
To complete the assignment, you only need to modify the iMusic.py file. The website makes
use of the following technologies:
• HTML - Is used for structuring and presenting the content of the iMusic website. HTML
5 is used for the website.
• CSS - Is used for styling the content of the iMusic website. CSS 3 is used for the website.
• Jinja - Is a templating language for Python, which is used to generate HTML pages for
the iMusic website. During the testing of your solution, the iMusic team will use the
3.0.3 version of Jinja.
• Python 3 - Is a general-purpose programming language. During the testing of your
solution, the iMusic team will use Python version 3.10 or later. You are advised to use
the latest version of Python to complete the assignment.
2• Flask - A micro web application framework written in Python. During the testing of
your solution, the iMusic team will use the 2.3.3 version of Flask.
• SQLite - A relational database management system. During the testing of your solution,
the iMusic team will use the 3.44.0 version of SQLite.
You are not permitted to use any other technologies or import any additional
modules beyond those already imported in the iMusic.py file or those provided by
the standard Python library.
Database Schema
The database for the project will store details of the vinyl records in the company’s inventory.
It consists of four tables:
• Artist: Stores the name of each artist. An artist is the person or group that performed
the music on the record.
• Album: Stores the title of each album and links to the artist that created the album.
• Genre: A genre is a category that describes the type of music. This table stores the
name of each available genre.
• Track: A track represents a single song on a record. Each track is linked to an album
and a genre.
The Entity-Relationship diagram (ERD) in Figure 1 shows the relationships between the var
ious tables in the database. The developer has used a slightly different notation than the one
presented in the lectures. However, you should use your professional knowledge and experience
to interpret the diagram and understand the relationships between the tables.
The database schema for the project is implemented in the iMusic.db file using the SQLite
database engine. To complete the assignment, you must use this pre-existing schema
and may not alter it in any way.