User Stories - jrchew15/nah-sana GitHub Wiki

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-in 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 the splash page.

Profile View

  • As a logged in user, I want to be able to view my profile, as well as the profile of other users associated with me.
  • As a logged in user, I want to be able to edit the personal information on my profile.

Projects

Project Creation

  • As a logged in user, I want to be able to create a new project
    • When I’m on the /projects/new page:
      • I would like to enter my project name and default view for the project
    • When I enter invalid data on the new projects page:
      • I would like the website to inform me of the validations I failed to pass

Project Update

  • As a logged in user, I want to be able to update an existing project
    • When I’m on the /projects/:id page:
      • I would like to enter edit the project name and due date
    • When I enter invalid data on the new projects page:
      • I would like the website to inform me of the validations I failed to pass

Project Deletion

  • As a logged in user, I want to be able to delete an existing project, along with all tasks inside that project, when it is complete or no longer needed.
    • When I’m on a project page or on my profile page:
      • I can click a delete button and it will delete the project entirely.
      • The associated tasks should also be deleted.
      • I should only be able to delete projects that belong to me.

Project View

  • As a logged in user, I want to be able to view my projects and other existing projects that I have access to.
    • When I’m on a project page or on my profile page:
      • I can view projects that I have created or that I am associated with
    • When I click on a project:
      • I can view all the tasks that are associated with that project.
      • I can also view the members that are associated with the project.

Tasks

Task Creation

  • As a logged in user, I want to be able to create new tasks and assign them to a user in the current workspace
    • When I’m on a project page or a user’s profile page:
      • I want to see a button that will display a task creation modal

Task Update

  • As a logged in user, I want to be able to change the name, project(s), and description of a task anywhere it is visible

Task Deletion

  • As a logged in user, I want to be able to delete any one of my tasks by clicking the delete button associated with the task when the task is no longer needed.
    • When I am on a project page or a users’ profile page:
      • I can click "Delete" to permanently delete a task I have created or I am associated with.

Task View

  • As a logged in user, I want to be able to view the tasks I am associated with.
    • When I am on a project page or a user’s profile page:
      • I can view tasks that I am associated with in different sections.

Workspace

Workspace Add Users

  • As a member of a workspace, I want to be able to add collaborators from a workspace by entering their emails.
    • When the entered email is invalid, I would like the website to inform me.

Workspace View

  • As a member of a workspace, I want to be able to view the projects and tasks belonging to the workspace.
  • As a member of a workspace, I want to be able to view the collaborators associated with the workspace and their profiles.

Workspace Remove Users

  • As the organizer of a workspace, I want to be able to remove collaborators from a workspace when viewing their user page
  • As a collaborator of a workspace, I want to be able to remove myself from the workspace