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