Skip to content
Permalink
02ea1ad2dc
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
69 lines (47 sloc) 3.58 KB
# My Music
Build a website that allows users to upload music files and create playlists:
## Stage 1
The core functionality consists of three screens:
1. The home screen should display a list of the tracks uploaded, specifically:
1. The name of the track (extracted from the mp3 file)
2. The artist name (extracted from the mp3 file)
2. There should be a link or button on the home screen that takes the user to a track upload screen where they can upload more tracks. This screen should:
1. Display a list of all the tracks with title and artist
2. Allow the user to select a file and upload it
3. If the user selects a track on the home screen by clicking on either the track name or artist text they should be taken to a page which displays all the ID3 data extracted from the file including the album art. The page should also allow the track to be played, paused and should also include a scrub bar to track how much of the track has been played and allow the user to scrub forward and backward.
## Stage 2
The intermediate tasks require you to make changes to the functionality:
1. The user should be able to create playlists, supplying a name, picture/graphic and short summary.
2. The home page should display a grid or list of all the playlists and include:
1. A thumbnail picture/graphic, name and summary.
2. An indication of how many songs are in each and the total play time.
3. Clicking on a picture/graphic or title takes the user to a playlist page which should include:
1. The picture/graphic, name and summary.
2. A list of the tracks in the playlist including thumbnail, title, duration.
3. A single media component that plays all the tracks in order.
## Stage 3
1. The user should be able to view and play other peoples playlists and leave:
1. Ratings using a 1-5 star scale.
2. Comments on the playlist with each comment including the comment, username and date/time.
3. All ratings and comments should be visible to all visitors viewing the playlist.
2. When a user uploads an audio file they should be able to edit the ID3 data which is then saved back to the mp3 file.
----
## Extras
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.
### Sensors
In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:
1. Each track should keep track of where ther person was when they last listened to it and when.
2. This information should be displayed next to any track that has been played. If the person has never listened to a track this should be flagged up.
3. If the device is shaken it should play a random song.
4. When asked for a playlist image the user should be provided with the option of using the device camera (if available)
### Media
In the requirements listed above you need to provide the user with the ability to upload photos. For the extra media marks you will need to expand this by:
1. Providing the user with the choice of uploading photos, video clips or audio clips.
2. Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.
### Data
There are lots of online RESTful APIs you can make use of when developing this system. You should consider:
1. [Deezer API](https://rapidapi.com/deezerdevs/api/deezer-1)
2. [iTunes API](https://rapidapi.com/volodimir.kudriachenko/api/iTunes)
3. [Spotify API](https://rapidapi.com/search/spotify)
4. [LastFM API](https://rapidapi.com/dimashirokov/api/LastFm)
5. [LocationIQ](https://locationiq.com)