Our company wants to develop an application to bring an amazing music experience. This app help users can listen to music anytime and anywhere. “The true beauty of music is that it connects people. It carries a message, and we, the musicians, are the messengers,” said Roy Ayers, a prominent funk, soul and jazz composer.
- As a user, I want to be able to register for a new account with name, email and password.
- As a user, I want to be able to log in (log out) of my account.
- As a user, I want to be able to stay signed in after refreshing the page.
- As a user, I want to be able to see a list of songs.
- As a user, I want to be able to search for songs.
- As a user, I want to be able to see a list of artists.
- As a user, I want to be able to see songs of artists.
- As a user, I want to be able to search for artists.
- As a user, I want to be able to interact with song by liking.
- As a user, I want to be able to see lyric of each song.
- As a user, I want to be able to listen available playlist.
- As a user, I want to be able to manage my profile by adding profile picture and rename.
/**
* @route POST auth/login
* @description Log in with email and password
* @body {email, password}
* @access Public
* /
/**
* @route POST /users
* @description Register new user
* @body {name, email, password}
* @access Public
* /
/**
* @route GET /users/me
* @description Get current users info
* @access Login required
* /
/**
* @route PUT /users/:id
* @description Update user profile
* @body {name, avatarUrl}
* @access Login required
* /
/**
*@route GET /users/:id
* @description Get a user profile
* @access Login required
* /
/**
*@route GET /songs?page=1&limit=10
* @description Get all song can see with pagination
* @access Login required
* /
/**
* @route GET /songs/:id
* @description Get single artist
* @access Login required
* /
/**
*@route GET /top-chart?page=1&limit=10
* @description Get all top song can see with pagination
* @access Login required
* /
/**
* @route GET /artists?page=1&limit=10
* @description Get all artist can see with pagination
* @access Login required
* /
/**
*@route GET /artists/:id/songs?page=1&limit=10
* @description Get all song of one artist user can see with pagination
* @access Login required
* /
/**
* @route GET /artists/:id
* @description Get single artist
* @access Login required
* /
/**
* @route GET /lyric/songs/:songId
* @description Get lyric for a song
* @access Login required
* /
/**
* @route POST /reactions
* @description Save a reaction to song
* @body {targetId, emoji: "like", "dislike"}
* @access Login required
* /
/**
* @route POST /playlists
* @description Create new playlist
* @body {name, songId}
* @access Login required
* /
/**
* @route GET /playlists/:id
* @description Get a single playlist
* @access Login required
* /
/**
* @route GET /playlists
* @description Get playlists
* @access Login required
* /