Skip to content

User Stories

Bryan Thompson edited this page Feb 25, 2024 · 9 revisions

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

Projects

Creating Projects

  • As a logged in user on any page, I can create a project by clicking the "Start a Project" link on the left of the top nav bar
    • On /projects/new page, I should see a form with fields for my project's title, subtitle, category, location, story, risks, a file upload for a image, a funding goal, and an end date
    • If there are errors, the form will give me error messages to let me know what needs to be addressed
    • On submitting the form, I'll be redirected to the new project's details page

Viewing Projects

  • From the landing page as a logged in or not user, I want to be able to view all of the projects.

    • When I'm on the /all page, I should see all of the projects
    • When I'm on a category's page, I should see all of the projects that belong to that category
  • From all projects or the category's projects, I can click on a project to get get the details of that project

    • When I'm on the /projects/:projectId page, I can view the details of the project as well as the associated comments, and a link to view rewards (if project owner) or to back the project to view rewards if not the owner.
    • As the project owner, I can see buttons to add or view rewards, and buttons to update or delete the project
    • As a logged in user, I can leave a comment
      • !!!BONUS!!! - As a logged in user who is not the owner, I can see buttons to like and unlike the project
  • As a logged in user, I should see a backed projects link in my user dropdown

    • On the /projects/backed-projects page, I should see a list of all the projects that I have backed
  • As a logged in user, I should see a created projects link in my user dropdown

    • On the /projects/created-projects page, I should see a list of all the projects that I have created

Updating Projects

  • As the owner of the project, I should see a button on the project's details page and on the /projects/created-projects page to update the project
    • On the /projects/:projectId/edit page, I should a pre-filled form with fields for my project's title, subtitle, category, location, story, risks, a file upload for a image, a funding goal, and an end date
    • If there are errors, the form will give me error messages to let me know what needs to be addressed
    • On submitting the form, I'll be redirected to the edited project's details page

Deleting Projects

  • As the owner of the project, I should a button on the project's details page and on the /projects/created-projects page to delete the project
    • When I click the delete project button, I will see a modal pop up asking me to confirm
    • When I click delete, I should redirect back to the /projects/created-projects page
    • When I click cancel, the model should close with no changes being made

Comments

Creating a Comment

  • As the logged in user, on the project detail's comments page, I should be able to click "Add Comment" and an add a textarea will appear
    • When I click Submit button, the textarea will be replaced with my new comment will be on the project's details page
    • If there are errors in the comment form, they will be displayed when I try to submit the comment, the form data will persist, but not submit
    • If I click cancel, it will disappear with no changes made
    • !!!BONUS!!! - Can only add comments if user is a backer of the project, or the project owner

Viewing Comments

  • As a user, logged in or not, I should be able to view the comments on a project's details page

Delete Comments

  • As the owner of the comment, I should be able to click a delete button and get a modal asking for confirmation
    • When I click delete, the comment should be removed and no longer on the project detail's page
    • When I click cancel, the model should close with no changes being made

Rewards

Create Rewards

  • As the project owner, on the project details rewards page, I should see a button to add rewards to that project
    • On the /projects/:projectId/rewards/new page, I should see a form with name, description, a file upload for an image, amount, estimated delivery date, and quantity available fields.
    • If there are errors, the form will give me error messages to let me know what needs to be addressed
    • On submitting the form, I'll be redirected to the new project's reward page, with new reward being displayed

Viewing Rewards

  • As any user, I should be able to view the project's rewards on the project rewards page
    • I can get there by clicking Back This Project if not the project owner, or View Rewards if I am the project owner

Updating Rewards

  • As the project owner, on the project details rewards page, I should see a button next to each reward to update that specific reward
    • On the /projects/:projectId/rewards/:rewardId/edit page, I should see a prepopulated form with name, description, a file upload for an image, amount, estimated delivery date, and quantity available fields filled out with current values.
    • If there are errors, the form will give me error messages to let me know what needs to be addressed
    • On submitting the form, I'll be redirected to the new project's reward page, with new reward being displayed

Delete Rewards

  • As the project owner, on the project details rewards page, I should see a button next to each reward to delete that specific reward
    • When I click the delete button, a modal should pop up asking for confirmation
    • When I click confirm, the reward should be removed and no longer on the project details reward's page
    • When I click cancel, the model should close with no changes being made

Backing Projects

Viewing Backed Projects

  • As a logged in user, I should see a backed projects link in my user dropdown

    • On the /projects/backed-projects page, I should see a list of all the projects that I have backed
  • As any user, I should see a count of the backers on that project's details page

Creating a Backing for a Project

  • As a logged in user, but not the owner, I should see a "Back This Project" button in the project stats, and the secondary sticky nav
    • When clicking the "Back This Project" button, I should be navigated to /projects/:projectId/rewards
    • From there I can pick the reward level I want to back the project at
    • When I click the "Pledge" button, a modal will pop up, asking for confirmation
      • When I confirm, this project will be added to my backed projects, and I will be redirected to the project
      • When I cancel, the model should close with no changes being made

BONUS Updated a Backing for a Project

  • As a backer for a project, I should see a "Update My Pledge" button on a project's details page
    • When I click "Update My Pledge", I should be navigated to the projects details rewards page
      • When I click on the specific reward's "Pledge" button, a modal will pop up asking for confirmation to Update Pledge
        • When I confirm, my backing level will be updated, and I will be redirected to the project
        • When I cancel, the model should close with no changes being made

Delete a Backing for a Project

  • As a backer for a project, I should see a "Delete My Pledge" button on the /projects/backed-projects page for each project listed
    • When I click "Delete My Pledge", a modal will pop up asking for confirmation to Delete My Pledge
      • When I confirm, my backing will be deleted, and I will still on the backed projects page with the project gone
      • When I cancel, the model should close with no changes being made