Developing the Playlister App

HW 3: 3rd Technology Learning Assignment - Full-Stack Web App Development


In this assignment we'll again make the Playlister application but now we'll be adding a back-end, which means a Mongo database that we'll communicate with using the Mongoose ODM and we'll build a back-end API using Express. On the front-end we'll manage the application's state using the Context and Hooks APIs and we'll send http requests to the back-end API from our React application using Axios. So there are lots of new technologies that we'll be using but don't let that worry you, each of these tools makes our life easier than what we would have used in the past for doing such things. Note, we are not using NextJS at this time. We'll leave that for HW 4.

Note that it is important that you know how the pieces fit together before you start, so make sure you look through all the code I am providing you first and understand how it works. You may also wish to review the following before getting started:


Setup

We'll again use Visual Studio Code and GitHub and make an application for the Node platform. To get started with this this assignment, do the following:

The Playlister App - Requirements

When you run the application you'll notice that it loads and displays what lists are in the database, lets the user load/view a list and close a loaded list. There's an edit button for each list that lets you edit the name but when you hit ENTER you're back to the same old name. When you double click on a song an edit screen opens but your changes are not applied. You can drag and drop songs but they are not applied either. This is where you come in. Note that in order to get everything to work you'll need to first make sure you understand how the application currently works, especially data management in the data store. The good news in this assignment is you don't need to change any components. Add the necessary code to do the following:



Handin Instructions

When you are done, zip up your entire project, but do not include the node_modules directory. Then submit that single ZIP file via Brightspace. Note, it must be a .zip file, not a .rar file. Remember, if you include the node_modules directory it is a 5 point deduction.



Grading

Note that grading will be based on program performance and will only be done by appointment with each student's prescribed Teaching Assistant. This part of your grade will be based on how well your program performs specific required tasks and you must use Version Control throughout.