User Stories - ryangoggin/Goggbook 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 log-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 the /login page:
      • 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 the login splash page.
        • So that I can easily log out to keep my information secure.

Posts

Create Post

  • As a logged in user, I want to be able to post new Posts.
    • When I'm on the / page or my profile page '/:currentUserId':
      • I can open and close the new Post modal to create a new Post.
        • So that I can share my thoughts with my friends.

Viewing Posts

  • As a logged in user, I want to be able to view all Posts from myself and my friends.

    • When I'm on the / page or a user's profile page '/:userId':
      • I can view all my and my friends' posts starting from the most recent at the top.
        • So that I can read and interact with the thoughts of my friends.
  • As a logged in user, I want to be able to view a specific post's associated Comments and Likes.

    • When I'm on the / page or a user's profile page '/:userId':
      • I can view the content of each Post in the feed, as well as the associated Comments and Likes.
        • So that I can read and interact with the thoughts of my friends, and support their thoughts with my Like and add my own thoughts in the Comments.

Updating Posts

  • As a logged in user, I want to be able to edit my Posts by clicking an Edit button associated with the Post in the feed.
    • When I'm on the / page or my profile page '/:currentUserId':
      • I can click "Edit" to make permanent changes to Posts I have posted.
        • So that I can fix any errors I make in my Posts.

Deleting Posts

  • As a logged in user, I want to be able to delete my Posts by clicking a Delete button associated with the Post anywhere that Post appears.
    • When I'm on the / page or my profile page '/:currentUserId':
      • I can click "Delete" to permanently delete a Post I have posted.
        • So that when I realize I shouldn't have publicly said something, I can easily remove it.

Comments

Create Comment

  • As a logged in user, I want to be able to post new Comments on Posts I see.
    • When I'm on the / page or a user's profile page '/:userId':
      • I can fill out the new Comment form at the bottom of the associated Post to create a new Comment.
        • So that I can share my thoughts with my friends.

Viewing Comments

  • As a logged in user, I want to be able to view all Comments from myself and my friends on Posts I can see.
    • When I'm on the / page or a user's profile page '/:userId':
      • I can view all my and my friends' Comments on their associated Posts.
        • So that I can read and interact with the thoughts of my friends.

Updating Comments

  • As a logged in user, I want to be able to edit my Comments by clicking an Edit button associated with the Comment in the feed.
    • When I'm on the / page or a user's profile page '/:userId':
      • I can click "Edit" to make permanent changes to Comments I have posted.
        • So that I can fix any errors I make in my Comments.

Deleting Comments

  • As a logged in user, I want to be able to delete my Comments by clicking a Delete button associated with the Comment anywhere that Comment appears.
    • When I'm on the / page or a user's profile page '/:userId':
      • I can click "Delete" to permanently delete a Comment I have posted.
        • So that when I realize I shouldn't have publicly said something, I can easily remove it.