Assignment 2

Grittify


Due Date: Wednesday, March 2nd, 11:59:59 PM

Value: 150 points

Github Classroom Assignment Invite Link: https://classroom.github.com/a/4pXslF-M

Github: https://github.com/umbc-cmsc-210-spring-2022/cmsc-210-spring-2022-assignment-2

Collaboration: For Assignment 2, collaboration is not allowed; you must work individually. You may still see your TA and come to office hours for help, but you may not work with any other CMSC 210 students. You may post questions on Slack, but you may not post code.

Objectives:

Instructions

Comments & Coding Standards

The Task

A TA from ages now long-past has harvested information about songs and albums from the artist deadmau5, who appears to be some sort of folk-singer. The course staff and UMBC in no way endorse the artist deadmau5 or his views or opinions. The course staff in no way endorses the death of mice. The goal of your project is to write a command line tool, grittify, which will answer queries about songs of deadmau5.

The Data

You will be provided with the following csv files:

  1. deadmau5_albums.csv: each row of the file is an album by deadmau5
  2. deadmau5_tracks.csv: each row of the file is a song by deadmau5

Pre-defined Python Library Usage

You may import anything. At all. May the force of all of Python be with you.

We recommend that you use:

Command line Functionality

You are writing the command grittify which takes a command and then parameter(s). The acceptable commands are:

grittify album [album-name]

Prints all of the songs on the album with [album-name]

grittify albums

Prints all of the albums (but not their songs)

grittify song [song-name]

Prints the data for song with [song-name] This is optional, I didn't provide code

grittify songs

Prints all of the data for all of the songs, including the data for the album they are on

grittify songs after [date]

Prints all songs that occur after a particular date, which will be written in MM-DD-YYYY format. Album data will be included.

grittify songs before [date]

Prints all songs that occur before a particular date, which will be written in MM-DD-YYYY format. Album data will be included.

Sample Output

The sample output is available as a separate file in your project template.

Additional requirements

You MUST NOT modify any of the supplied code, except for the contents of get_all_albums()

Your output should be as close as possible to the sample outputs, though you can have a different order. This includes printing dates as they are in the sample output.

Submitting Your Assignment

We will cover the use of github in class and provide walkthroughs for submitting assignments.

Grading Rubric

Following coding standards 15 points
Reading in album information 15 points
Reading in song information 15 points
Creating an album class that stores relevant album information 30 points
Creating a song class that stores relevant album information 30 points
Correctly reading and outputting dates 15 points
Correctly performing date comparisons 10 points
Correct output for all required commands 20 points
Total: 150 points