Before we dive too much into the Zombie.js world, we need to create a target for our tests, that is, a web application that provides a to-do list. This is the set of top-level requirements for such an application:
A user can sign up for the service for which he should provide an e-mail address as username and a password. By providing the username and the password, the user can create an authenticated session that will identify him throughout further interactions.
The user can create a to-do item.
The user can view a list of to-dos.
The user can remove a to-do item.
To implement this application we will use Node.js, a platform for building networking applications in JavaScript that Zombie.js also uses. We'll also use Flatiron, a set of components that will help you in building a web application on top of Node.js.