Skip to content

User Stories

Tyler edited this page Sep 17, 2024 · 1 revision

User Authentication

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, username, and password.
    • I would like the website to log me in once the form is successfully submitted.
      • So that I can seamlessly transition from being unregistered to using the site.

When I enter invalid data on the sign-up form:

  • I would like the website to notify me of my failed validations.
    • I would like the form fields to repopulate with my valid entries (except for password fields).
      • So that I can resubmit without having to fill in every field again.

Log in

As a registered and unregistered 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 username or email and password.
    • I would like the site to log me in upon successful completion of the log-in form.
      • So that I can use and browse the site.

When I enter invalid data on the log-in form:

  • I would like the site to notify me of my failed validations
    • I would like the form fields to repopulate with my valid entries (except for the password fields)
      • So that I can re-login without having to fill in every field again.

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.

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 the splash page.
    • So that I can easily log out to keep my information secure.

Songs

Add a Song

As a logged-in user, I want to be able to add or upload a new song to the platform.

  • I would like to be able to enter details such as the song title, artist, and upload the song file.
    • I would like the platform to confirm that the song has been successfully uploaded.
      • So that I can share my music with others.

View All Songs By an Artist

As a logged-in user, I want to view a list of all songs by a specific artist.

  • I would like to see a list of all songs available the artist.
    • I would like to be able to click on a song to view more details or play it.
      • So that I can easily find and listen to music I'm interested in.

View/Play a Song

As a logged-in user, I want to view or play a specific song.

  • I would like to see details about the song, such as title and artist.
    • I would like to play the song from this page.
      • So that I can enjoy my favorite tracks whenever I want.

Edit a Song's Title, Release Date, etc.

As a logged-in user, I want to edit details such as the title or release date of a song.

  • I would like to modify the song's title, release date, and other details.
    • I would like the platform to save my changes and confirm the update.
      • So that the song information remains accurate and up-to-date.

Delete a Song

As a logged-in user, I want to delete a song if it is no longer needed.

  • I would like to select a song and delete it from the platform.
    • I would like the platform to confirm that the song has been successfully deleted.
      • So that my music library remains organized.

Albums

Create an Album

As a logged-in user, I want to create a new album.

  • I would like to enter details such as the album title, release date, and add songs to it.
    • I would like the platform to confirm that the album has been successfully created.
      • So that I can organize my songs into collections and share them with others.

View All Albums by an Artist

As a logged-in user, I want to view a list of all albums by a specific artist.

  • I would like to see a list of all albums by the artist.
    • I would like to be able to click on an album to view more details or play it.
      • So that I can explore the artist's discography more easily.

View/Play an Album

As a logged-in user, I want to view and play a specific album.

  • I would like to see details about the album, including a list of songs.
    • I would like to play the album or individual songs from this page.
      • So that I can listen to a collection of songs by the artist in one go.

Edit an Album

As a logged-in user, I want to edit details such as the title or release date of an album.

  • I would like to modify the album's title, release date, and/or other details.
    • I would like the platform to save my changes and confirm the update.
      • So that the album information remains current and accurate.

Delete an Album

As a logged-in user, I want to delete an album if it is no longer needed.

  • I would like to select an album and delete it from the platform.
    • I would like the platform to confirm that the album has been successfully deleted.
      • So that my album collection stays organized.

Playlists

Create a Playlist

As a logged-in user, I want to create a new playlist.

  • I would like to enter details such as the playlist name and description.
    • I would like the platform to confirm that the playlist has been successfully created.
      • So that I can organize my favorite songs into custom collections.

Add Songs to a Playlist

As a logged-in user, I want to add songs to a playlist.

  • I would like to select songs and add them to a specific playlist.
    • I would like the platform to confirm that the songs have been successfully added.
      • So that I can enjoy a curated selection of tracks.

Remove Songs from a Playlist

As a logged-in user, I want to remove songs from a playlist.

  • I would like to select songs and remove them from the playlist.
    • I would like the platform to confirm that the songs have been successfully removed.
      • So that my playlist remains up-to-date with my current preferences.

Edit a Playlist's Name or Description

As a logged-in user, I want to edit a playlist's name or description.

  • I would like to modify the playlist's name or description.
    • I would like the platform to save my changes and confirm the update.
      • So that the playlist accurately reflects its content or purpose.

View a Playlist

As a logged-in user, I want to view and play a playlist.

  • I would like to see details about the playlist, including a list of songs.
    • I would like to play the playlist or individual songs from this page.
      • So that I can enjoy a set of songs I've organized into a custom collection.

Delete a Playlist

As a logged-in user, I want to delete a playlist if it's no longer needed.

  • I would like to select a playlist and delete it from the platform.
    • I would like the platform to confirm that the playlist has been successfully deleted.
      • So that my playlist library remains uncluttered.

Likes

Like a Song

As a logged-in user, I want to like a song.

  • I would like to click a "like" button to mark the song as liked.
    • I would like the platform to confirm that the song has been successfully liked.
      • So that I can easily find and revisit my favorite tracks later.

Unlike a Song

As a logged-in user, I want to unlike a song if my preference changes.

  • I would like to click the "like" button on an already-liked song to remove the song from my liked list.
    • I would like the platform to confirm that the song has been successfully unliked.
      • So that my liked songs list remains relevant to my current tastes.

View/Play All Liked Songs

As a logged-in user, I want to view and play all the songs I've liked.

  • I would like to see a list of all songs I've liked.
    • I would like to play any song from this list.
      • So that I can enjoy a curated selection of my favorite tracks.