Skip to content
Permalink
be5eddc1a0
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
103 lines (64 sloc) 4.19 KB
# My Music
Build a website that allows users to upload music files and create playlists.
---
## Testing
The system should include 5 tracks uploaded for each of the user accounts listed below.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password `p455w0rd`:
1. `user1`
2. `user2`
3. `user3`
---
## Stage 1
The core functionality consists of three screens.
### Part 1
The home screen should only be viewable once a `user` has logged in and should display a list of the tracks uploaded _by that user_ with all data extracted directly from the `.mp3` file, specifically:
1. The name of the track.
2. The artist name.
3. The album art.
4. The duration (in minutes and seconds).
### Part 2
There should be a link or button on the home screen that takes the `user` to an **upload** screen where they can upload more tracks. This screen should:
1. Display a list of all the tracks with title, artist, album art and duration.
2. Allow the user to upload an `.mp3` file from their computer.
> Note: the user must __not__ be asked to input the track, artist name or duration, nor upload album art, this information **must** be extracted directly from the uploaded file.
### Part 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.
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)