Objective
Our super hip ironic friend needs an easy way to curate soundscapes for the Italian scooter/coffee hybrid co-op startup at which they volunteer (they also fix old polaroid cameras).
They have tasked us with creating an application that can easily keep track of their EXTENSIVE record collection and access music by artists, albums, or individual tracks.
Tasks
The best way to approach this is with a Single Page Application (SPA). So we are going to need to independent pieces that will interact with each other.
Back-end/API
We are going to need to create an API using Node/Express that will handle our DB and interactions with it.
API Interactions:
- All
CRUDoperations forartists - All
CRUDoperations foralbums - All
CRUDoperations forsongs - An endpoint to view all
artists - An endpoint to view all
albums - An endpoint to view all
songs
Relationships
Our user should be able to:
- access
songs from thealbumthe song is on. - access
albums from theartistthat made them
User Input
Each entity should have fields the user can interact with:
- Should have ratings (rating system can be your own design)
- Should have comments with a way to add them
- Should have tags
Front-end
Our front-end should be an SPA that uses JS to build out components that our users can interact with. Use modular JS along with parcel to create reusable components.
User Interaction
Our users should be able to add new instances of all entities as well as comments, tags, and ratings
Entities
artist
-
name
-
image
-
albums
-
any other pertinent info. Could include:
- age
- record label
- hometown
album
- title
- image
- songs
- record label
song
- title
- link (optional)
- duration
Resources
General
MongoDB
JS
React
APIs
- What is an API, In English, please.
- Building a RESTful Web Service
- API List
- IBM Watson: Speech to Text
- Public APIs