- This assessment should be completed using Python.
Back in the day, humans would actually leave their homes to go rent a physical video copy of movies (what a strange concept, right?). Blockbuster was the leading video rental company in this era. Today, there is only one Blockbuster location left which is located in Bend, Oregon. We are going to ask you to build a video inventory application for this Blockbuster!
We have provided you with two data csv files. customers.csv and inventory.csv.
- id
- account_type
- first_name
- last_name
- current_video_rentals (list of titles separated by '/')
- id
- title
- rating
- release_year
- copies_available
Your Video Inventory Management application should manage the following data:
- Manage customer information:
- customer id
- customer account type (sx/px/sf/pf)
- "sx" = standard account: max 1 rental out at a time
- "px" = premium account: max 3 rentals out at a time
- "sf" = standard family account: max 1 rental out at a time AND can not rent any "R" rated movies
- "pf" = premium family account: max 3 rentals out at a time AND can not rent any "R" rated movies
- customer first name
- customer last name
- current list of video rentals (by title)
- Manage the store's video inventory:
- video id
- video title
- video rating
- video release year
- number of copies currently available in-store
Your application should allow:
- Viewing the current video inventory for the store
- show
title
andcopies_available
for each video in the inventory
- show
- Viewing all customers
- show
customer_id
andname
for each customer in the store
- show
- Viewing a customer's current rented videos
- take in a
customer_id
from the user and show current rented videos for that customer - each title should be listed separately (i.e. not displayed as one string with slashes straight from the CSV file)
- take in a
- Adding a new customer
- a newly created customer should not have any rentals
- can you prevent duplicate ids from existing?
- Renting a video out to a customer
- video by
title
- customer by
id
- IMPORTANT: Customers should be limited based on their account type. Your application should enforce these limitations when attempting to rent a video!
- video by
- Returning a video from a customer
- customer by
id
- video by
title
- customer by
- Exiting the application
Be sure to give careful consideration into what data structures & data types (including classes) you might need to use in your application logic.
Your menu should look something like this:
== Welcome to Code Platoon Video! ==
1. View store video inventory
2. View store customers
3. View customer rented videos
4. Add new customer
5. Rent video
6. Return video
7. Exit
- Make sure you read the Assessment-2 Grading Rubric.
- Application Correctness (60%)
- Code Design (40%)
- You need to get a 75% or better to pass. (You must pass all assessments in order to graduate Code Platoon's program.)
- If you fail the assessment, you have can retake it once to improve your score. For this assessment...
- 5% penalty: If you complete and submit the retake within one week of receiving your grade.
- 10% penalty: If you complete and submit the retake by the start of week 12. A retake for this assessment WILL NOT be accepted after this date.
- This test is fully open notes and open Google, but is not to be completed with the help of other students/individuals.
- Push your solution up to a private repo in your personal Github account.