|
|
# **Drupal Challenge Instructions**
|
|
|
|
|
|
## **Description**
|
|
|
|
|
|
The objective of this challenge is to implement a mini-site using Drupal 10. The site should contain information about music.
|
|
|
|
|
|
## **Assignment**
|
|
|
|
|
|
You will create an app that shows information about the songs, albums, and artists from Spotify, by receiving data from a third-party API. Use Spotify API to achieve this goal.
|
|
|
|
|
|
[https://developer.spotify.com/documentation/web-api/](https://developer.spotify.com/documentation/web-api/)
|
|
|
|
|
|
Create a clean structure architecture in Drupal showcasing your knowledge of site-building to store and relate the different pieces of data you will retrieve and the proper use of Drupal entities. Provide a good, cohesive front-end with proper theming to demonstrate your knowledge of working with Twigs templates, use of CSS and responsiveness, Javascript, hooks and preprocessors, and other Drupal 8/9/10 functionality. Use the Drupal code standards.
|
|
|
|
|
|
Remember to edit and create your own Readme, letting us know how to install and run it, as well as any information you consider necessary.
|
|
|
|
|
|
## **Mandatory Features**
|
|
|
|
|
|
### **General**
|
|
|
|
|
|
* Navigation menu.
|
|
|
|
|
|
### **Homepage _("/" root page)_**
|
|
|
|
|
|
* The homepage must show a carousel of the top 20 songs.
|
|
|
* Each song must show the title, picture, and link to a detail page.
|
|
|
* The homepage must show a grid with random 10 artists from the site and a link to the artists' general section ("view more" button)
|
|
|
* Each artist must show the title, picture, and a link to a detail page.
|
|
|
|
|
|
### **Artists page _("/artists")_**
|
|
|
|
|
|
**MAX ARTISTS OVERALL ON SITE 50**
|
|
|
|
|
|
* List of available artists.
|
|
|
* Each artist must show the name, picture, and link to the detail page.
|
|
|
* The list must be sortable by name with ASC as default.
|
|
|
* The list must be filterable by name, song, and genre.
|
|
|
|
|
|
### **Songs page _("/songs")_**
|
|
|
|
|
|
* List of available songs.
|
|
|
* Each song must show the name, picture, artist, and a link to the detail page.
|
|
|
* The list must be sortable by name with ASC as default.
|
|
|
* The list must be filterable by name, song, and artist.
|
|
|
|
|
|
### **Artist Detail page**
|
|
|
|
|
|
* List of top 10 tracks with link to detail view(name and image).
|
|
|
* List of 10 albums(not singles) with link to Spotify(name and image).
|
|
|
* Spotify's artist link.
|
|
|
* Artist image (1).
|
|
|
* Genres.
|
|
|
* # of followers.
|
|
|
* Name.
|
|
|
|
|
|
#### **Song Detail page**
|
|
|
|
|
|
* Artist name with a link to the detail page.
|
|
|
* Spotify's song link.
|
|
|
* Album's name, image, and release date formatted as "mm/dd/yyyy".
|
|
|
* Name.
|
|
|
* Genres.
|
|
|
* Popularity.
|
|
|
|
|
|
## **Bonus (Optional)**
|
|
|
|
|
|
* Each detail page URL must use the following convention:
|
|
|
* `/artists/<artist_name_slug>`
|
|
|
* `/songs/<song_name_slug>`
|
|
|
* The theme must be enabled automatically as soon as a custom module is enabled.
|
|
|
* Search across the site: song, artist, album. |
|
|
\ No newline at end of file |