Skip to content

User Stories

Nico G Pierson edited this page Aug 25, 2021 · 1 revision

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. Cities
7. Insights
8. Helpfuls

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

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 profile
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 YourCity 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 profile
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 profile
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 splash page

Profile 👤

As a logged-in user, I want to be able to access my profile and view my insights and cities that I created.

Acceptance Criteria ✅

Given that I'm logged in:

Success 1
Scenario: Logged in User can Add, Edit, Delete Cities and Insights.
When I navigate to any page
Then I will be able to see a create City or Insight button
So That I can add my own City or Insight
Success 2
Scenario: Logged in User can Edit and Delete their own Profile.
When I navigate to my profile page
Then I will be able to see an edit and delete Profile button
So That I can edit and delete my own Profile
Failure
Scenario: User can't edit, or delete City or Insight that are not owned
When I navigate to another City or Insight that I do not own
Then I see any of the buttons:
  • Edit
  • Delete
So That only owners can have the ability to Add, Delete and Edit

Given that I'm logged out:

Success
Scenario: Logged out User can't edit, or delete a Profile
When I navigate to a profile page
Then I will not see Edit or Delete buttons on a profile page

Cities

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

Acceptance Criteria ✅

Given that I'm logged in:

  • And I'm on any page
Success 1
Scenario: User can add City
When I press the Add City
Then I will see a form with the fields:
  • name
  • state
  • thumbnail_img
  • description
So That I can add a new city
Success 2
Scenario: User can delete a City
When I press the Delete button on a City
Then the City will be deleted dynamically
So That I can remove any mistakes
Success 3
Scenario: User can edit a City
When I press the Edit button on a City
And make changes to the text
And I press Save
Then the City will be edited dynamically
So That I can modify and City with mistakes

Insights

As a logged out user, I want to view an insight.

Given that I'm logged out:

Success
Scenario: User can view Insights
When I navigate to a city page
Then I will be able to view all the insights
So That I can be informed about that city

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

Acceptance Criteria ✅

Given that I'm logged in and I own the Insight:

  • And I'm on any city page
Success 1
Scenario: User can add Insight
When I press the Add Insight button
Then I will see a form with the fields:
  • add insight...
So That I can provide my insight on a city
Success 2
Scenario: User can delete Insight
When I press the Delete button for an Insight
Then the Insight will be deleted dynamically
So That I can remove any Insight I added by mistake
Success 3
Scenario: User can edit Insight
When I press the Edit button on an Insight
And make changes to the text
And I press Save
Then the Insight will be edited dynamically
So That I can modify any Insight I have already created

Helpfuls

As a logged-in user, I want to be able to identify insights that are helpful.

Acceptance Criteria ✅

Given that I'm a logged in user:

  • And I'm on a City page with Insights
Success 1
Scenario: User can add a Helpful to an Insight
When I press the Helpful button
Then it will increase the Helpful icon by one
So That I identify the most helpful insights
Success 2
Scenario: User can remove Helpful
When I press the Helpful button
Then it will decrement the Helpful icon by one
So That I can modify any mistakes I made about helpful insights