User Stories - dech0n/hobby-hub GitHub Wiki

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 use a form to sign up for an account using an email address, username and password.
      • Upon successful form submission I'd like to be logged in to the site and redirected to the homepage.
    • When I enter invalid data on the sign-up form
      • I would like to be informed of what data was incorrect and repopulate my form with the valid data I've already entered (Not the password).
        • So that I can try again without having to re-enter all of the data.

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 username and password into a form.
      • I would like to be redirected to the homepage upon successful submission of the log-in form.
        • So that I can continue my search for a new hobby.
    • When I enter invalid data on the log-in form:
      • I would like to be notified of what data was invalid and I want the form to repopulate the valid data I've already entered (Not the password).
        • So that I don't have to re-enter things that were correct.

Log Out

  • As a registered and authorized user I want to be able to log out of the website via a button in the navbar.
    • While on any page of the site:
      • I would like to be able to click a button to log out and be redirected to the homepage.
        • So that I can protect my privacy and keep my information secure.

Demo User

  • As an unregistered and unauthorized user I would like to easily find a button in the navbar to allow me to visit the site as a guest without signing up or logging in.
    • While on any page of the site:
      • I can click on Demo User button to log in and access the site as a normal user.
        • So that I can test the site without entering any credentials.

Status

Setting a status

  • As a registered and authorized user I would like to be able to add a hobby to my Wheelhouse via a corresponding status in a dropdown menu.
    • While viewing a hobby on any page of the site:
      • I would like to select an option from a status dropdown menu that will add my hobby to that category of my wheelhouse.
        • So that I can keep track of hobbies that I want to learn, am currently learning or have mastered.

Wheelhouse

Create: Adding Hobbies to the Wheelhouse

  • As a logged in user, I want to be able to choose an existing hobby from a dropdown to add to my wheelhouse.
    • When I'm on the /wheelhouse page:
      • I can click on the dropdown of existing hobbies.
        • So that I can add a hobby to any of my wheelhouse statuses.

Read: Viewing Hobbies in Wheelhouse

  • As a logged in user, I want to be able to view the lists of hobbies in my Wheelhouse with the statuses "Want to Learn", "Currently Learning", and "Accomplished".
    • When I'm on the /wheelhouse page:
      • I can click the desired status to pull up the the list of hobbies under that status.
        • So that I can view all the hobbies that I have added to that status.

Update: Editing Hobbies in Wheelhouse

  • As a logged in user, I want to be able to update the statuses of hobbies in my wheelhouse.
    • When I'm viewing my list of hobbies on the /wheelhouse page:
      • I can click "Edit".
        • So that I can change the status the hobby is in.

Delete: Deleting Hobbies in Wheelhouse

  • As a logged in user, I want to be able to delete the desired hobby from my wheelhouse.
    • When I'm viewing my list of hobbies on the /wheelhouse page:
      • I can click "Delete" to delete the specified hobby off of my Wheelhouse.
        • So that if I no longer want to learn the hobby, I can easily remove it from my Wheelhouse.

Hobbies

Create Hobbies

  • As a logged in user, I want to be able to create new hobbies.
  • When I'm on the /new-hobby page: I can create and submit a new Hobby.
    • So that I can share my hobbies with other users.

Viewing Hobbies

  • As a logged in or logged out user, I want to be able to view a selection of Hobbies. When I'm on the /hobbies page:
  • I can view my hobbies
    • So that I can read and interact with my experiences and the comments of other users.
  • As a logged in or logged out user, I want to be able to view a specific Hobby and its associated Experiences and Comments.
  • When I'm on the /hobbies/:id page:
  • I can view the content of the Hobby, as well as the associated Experiences and Comments.
    • So that I can read and interact with my experiences and the comments of other users

Updating Hobbies

  • As a logged in user, I want to be able to edit my Hobbies by clicking an Edit button associated with the Hobby anywhere that Hobby appears.
    • When I'm on the /hobbies, /hobbies/:id, or /users/:id/hobbies pages:
      • So that I can edit the details of my hobby and fix any errors I make

Deleting Hobbies

  • As a logged in user, I want to be able to be able to remove my Hobbies by clicking a Delete button associated with the Hobby anywhere that Hobby appears
  • When I'm on the /hobbies, /hobbies/:id, or /users/:id/hobbies pages:
    • I can click "Delete" to permanently delete a Hobby that I created
      • So that I can remove a Hobby I no longer want

Experiences

As a logged in user, I want to share my experience with a given hobby. I want to be able to quickly and easily write and post a review so that I can explain my level of satisfaction with my selected hobby. The review I create should be able to be viewed by other users so that they can make a more informed decision about the use of their valuable time in pursuit of a particular hobby. I should also be able to edit or delete any reviews that I post because circumstances might change regarding a particular hobby that I have experienced.

Adding an Experience

  • As a logged in user, I want to share my experience with a given hobby.
    • When I'm adding an Experience on the insert-path-here page:
      • I want to be able to quickly and easily write and post a review so that I can explain my level of satisfaction with my selected hobby.
      • The review I create should be able to be viewed by other users so that they can make a more informed decision about the use of their valuable time in pursuit of a particular hobby.
    • When I enter invalid data on the Experience creation form (invalid length etc.)
      • I would like to be advised that the information is invalid
      • I would like to be brought back to the form so that the information can be corrected.

Reading an Experience

  • As a logged in or logged out user, I want to be able to read Experiences from other users on any given hobby page.
    • When I'm on a specified /hobby page:
      • I want to be able to view all Experiences left by users on that specified hobby.

Updating an Experience

  • As a logged in user, I want to be able to update any of my posted Experiences by clicking an "Edit" button associated with the Experience.
    • When I'm on a specified /hobby page:
      • I can click the "Edit" button associated with an Experience I wrote to be able to edit that Experience left on the specified hobby.

Deleting an Experience

  • As a logged in user, I want to be able to delete any of my posted Experiences by clicking a "Delete" button associated with the Experience.
    • When I'm on a specified /hobby page:
      • I can click the "Delete" button associated with an Experience I wrote to be able to delete that Experience entirely.