User story - dalishuishou668/Klickr 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 landing page.
        • So that I can easily log out to keep my information secure.

Images

Create Images

  • As a logged in user, I want to be able to create new images.
    • When I'm on the /explore page:
      • I can create a new image by click the upload button in the right corner of the navbar.
        • So that I can share my images with my others.

Viewing Images

  • As a logged in user, I want to be able to view a selection of the images from the database.

    • When I'm on the /explore page:
      • I can view all images.
        • So that I can read and interact with the thoughts.
  • As a logged in user, I want to be able to view a specific image and its associated comments and favorites.

    • When I'm on the /images/:id page:
      • I can view the content of the image, as well as the associated image descriptions.
        • So that I can read and interact with the thoughts and add my own comments and favorites.

Updating Images

  • As a logged in user, I want to be able to edit my image by clicking an Edit button associated with the image.
    • When I'm on the /image/:id pages:
      • I can click "Edit" to make permanent changes to image I have posted.

Deleting Images

  • As a logged in user, I want to be able to delete my image by clicking a Delete button associated with the image.
    • When I'm on the /images/:id pages:
      • I can click "Delete" to permanently delete an image I have posted.

Albums

Create Albums

  • As a logged in user, I want to be able to create new albums.
    • When I'm on the /yourpage page:
      • I can create a new album by navigating to 'your album' section and click on add new album button.

Viewing Albums

  • As a logged in user, I want to be able to view all my albums.

    • When I'm on the /yourpage page:
      • I can view view all my albums by clicking the 'your album' button.
  • As a logged in user, I want to be able to view a specific album and its associated images.

    • When I'm on the /albums/:id page:
      • I can view the content of the album, as well as the associated images.

Updating Albums

  • As a logged in user, I want to be able to edit my album by clicking an Edit button associated with the album.
    • When I'm on the /albums/:id pages:
      • I can click "Edit" to make permanent changes to album I have created.

Deleting Albums

  • As a logged in user, I want to be able to delete my album by clicking a Delete button associated with the album.
    • When I'm on the /albums/:id pages:
      • I can click "Delete" to permanently delete an album I have posted.

Comments

Create Comments

  • As a logged in user, I want to be able to add comments.
    • When I'm on the /images/:id page:
      • I can create a new comment.

Viewing Comments

  • As a logged in user, I want to be able to view all comments of a single image.
    • When I'm on the /images/:id page:
      • I can view view all comments.

Updating Comments

  • As a logged in user, I want to be able to edit my comment by clicking an Edit button associated with the comment.
    • When I'm on the /images/:id pages:
      • I can click "Edit" to make permanent changes to comments I have created.

Deleting Comments

  • As a logged in user, I want to be able to delete my comment by clicking a Delete button associated with the comment.
    • When I'm on the /imagess/:id pages:
      • I can click "Delete" to permanently delete a comment I have posted.

Favorites

Add Favorites

  • As a logged in user, I want to be able to add favorites.
    • When I'm on the /images/:id page:
      • I can create a new comment.

Viewing Favorites

  • As a logged in user, I want to be able to view all my favorites and total favorites of a single image.
    • When I'm on the /your-favorite page:
      • I can view all my favorites.

Removing Favorites

  • As a logged in user, I want to be able to remove my favorite by clicking a favorite button associated with the image.
    • When I'm on the /images/:id pages:
      • I can click "unlike" to permanently remove the favorite I have posted.

Follows

Add Follows

  • As a logged in user, I want to be able to follow others.
    • When I'm on the /user/:userId page:
      • I can follow other person.

Viewing Follows

  • As a logged in user, I want to be able to view all my follows.
    • When I'm on the /home page:
      • I can view all my follows.

Unfollows

  • As a logged in user, I want to be able to unfollow by clicking unfollow button associated with the user profile.
    • When I'm on the /users/:id pages:
      • I can click "unlike" to permanently unfollow the person.

Search

  • As a logged in user, I want to be able to search my interested images in the database.
    • When I'm on the /search page:
      • I can search by image content which I'm interested in.
      • When I click an individual search result, it will direct me to that single image page.