$30
CPSC 408
Assignment 04
Points: 100
You will be working with the playlist application developed in class. The application, alongside the
songs.csv file is available on Canvas under the Lecture 12 module.
*NOTE* YOU MAY ONLY GET BONUS POINTS FOR ONE OF THE THREE AVAILABLE BONUS
OPPORTUNITIES. You can have up to 10 bonus points total. Please include in your README which
if any bonus activity you choose to implement.
You are to make updates to the application by incorporating DMLs for your table. Here are the
changes you need to make:
New Data Update (20 points)
A new pre-processing step is asking the user if they want to load new songs into the database. The
user should be prompted to the location of a file containing new songs and the program should then
bulk load those songs to the table.
I have provided songs_update.csv for testing purposes and will be using the same file when grading
your submission.
BONUS 1 (10 points)
Before inserting each new song, the application should check if the song with that ID already exists
or not. If it does, then you don’t need to insert that song in the table.
Song Update Information (20 points)
Add a new choice in the main application that asks the user if they want to update any information
for a song, given a song name. For that song, print all attributes to the user and allow the user to
make a choice about what information they want to modify. (Only song name, album name, artist
name, release date, and Explicit attributes can be modified). Then ask the user for a new value and
carry out the update. Incorrect values should be ignored, and the user should be prompted again.
Note that while the user is going to make their choice based on the song name, your update query will
be using songID in the WHERE clause.
BONUS 2 (10 points)
Add mechanism to the new choice so that the user can bulk update records based on album, artist,
or genre name. That is, ask the user for album, artist, or genre name. Then ask what attribute they
want to update and ask for a new value. Then for all records that match the user selection, make the
update.
Song Deletion (20 points)
Add a new choice in the main application that asks the user if they want to remove a song from the
playlist. Given a song name, you will then remove the song from the table.
Note that while the user is going to make their choice based on the song name, your delete query will
be using songID in the WHERE clause.
BONUS 3 (10 points)
Add a new choice in the main application. If the user selects this option, then remove all records
from the table that have at least 1 NULL value.
Grading Breakdown:
40 points if the program runs without any errors.
20 x 3 points for each new change to the application.
100 Total.
You won’t need any new code files, just the ones that are already part of the application. Make sure
that your code ties in nicely with the other functions that are already present.
Deliverables:
Submit your commented source code and your data.csv file, alongside a README inside a
compressed folder with the name FirstNameInitialLastName_AssignmentNumber.zip (e.g.,
SClibourne_Assignment4.zip). The README should include your name, any special
instructions for running your code, and all references used for the assignment.