User Stories and Acceptance Criteria - stevenkleinberg/Python_Group7_Soundcloud GitHub Wiki
User Stories
Users
Sign Up
- As an unregistered and unauthorized user, I want to be able to sign up for the website via a sign-up form.
- When I'm on the /signup page:
- I would like to be able to enter my email, name, and preferred password on a clearly laid out form.
- I would like the website to log me in upon successful completion of the sign-up form.
- So that I can seamlessly access the site's functionality
- When I enter invalid data on the sign-up form:
- I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
- So that I can try again without needing to refill forms I entered valid data into.
- When I'm on the /signup page:
Log in
- As a registered and unauthorized user, I want to be able to log in to the website via a log-in form.
- When I'm on the /login page:
- I would like to be able to enter my email and password on a clearly laid out form.
- I would like the website to log me in upon successful completion of the lob-up form.
- So that I can seamlessly access the site's functionality
- When I enter invalid data on the log-up form:
- I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
- So that I can try again without needing to refill forms I entered valid data into.
- I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
- When I'm on the /login page:
Demo User
- As an unregistered and unauthorized user, I would like an easy to find and clear button on both the /signup and /login pages to allow me to visit the site as a guest without signing up or logging in.
- When I'm on either the /signup or /login pages:
- I can click on a Demo User button to log me in and allow me access as a normal user.
- So that I can test the site's features and functionality without needing to stop and enter credentials.
- I can click on a Demo User button to log me in and allow me access as a normal user.
- When I'm on either the /signup or /login pages:
Log Out
- As a logged in user, I want to log out via an easy to find log out button on the navigation bar.
- While on any page of the site:
- I can log out of my account and be redirected to a page displaying a sample of songs.
- So that I can easily log out to keep my information secure.
- I can log out of my account and be redirected to a page displaying a sample of songs.
- While on any page of the site:
Songs
Create songs
- As a logged in user, I want to be able to add new songs via song URL.
- When I'm on the /new-song page:
- I can name and upload a new song.
- So that I can share my music with the world.
- I can name and upload a new song.
- When I'm on the /new-song page:
Viewing Songs
- As a logged in or logged out user, I want to be able to view a selection of the most popular songs.
- When I'm on the / page:
- I can view and listen to the ten most liked posted songs.
- So that I can hear what's popular
- I can view and listen to the ten most liked posted songs.
- When I'm on the /songs page:
- I can view and listen to all of the newest songs posted
- So that I can find the newest artists
- I can view and listen to all of the newest songs posted
- When I'm on the / page:
- As a logged in user, I want to be able to view a specific song and its associated comments and likes.
- When I'm on the /songs/:id page:
- I can play and listen to the song, as well as its associated comments and likes.
- So that I can see more information about the specific song
- I can play and listen to the song, as well as its associated comments and likes.
- When I'm on the /songs/:id page:
- As a logged in user I want to be able to continue listening to the song I'm playing as I navigate the site.
Updating Songs
- As a logged in user, I want to be able to edit my songs by clicking an Edit button associated with the song anywhere that song appears.
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
- I can click "Edit" to make changes to the song I have posted.
- So that I can rename or change the artwork of the song.
- I can click "Edit" to make changes to the song I have posted.
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
Deleting Songs
- As a logged in user, I want to be able to delete my songs by clicking a Delete button associated with the song anywhere that song appears.
- When I'm on the /songs, /songs/:id, or /users/:id/songs pages:
- I can click "Delete" to permanently delete a song I have posted.
- So that if no one likes my music I can take it down.
- I can click "Delete" to permanently delete a song I have posted.
- When I'm on the /songs, /songs/:id, or /users/:id/songs pages:
Comments
Create comments
- As a logged in user, I want to be able to comment on songs.
- When I'm on the /songs/:id page:
- I can comment on a song.
- So that I can share my thoughts on music with the world.
- I can comment on a song.
- When I'm on the /songs/:id page:
Viewing comments
- As a logged in user, I want to be able to view a specific song and its associated Comments and Likes.
- When I'm on the /songs/:id page:
- I can play and listen to the song, as well as its associated comments and likes.
- So that I can see more about the specific song
- I can play and listen to the song, as well as its associated comments and likes.
- When I'm on the /songs/:id page:
Updating comments
- As a logged in user, I want to be able to edit my comments by clicking an Edit button associated with the comment on the song page.
- When I'm on the /songs/:id pages:
- I can click "Edit" to make permanent changes to the comment I have posted.
- So that I can change what I said.
- I can click "Edit" to make permanent changes to the comment I have posted.
- When I'm on the /songs/:id pages:
Deleting comments
- As a logged in user, I want to be able to delete my comments by clicking an delete button associated with the comment on the song page.
- When I'm on the /songs/:id pages:
- I can click "delete" to remove the comment I have posted.
- So that I can remove what I said.
- I can click "delete" to remove the comment I have posted.
- When I'm on the /songs/:id pages:
Likes
Create likes
- As a logged in user, I want to be able to like songs.
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
- I can click "Like" to like the song.
- So that I can show the creator it is good, and save it for later.
- I can click "Like" to like the song.
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
Viewing likes
- As a logged in user, I want to be able to view a specific song and its associated Likes.
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
- Any display of a song will show the songs number of likes, and display whether I have already liked it
- So that I can see what's good.
- Any display of a song will show the songs number of likes, and display whether I have already liked it
- When I'm on my personal /users/:id page
- I can view all of the songs that I have liked.
- So that I can keep track of what I like.
- I can view all of the songs that I have liked.
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
Updating/Deleting Likes
- As a logged in user, I want to be able to unlike a song or playlists by clicking the like button associated with the song.
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
- Any display of a song will display whether I have already liked it, and if I click like again it will remove my like
- So that I can change my mind.
- Any display of a song will display whether I have already liked it, and if I click like again it will remove my like
- When I'm on the /, /songs, /songs/:id, or /users/:id/songs pages:
Playlists
Create playlists
- As a logged in user, I want to be able to create new playlists.
- When I'm on the playlists page:
- I can create a new playlist.
- I can organize my songs within a playlist in an order I choose.
- I can create a new playlist.
- When I'm on the playlists page:
View playlists
- As a logged in user, I want to be able to view my playlist.
- When I'm on the playlist page:
- I can view all playlists from the playlist page.
- I can see how many songs are in my playlist.
- I can view all playlists from the playlist page.
- When I'm on the playlist page:
Update playlists
- As a logged in user, I want to be able to update my playlists.
- When I'm on the /playlists/:id page:
- I can update the name of an individual playlist
- So that I can be more specific.
- I can update the name of an individual playlist
- When I'm on the /playlists/:id page:
Delete playlists
- As a logged in user, I want to be able to delete my playlists.
- When I'm on the /playlists/:id page:
- I can delete an individual playlist.
- Deleting my playlists would not delete the songs within the playlists.
- I can delete an individual playlist.
- When I'm on the /playlists/:id page:
User Pages
View User Page
- As a logged in user I want to be able to view my name background image and banner image on my user page.
- Other users will also have the ability to view my user page.
Update User Page
- As a logged in user I want to be able to edit my username and banner image/avatar image if I ever choose to do so.
- I can edit each of them individually.