User Stories - Katherin4u/PinThis GitHub Wiki

User Stories

Users

Sign Up

  • 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 PinThat posts.
        • So that I can easily log out to keep my information secure.

All Posts

Viewing all Posts

  • If the user is logged in or logged out, I want to be able to view a selection of the most recent PinThat posts.
    • when I'm on the main splash page I want to be able to see all of the posts that have been created.
    • I want to be able to interact with the posts and click on them.

Creating a Post

  • The user must be logged in the be able to create a post.
    • when I am on the /create-post page.
      • I can write a submit a new post , so people are able to view my interests.

Updating a Post

  • The user must be the owner of the post and the user must be logged in to be able to update the post.
    • when I am on the /edit-post page.
      • I want to be able to change the previous inputs to my new inputs and displays the new input after submitting.
        • my new edit should show in the /all-posts page with the changes.

Deleting a Post

  • the user must be the owner of the post to be able to delete the post.
    • I should not be able to see the post in the /all-post page after deleting it. *the deleting will be permanent and the user wont be able to see the post anymore.

Comments

viewing the comment

*users should be able to view the comment that was posted

  • I should be able to view the comment in the all comments section of the single post.

creating a comment

  • The user should be able to create a comment on other posts that are not theirs, user must also be logged in to access the create comment.
    • I should be able to comments my thoughts on a post and have everyone view my comment.

Updating a comment

  • The user must be the owner of the comment and must be logged in to be able to edit the comment.
    • I should be able to edit a comment if I have new thoughts on the post Id like to share.
      • the comment be able to be viewed by anyone.

Deleting a comment

  • The user must be the owner of the comment and should be logged in the be able to permanently delete the comment.
    • I should be able to delete the comment if I am the owner.
      • the comment should not show in the comment section of the post and other users shouldn't be able to view it.

Search

Get a search

  • The user is able to search for a specific post.
    • I should be able to find anything that had the search item in the posts title or description.

Post a search

  • The User should be able to search for what they are looking for.
    • I should be able to input a search.