Skip to content

User Stories

rzh150030 edited this page May 27, 2021 · 25 revisions

Users

Sign up

  • As an unregistered/unauthorized user I want to be able to sign up for the website through a signup form.
  • When I'm on the /signup page
  • I would like to enter username, email, preferred password, and confirm whether I am a professional or regular user
  • I would like to have a checkbox to confirm that I am a professional user.
  • I would like 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.
  • When my password field does not match confirm password field
  • I would like the website to inform me that the passwords do not match and force me to refill both password and confirm password

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 am on the /login page:
  • If I am not registered I would like to see a button that redirects me to the /signup 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 login form
  • So that I can seamlessly access the site's functionality
  • When I am logged in as a regular user, I would like to be directed to my profile page that has a list of my questions that I can either edit or delete as well as the given answers to my questions
  • When I am logged in as a professional user, I would like to be directed to my profile page that has a list of my questions that I can either edit or delete, my answers that I can either edit or delete and the given answers to questions that I have asked
  • When I try to enter the wrong password
  • Then the top of the form will show a message "Invalid Login information. Please try again."
  • When I try to log in with an email that is not registered
  • Then the top of the form will show a message "Invalid Login information. Please try again."

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 be able 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 recently asked questions
  • So that I can easily log out to keep my information secure.

Ask questions

  • As an unauthorized user I cannot ask questions.
  • I can view a sampling of the most recent questions
  • When I try to ask questions I will be directed to the /login page
  • As an authorized user, I would like to be able to ask questions
  • With an "Ask Question" button that will redirect me to a /questions-ask page with a form that includes a title field, body text area, tags field, and a submit button.
  • When I click the submit, I receive an alert asking if I'm sure I want to submit in the form of a yes or no question
  • When I submit the question, my name would appear next to the question
  • So that users will know who asked the question
  • As an authorized user, I would like to be able to edit my questions:
  • When I click the edit button, I will be redirected to the question form with my question already populated
  • As an authorized professional user, I would like to be able to delete my questions:
  • When I click the delete button, it will remove my question from the database

Answer Questions

  • As an authorized professional user, I have the permission to answer any questions
  • I would like to answer questions in the "Your Answer" text area with a "Post Your Answer" button
  • When I click the "Post Your Answer" button, I would like my answer to appear
  • As an authorized professional user, I can delete my answers
  • When I click the "Delete" button, I will be able to remove my answer from the database
  • As an authorized user, professional or regular, I would like to comment on answers to questions:
  • I would like a comment field with a "Write your comment here" placeholder inside it with a "Submit Comment" button inside the answers box
  • When I click the "Submit Comment" button, I would like my comment to appear
  • If I have an empty message after submitting my comment, I would like a pop-up or an error to indicate that I need to fill out the comment
  • I would like to add as many comments as I want
  • As an unauthorized User, I am unable to answer questions and make comments to the answers
  • If I click on the "Submit Button" , I will be directed to the log in page
  • As an authorized regular user, I won't be able to answer questions
  • If I click on the "Answer" button, an alert will pop up

Upvote/Downvote

  • As an authorized professional user, I can upvote or downvote any question or answer.
  • When I click an upvote button I will see the vote total change by +1
  • When I click the downvote button I will see the vote total change by -1
  • Whichever button I click will be visually indicated.
  • As an unauthorized user, I can't upvote or downvote questions or answers.
  • When I try to click the up or downvote button it will redirect me to the log-in page.

Search for Questions

  • As any user, I can search for questions in the search bar
  • When I search for a question using a word or words that match any word or words in a question:
  • I will see a result of questions that contains the searched words or word in the order of most recently posted
  • When I search for a question using words that are not contained in any of the questions in the database:
  • I will see a result that informs me that a question could not be found and a button that prompts me to ask my question

Bonus

  • As the user that asked a question, I want to be able to select an answer that helped me best
  • When I select an answer it will appear as the first answer for the question and be highlighted
  • As any authorized professional user I can upvote downvote the other professional users
  • As a professional user I can add gild to a answer to add flair which gives it priority in the list of answers
  • When I try to gild an answer I will be redirected to a page that lets you purchase gilds.
  • As a professional user I can earn gild with upvotes
  • 1000 upvotes will be worth 1 free guild
Clone this wiki locally