Application Specification

The TODO Application

You’re creating a simple TODO application, it has the following requirements

A TODO note is by default associated with the creator of the Note, they become the creator and are responsible for completing the TODO

An anonymous TODO note is one that is not assigned to anyone but the Note is still associated with the creator of the Note

A registered user can associate anonymous TODOs to themselves or other users

A user can have zero or more TODOs

Each TODO is linked to a creation date and time

TODOs can have an optional expiration date

TODOs have three states

  • Active; the initial state after creation

  • Done; the final state once a TODO has been cleared

  • Overdue; the TODO has past is expiration date

A TODO can be deleted whilst in the Active or Overdue states but not in the Done state.  This is to ensure there is a record of completed TODOs

User Stories

As an unregistered User I want to create a TODO Note to help keep track of things I need to do

As a registered user I want to create a TODO Note to help keep track of things I need to do

As a registered user I want to create a TODO Note with an expiration date to help keep me keep track of things I need to do with a sense of sense of urgency

As a registered user I want to delete a TODO Note before it is marked as Done so that I don’t waste time doing activities that are no longer needed

As a registered user I want to register users so that TODOs are associated with a user, this is to ensure that someone is accountable for the TODO Note

As I registered user I want to be able to edit the content of a TODO Note and its expiration date, so that the TODO Note is always relevant

As a registered user I only want to see TODO Notes associated with me so that I can focus on the things I need to do

As a registered user I want to see the anonymous TODOs so that I can take on an open TODO

As a registered user I want to be able to associate an anonymous TODO to another user including myself so that TODOs can be accounted for

As an unregistered user I want to become a registered user so that as a registered user I can create TODO Notes