Skip to content

User Stories

Nico G Pierson edited this page Aug 11, 2021 · 7 revisions

User Stories 📚

User Stories demonstrate the functionality of a feature from the perspective of a user, while the Acceptance Criteria defines our boundaries for each one.

User Stories
1. Sign Up
2. Demo User
3. Login
4. Logout
5. Profile
6. Following
7. Recipes
8. Feed
9. Likes
10. Comments
11. Search

Sign Up 🖌️

As an unauthorized user, I want to be able to create an account via a signup form to have full access to all the features of hotpotato.

Acceptance Criteria ✅

Given I am at a sign up form

  • with all these mandatory fields: First Name, Last Name, Email Address, Password, and Confirm Password
Success
Scenario: User enters valid data
When I enter valid inputs for all of the required fields
And I submit the form
Then the new user account will be created
And the user will be redirected to the user's feed
Failure 1
Scenario User enters existing email/username
When I fill out all form fields
And I enter an existing email or username
And I submit the form
Then an error message should appear "email or username field is already in use"
Failure 2
Scenario User enters non-matching passwords
When I fill out all form fields
And I enter a password doesn't match the confirm password
And I submit the form
Then an error message should appear "password field is not matching"
Failure 3
Scenario User enters a weak password
When I fill out all form fields
And I enter a password that doesn't meet the criteria, at least:
  • 8 characters long
  • one lowercase and uppercase alpha character
  • one number
  • one symbol
And I submit the form
Then an error message should appear "password is not strong because of certain criteria"

Demo User 👤

As a Demo User, I would like to have full access in order to see if hotpotato fits my needs and to quickly test all of the features.

Acceptance Criteria ✅

Given that I am at the home page

Success
Scenario: User signs in as Demo
When I press the Demo Login button
Then I will log in to a pre-seeded account
And I will be redirected to the user's feed
So That I will have full access to all features

Login 🔑

As user, I want to be able to login and access my account.

Acceptance Criteria ✅

Given that I'm at the login page:

  • with the mandatory fields: Email Address and Password
Success
Scenario: User enters a valid username and password
When I enter valid inputs
And I submit the form
Then I will be redirected to the users dashboard
Failure 1
Scenario User enters invalid email/username combination
When I fill out the form fields
And I enter an invalid username and/or password
And I submit the form
Then an error message should appear "Invalid Login. Please Try Again."
Failure 2
Scenario User enters a non-existent username/email
When I fill out the form fields
And I enter an invalid username and/or password
And I submit the form
Then an error message should appear "Invalid Login. Please Try Again."

Logout

As a logged-in user, I want to be able to end my session and log out of my account to protect my privacy and information when I am not using the application.

Acceptance Criteria ✅

Given that I'm logged in:

Success 1
Scenario: User is able to log out on any page
When I navigate to any page
And I press the Logout button
Then I will be logged out
And I will be redirected to the feed page

Profile 👤

As a logged-in user, I want to be able to access my recipes and view my followers.

Acceptance Criteria ✅

Given that I'm logged in:

Success 1
Scenario: Logged in User will have full CRUD access to recipes and comments.
When I navigate to any page
Then I will be able to see a create Recipe or Comment button
So That I can add my own Recipe or Comment
Success 2
Scenario: Logged in User will have full CRUD access to recipes and comments.
When I navigate to a recipe
Then I will be able to see an edit and delete Recipe or Comment button
So That I can edit and delete my own Recipes or Comment
Failure
Scenario: User can't edit, or delete Recipe or Comment that are not owned
When I navigate to another Recipe or Comment that I do not own
Then I will not see any of the buttons:
  • Edit
  • Delete

Given that I'm logged out:

Success
Scenario: Logged out User can't add, edit, or delete a Recipe or Comment
When I navigate to any page
Then I will be redirected Login or Signup page

Following

As a logged-in user, I want to be able to follow other users and have other users follow me.

Acceptance Criteria ✅

Given that I'm logged in:

Success 1
Scenario: User can follow other users
When a user follows me
Then I receive a notification
So That I know that I have a new follower
Success 2
Scenario: User can follow other users
When I follow a user
Then the follow button will noticeably change
So That I know I am following this user

Recipes 📝

As a logged-in user, I want to be able to add, edit, or delete a recipe.

Acceptance Criteria ✅

Given that I'm logged in:

  • And I'm on any page
Success 1
Scenario: User can add a Recipe
When I press the Add a Recipe
Then I will see a form with the fields:
  • title/name
  • description
Success 2
Scenario: User can delete a Recipe
When I press the Delete button on a Recipe
Then the Recipe will be deleted dynamically
Success 3
Scenario: User can edit a Recipe
When I press the Edit button on a Recipe
And Change the text
And I press Enter or Finish
Then the Recipe will be edited dynamically

Feed

As a logged in users, I want to be able to see the recipes of the people that I follow. As a logged out users, I want to be able to see the feed of recipes.

Acceptance Criteria ✅

Given that I'm at the feed page:

Success
Scenario: All Users can see the feed
When I first navigate to the home page
Then I will see the Feed page
So That I will be able see tiles of
  • Recipes

    Likes ❤️

    As a logged-in user, I want to be able to like recipes.

    Acceptance Criteria ✅

    Given that I'm a logged-in user:

    • And I'm at another user's recipe page
    Success 1
    Scenario: User can like a recipe
    When I press the Like button
    Then it will add to the recipe's likes count
    Success 2
    Scenario: User can unlike a recipe
    When I press the Unlike button
    Then it will subtract from the recipe's likes count

    Comments

    As a logged-in user, I want to be able to add, edit, or delete a comment.

    Acceptance Criteria ✅

    Given that I'm logged in:

    • And I'm on any recipe page
    Success 1
    Scenario: User can add a Comment
    When I press the Add a Comment
    Then I will see a form with the fields:
    • comment
    Success 2
    Scenario: User can delete a Comment
    When I press the Delete button on a Comment
    Then the Comment will be deleted dynamically
    Success 3
    Scenario: User can edit a Comment
    When I press the Edit button on a Comment
    And Change the text
    And I press Enter or Finish
    Then the Comment will be edited dynamically

    Bonuses 🏆

    Search 🔍

    As a user, I want to be able to search for other recipes.

    Acceptance Criteria ✅

    Given that I'm logged-in and/or logged-out:

    Scenario: All Users can search for a recipe
    When I click into the search bar
    And I will be able to see
    • Recipes
    • Tags
      Then I will hit enter
      And Be sent to another page with pertinent search results