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 |
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.
- with all these mandatory fields: First Name, Last Name, Email Address, Password, and Confirm Password
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 |
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" |
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" |
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:
|
And | I submit the form |
Then | an error message should appear "password is not strong because of certain criteria" |
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.
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 |
As user, I want to be able to login and access my account.
- with the mandatory fields: Email Address and Password
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 |
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." |
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." |
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.
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 |
As a logged-in user, I want to be able to access my recipes and view my followers.
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
|
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
|
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:
|
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 |
As a logged-in user, I want to be able to follow other users and have other users follow me.
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 |
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 |
As a logged-in user, I want to be able to add, edit, or delete a recipe.
- And I'm on any page
Scenario: | User can add a Recipe
|
---|---|
When | I press the Add a Recipe
|
Then | I will see a form with the fields:
|
Scenario: | User can delete a Recipe
|
---|---|
When | I press the Delete button on a Recipe
|
Then | the Recipe will be deleted dynamically |
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 |
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.
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
|
As a logged-in user, I want to be able to like recipes.
- And I'm at another user's recipe page
Scenario: | User can like a recipe |
---|---|
When | I press the Like button |
Then | it will add to the recipe's likes count |
Scenario: | User can unlike a recipe |
---|---|
When | I press the Unlike button |
Then | it will subtract from the recipe's likes count |
As a logged-in user, I want to be able to add, edit, or delete a comment.
- And I'm on any recipe page
Scenario: | User can add a Comment
|
---|---|
When | I press the Add a Comment
|
Then | I will see a form with the fields:
|
Scenario: | User can delete a Comment
|
---|---|
When | I press the Delete button on a Comment
|
Then | the Comment will be deleted dynamically |
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 |
As a user, I want to be able to search for other recipes.
Scenario: | All Users can search for a recipe |
---|---|
When | I click into the search bar |
And | I will be able to see
|
Then | I will hit enter |
And | Be sent to another page with pertinent search results |