Skip to content

User Stories

Meitong Qu edited this page Nov 16, 2021 · 5 revisions

User Stories Wiki Page

User Stories

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, preferred password, biography and upload profile picture 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.

Login

  • 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.
      • If I happen to login with and email or username that is not yet in the system, I will get an error message saying "this email does not exist"
      • If I happen to login with the wrong password, I will get an error message saying "Invalid password"

    Note: Logging in will use session based authentication

Demo User

  • As an unregistered and unauthorized user, I would like an easy to find 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 landing page /, which will have prompts for logging in.
        • So that I can easily log out to keep my information secure.

Create Recipes

  • As a logged in user, I want to be able to create new recipes.
    • When I'm on any page, I can click a button to access create recipe form:
      • I can write and submit a new recipe. /recipes/new_recipe

Create Comments

  • As a logged in user, I want to be able to create comments on recipes.
    • When I'm on the /recipes/:recipeId page:
      • I can click the 'Add Comment' button and add a comment.

Create Tags

  • As a logged in user, I want to be able to create new tags in my new recipe.
    • When I'm on the /recipes/new_recipe page:
      • I can add tags to a recipe to help users search tag categories

Search

  • As a logged in user, I want to be able to search through my recipes "name", "ingredients", and "tags".
    • When I'm on any page:
      • I can search for recipes.
        • I will be displayed with a dynamic search result per change of input

(Un)Check Recipe Like Button

  • As a logged in user, I want to be able click the like button on a recipe.
    • When I am on the /recipes/:recipeId:
      • I should be able to click a button/checkbox/cute heart to like the recipe.
      • If I have liked the recipe, I can click the same button to unlike the recipe. Note: This will be a joins table

Edit Recipes

  • As a logged in user, I want to be able to edit only my recipes.
    • When I am on the /my_plate page:
      • I can click the edit button that is next to the recipe I want to edit.
    • When I am on the /recipes/:recipeId page:
      • I can click on the edit button in the section I want to edit to dynamically edit single sections.

Edit Comments

  • As a logged in user, I want to be able to edit my comments on recipes.
    • When I am on the /recipes/edit/:recipeId page:
      • I will be prompted with a pre-filled edit form where I can edit recipes' introduction steps, ingredients, photo/video and tags

Delete Comments

  • As a logged in user, I want to be able to delete my comments on recipes.
    • When I am on the /recipes/:recipeId page, I can click on the delete button beside the comment I want to delete.

Delete Recipes

  • As a logged in user, I want to be able to delete my recipes.
    • When I am on the /my_plate page, I can click on the delete button beside the recipe I want to delete.

Clone this wiki locally