Skip to content

User Stories

Christian Pettet edited this page Apr 26, 2021 · 2 revisions

Users' Stories

Registering for Website

  • 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 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.

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.

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 a page displaying recent recipes/posts.
        • So that I can easily log out to keep my information secure.

Recipes/Stories

Create Recipes/Stories

  • As a logged in user, I want to be able to post new recipes/stories.
    • When I'm on the /new-post page:
      • option buttons for recipe/story
        • conditionally render HTML page (set inputs to hidden)
        • based on selection, insert into database
      • I can write and submit a new recipe/story.
        • isPublic - boolean in sequelize
        • So that I can share my thoughts and memes with my friends and strangers.

Viewing Recipes/Stories

  • As a logged in or logged out user, I want to be able to view a selection (public or private based on isPublic field) of the most recent recipes/posts.

    • When I'm on the /recipes/stories page:
      • I can view the ten most recently posted recipes/posts.
        • So that I can read recipes/posts/comments of my friends.
  • As a logged in or logged out user, I want to be able to view a specific story/recipe and its associated comments and likes.

    • When I'm on the /recipes/:id page:
      • I can view the content of the story/recipe, as well as the associated comments and likes.
        • So that I can read recipes/posts/comments of my friends.

Updating recipes/posts

  • As a logged in user, I want to be able to edit my recipes/stories by clicking an Edit button associated with the recipe/story anywhere that recipe/story appears.
    • When I'm on the /recipes/, /recipes/:recipeid, or /users/:userid/recipes/:recipeid pages:
      • I can click "Edit" to make permanent changes to recipes/posts I have posted.
        • So that I can fix any errors I make in my recipes/posts.
      • If on unowned recipe, cannot edit.

Deleting recipes/posts

  • As a logged in user, I want to be able to delete my recipes/posts by clicking a Delete button associated with the recipes/posts anywhere that recipes/posts appears.
    • When I'm on the /recipes/, /recipes/:recipeid, or /users/:userid/recipes/:recipeid pages:
      • I can click "Delete" to permanently delete a recipe/story I have posted.
        • So that when I realize I shouldn't have publicly said something, I can easily remove it.

BONUSES

Tags

  • As a logged-in user, I can create new tags and add tags to recipes/posts text fields.
    • I can build out tags in the create post using a text field.
    • I can use any previously constructed tags for my post.
  • As a logged-in user, I can follow specific tags for my homepage.
  • As any user, I can see the tags added to recipes/posts from the homepage.
    • If I click on a tag, I see recent posts associated with that tag.
      • I can choose to follow the tag by clicking the "Follow #{tag}" button.

Allow Authors to Allow Comments/Likes

  • As a logged-in user, I can allow other users to comment and like/emoji my recipe/story.
    • I can click the checkbox/select/option buttons for each option. It is stored as a boolean in SQL.
    • I can retroactively disable comments/likes/emojis upon editing a post.
  • As a logged-in user, I can view a greyed-out comment box with the text "comments are disabled".
  • As a logged-in user, I can view a greyed-out like/emoji box with the text "likes and emojis are disabled".

Allow Authors to Delete Comments on Their posts

  • As a logged-in user, I can delete other users' comments on my recipe/story.
    • For each comment, there's a red 'x' to delete the specific comment.
    • There's a checkbox to select all comments and a button to delete all comments.

Allow Authors to Specify Location on GMaps

  • As a logged-in user/author, I can specify a location for my story.

Allow Authors to Specify Location on Yelp

  • As a logged-in user/author, I can link the location's Yelp location/page.