User Stories - miguelalvinflores/jazzify GitHub Wiki

User Stories

Users

Landing Page

  • As an unregistered and unauthorized user, I want to be able to log in, sign up, or become a guest user.
    • When I'm on the / page:
      • I would like to understand what the site is used for
        • ... via descriptive text
      • I would like to be able to access buttons for each redirection.
        • ... so that I can access the utility of the site

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, profile URL, 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 the forms I entered valid data into.

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 in 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 the forms I entered valid data into.

Guest 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 Guest 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 a page displaying recent DIY Products.
        • ... so that I can easily log out to keep my information secure.
        • Bonus: ... and receive a message that confirms I have been logged out.

Podify Tracks

Play Podify Tracks

As a logged-in user, I want to be able to view a selection of albums and recommended playlists.

  • When I'm on the /discover page:
    • I can view a list of albums.
      • ... so that I can choose what I want to listen to.
    • I can hover over the album cover to get a play button.
      • ... so that I can place that entire album or playlist as the currently playing queue.
  • As a logged-in user, I want to be able to listen to a specific song.
    • When I'm on the /album/:albumId page:
      • I can click on a specific track, and place it on the interactive player.

Searching Tracks/Albums

Search

  • As a logged-in user
    • While on any page
      • I can search videos using a search text field in the navbar
      • I can search by artist, song title, or album title
    • While on the /search page.
      • I can view a list of artists, songs, and albums that match my search criteria.
    • Bonus: Reactive search function that instantly displays matching videos upon changes in user input