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
CRUD
operations forartist
s - All
CRUD
operations foralbum
s - All
CRUD
operations forsong
s - An endpoint to view all
artist
s - An endpoint to view all
album
s - An endpoint to view all
song
s
Relationships
Our user should be able to:
- access
song
s from thealbum
the song is on. - access
album
s from theartist
that 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