This is an exercise to learn about how to create an application from scratch starting with the requirements, writing the full description and implementing it using TDD and BDD techniques.