# A Fullstack developer exercise
This exercise is made to test your abilities to solve a typical fullstack issue.
## Context
Basically, you'll need to connect to spotify API to be able to do album searches, then from your Backend API show the current comments, allowing the user to put a comment on a specific album.
The FrontEnd part could be developed using your prefeered JS Framework (Angular, React, Vue,...)
The Backend must be a Java SE api, using MySQL to store the comments
## API Endpoints
The backend must to expose the following endpoints:
- GET /search?q=:searchQuery -> Returns a filtered list from Spotify API
- GET /album/:albumId -> Returns album details from Spotify API
- GET /comments/:albumId -> Returns album comments from MySQL Database
- POST /comments -> Create a new comment from MySQL Database
- Body: { albumId: String, email: String, text: String }
### Spotify credentials
To comunicate to Spotify through our backend, you must have a Spotify access token. To get this access token, login in:
https://developer.spotify.com/dashboard/
Create an App and follow the steps
- After creating the App, a client_id and a client_secret will be provided
- Once you have the keys, create .env file in the backend/ directory with the following env variables:
```
SPOTIFY_CLIENT_ID=<client_id>
SPOTIFY_CLIENT_SECRET=<client_secret>
```
## Front End Sections and functionalities
- /albums -> Display the list of albums, each album must be selectable and linked to /albums/:id
- /albums/:id -> Display basic album information, title, description. At the botttom COMMENTS SECTION, where you must be able to list the comments and add a new one
## Technical Requirements
### API
- Developed with Java SE and MySQL
- Use you best Architecture approach to prove your skills
- Try to use small code pieces
### Front End
- Use components