Weekly Pages
- Week 9 - API Creation
- Week 10 - JavaScript and DOM Api Fun
- Week 11 - Wrapping Up Single Page Applications and APIs
Git Workflow
Feature Branch Workflow
Group Project - Album Collection
Assignment Link
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. This collection is in a constant state of flux, so it is essential for the users to be able to update the collection and it's elements.
API Creation
First, we are going to need to create an API using Spring that will handle our DB and interactions with it.
Requirements
-
Create a RESTful API with Spring Boot.
- Endpoints for the following:
-
All
CRUD
operations forartist
s- Create endpoint
- Read endpoint
- Update endpoint
- Delete endpoint
-
All
CRUD
operations foralbum
s- Create endpoint
- Read endpoint
- Update endpoint
- Delete endpoint
-
All
CRUD
operations forsong
s- Create endpoint
- Read endpoint
- Update endpoint
- Delete endpoint
- A database service layer for retrieving and storing
artist
s,album
s, andsongs
s from the database and interacting with the controllers. - Error handling
- Resource not found
- Integration testing suite
- SmokeTests
- HttpRequestTest
- Application & WebLayer Tests
Relationships
Our user should be able to:
- access
album
s from theartist
that made them. - access
song
s from thealbum
the song is on.
User Input Fields
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
Administrative Front-end
Next we will crate our administrative front-end. It should be an SPA that uses JS to build out components that our users can interact with. Use modular JS along with WebPack to create reusable components. This application should allow you to create new artists, albums and songs, edit details about each of the items after they have been created, and delete items.
User Interaction
Our users should be able to add new instances of all entities as well as comments 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
Pair Programming
JS
APIs
- What is an API, In English, please.
- Building a RESTful Web Service
- API List
- IBM Watson: Speech to Text
- Public APIs