TODO List Kata

TODO list applications are quite popular these days. They help you get organized. Today you will write your own one. This Kata is divided into two parts. First do the base feature part without even looking at the additional features. Once the foundation is ready then move forward to the list of features.

Focus on developing one feature at a time and commit every time it's done.

Base features

The objective is to write a piece of code that will be capable of:

  • Formatting the list of tasks
  • Creating a new task
  • Mark a task as done
  • Unmark a task as not done
  • Delete a task

To be clear at this point neither persisting between subsequent program runs nor UI is required. Just the working engine.

Extended features

Now you've the basics done, it should be easy to extend to the following features.

  • Edit a task
  • Have multiple todo's list
  • Add #hashtags + ability to search by them
  • Add due dates + sorting by them
  • Add priorities to tasks
  • Add 'Agenda for today' feature.
  • Add 'Agenda for specified day' feature.

... (Ask for more ;)

After implementing a few features you may find that there are also ones that are missing for that product to be usable. That is intentional. Feel free to add them when needed.