Skip to content

User Stories

Jeramie Forbes edited this page May 28, 2024 · 3 revisions

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, name, 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 modal:
      • 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 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 modals:
      • 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 landing page.
        • So that I can easily log out to keep my information secure.

Products

Create Expense

  • As a logged in user, I want to be able to create a new expense.
    • When I'm on the /:userId (with modal) page:
      • I can add a new expense between a friend or a group.
        • So that I can split expenses between my friend or group.

Viewing Expenses

  • As a logged in user, I want to be able to view all of my pending and settled expenses.

    • When I'm on the /:userId/all page:
      • I can view the ten most recently pending or settled expenses.
        • So that I can view my current and past expense history.
  • As a logged in user, I want to be able to view all of my pending expenses.

    • When I'm on the /:userId/dashboard or /:userId/friends/:friendId page:
      • I can view the ten most recent unsettled expenses whether I owe someone or they owe me.
        • So that I can view all my current unsettled expenses.
  • As a logged in user, I want to be able to view a specific expense and its associated friends, group, comments, notes, and amounts due.

    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId page:
      • I can view the details of the expense, as well as the associated friends, group, comments, notes, and amounts due.
        • So that I can see what I owe, what is owed to me, and have the ability to add comments to and edit the specified expenses (when expense is expanded).

Updating Expense

  • As a logged in user, I want to be able to edit my expenses by clicking an Edit button associated with the expense anywhere that expense appears.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId (click for modal) pages:
      • I can click "Edit expense" to make permanent changes to any expense I am associated with.
        • So that I can fix any errors in expenses I am associated with.

Deleting Expense

  • As a logged in user, I want to be able to delete any expense I'm associated with by clicking a X button associated with the expense anywhere that expense appears.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId pages:
    • I can click an X button associated with the expense to permanently delete that expense.
      • I will receive a confirmation modal asking if I am sure I want to delete the expense.
        • So if the expense was a mistake I don't have to pay it.

Comments

Create a Comment

  • As a logged in user associated to an expense, I want to be able to add comments to that expense.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId page:
      • I can add a new comment to a selected (dropdown appears) expense.
        • So I can give my thoughts to others involved with the selected expense.

Viewing Comments

  • As a logged in user, I want to be able to view all the comments associated with a selected expense.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId page:
      • I can view up to 5 comments at a time on the selected details dropdown
        • So that I can know the thoughts and ideas of everyone involved with the expense.

Updating Comments

  • As a logged in user, I want to be able to edit my comments by clicking on a pencil icon button associated with comment under the delete button.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId pages:
      • I can click the pencil icon button to make permanent changes to any comment I posted.
        • So that I can fix any errors in my comments.

Deleting Comments

  • As a logged in user, I want to be able to delete any comment I created by clicking a X button associated with the comment.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId pages:
    • I can click an X button associated with the comment to permanently delete that comment.
      • I will receive a confirmation modal asking if I am sure I want to delete the comment.
        • So if I shouldn't have publicly said something, I can easily remove it.

Payments

Create a payment

  • As a logged in user, I want to be able settle my expenses.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId (opens a modal) page:
      • I can pay expenses between a friend or a group, now or set for a future date.
        • So that I can pay off the friends I owe money to.

Viewing Payments

  • As a logged in user, I want to be able to view all of my past payments.
    • When I'm on the /:userId/friends/:friendId page:
      • I can view the ten most recently settled payments.
        • So that I can view all my past payments and payments sent to me.

Friends

Add a Friend

  • As a logged in user, I want to be able to add friends to my account.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId (opens a modal) page:
      • I can click the Invite Friends button, or add button on the Friends headliner.
        • I can add a friend to my friends list by entering their email.
        • So that All my friends and I can split expenses fairly.

View Friends

  • As a logged in user, I want to be able to view all of my friends names in a list.

    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId page:
      • I can view all my friends names with a scroll bar.
        • So that I can see a list of all my friends.
  • As a logged in user, I want to be able to view the details of expenses between each of my friends individually.

    • When I'm on the /:userId/friends/:friendId page:
      • I can view all expenses between me and my selected friend.
        • So I can see if either of us owe each other any money.

Delete Friends

  • As a logged in user, I want to be able to delete any any friend by clicking a X button next to their name.
    • When I'm on the /:userId/all, /:userId/dashboard, or /:userId/friends/:friendId (opens a model) pages:
    • I can click an X button associated with my friend to permanently delete that friend.
      • I will receive a confirmation modal asking if I am sure I want to delete my friend.
        • So if my friend never paid me, I no longer have to talk to them.

Clone this wiki locally