User Stories - ericgeagan/git_r_done 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 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.

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

Tasks

Create Tasks

  • As a logged in user, I want to be able to post new Tasks with the appropriate details
    • When I'm on the /tasks/new page:
      • I can write and submit a new Task
        • So that I can keep track of what I need to do

Viewing Tasks

  • As a logged in user, I want to be able to view a list of uncompleted tasks with only basic information.
    • When I'm on the /tasks page:
      • I can view all uncompleted tasks.
        • So that I can view everything I need to do
  • As a logged in user, I want to be able to view a specific task and its details.
    • When I'm on the /tasks/:id page:
      • I can view the content of the Task, as well as its attributes.
        • So that I can view the expanded details of the specific task and edit it if need be

Updating Tasks

  • As a logged in user, I want to be able to edit my Tasks by clicking an Edit button associated with the Tasks anywhere that Tasks appears.
    • When I'm on the /tasks, /tasks/:id, /users/:id/tasks, or /lists/:listId/tasks pages:
      • I can click "Edit" to make permanent changes to Tasks I have posted.
        • So that I can fix any errors I make in my Tasks or update the timing.

Deleting Tasks

  • As a logged in user, I want to be able to delete my Tasks by clicking a Delete button associated with the Task anywhere that Task appears.
    • When I'm on the /tasks, /tasks/:id, or /users/:id/tasks, or /lists/:listId/tasks pages:
      • I can click "Delete" to permanently delete a Task I have posted.
        • So that when I no longer need a task or the task was one time use.

Lists

Create Lists

  • As a logged in user, I want to be able to post new Lists with the appropriate details
    • When I'm on the /lists/new page:
      • I can write and submit a new List
        • So that I can organize tasks to groups.

Viewing Lists

  • As a logged in user, I want to be able to view a list of uncompleted tasks.
    • When I'm on the /lists, /users/:userId/lists page:
      • I can view all uncompleted and completed lists.
        • So that I can view everything I need to do
  • As a logged in user, I want to be able to view a specific list and its details.
    • When I'm on the /lists/:listId page:
      • I can view the content of the List, as well as its attributes.
        • So that I can view the expanded details of the specific task and edit it if need be

Updating Lists

  • As a logged in user, I want to be able to edit my Lists by clicking an Edit button associated with the Lists anywhere that Lists appears.
    • When I'm on the /lists, /lists/:listId, or /users/:id/lists pages:
      • I can click "Edit" to make permanent changes to Lists I have posted.
        • So that I can fix any errors I make in my Lists or update the timing.

Deleting Lists

  • As a logged in user, I want to be able to delete my Lists by clicking a Delete button associated with the List anywhere that List appears.
    • When I'm on the /lists, /lists/:listId, or /users/:id/lists pages:
      • I can click "Delete" to permanently delete a List I have posted.
        • So that when I no longer need a List, I can get rid of it.

Tags (Bonus)

Create Tags

  • As a logged in user, I want to be able to create new tags with the appropriate details
    • When I'm on the /tags/new page and the /tasks page:
      • I can write and submit a new Tag
        • So that I can organize and additionally filter my tasks.

Viewing Tags

  • As a logged in user, I want to be able to view a list of existing tags on the left hand side.
    • When I'm on the /tasks page:
      • I can view all existing tags.
        • So that I can see my existing filters
  • As a logged in user, I want to be able to view a specific tag and its details.
    • When I'm on the /tags/:id page:
      • I can view the list of tasks that have this tag applied to it.
        • So that I can filter my tasks and view certain ones.

Updating Tags

  • As a logged in user, I want to be able to edit my Tags by clicking an Edit button associated with the Tag anywhere that Tag appears.
    • When I'm on the /tasks, /tags/:id, /users/:id/tags, or /tags/:tagId/tasks pages:
      • I can click "Edit" to make permanent changes to Tags I have posted.
        • So that I can fix any errors I make in my Tags or change its color.

Deleting Tags

  • As a logged in user, I want to be able to delete my Tags by clicking a Delete button associated with the Tag anywhere that Tag appears.
    • When I'm on the /tasks, /tags/:id, or /users/:id/tags, or /tags/:tagId/tasks pages:
      • I can click "Delete" to permanently delete a Tag I have posted.
        • So that when I no longer need a tag or the task was one time use, I can get rid of it.