Test-Driven Development Lab: Build a To-Do API

Solution Overview

Learning Test-Driven Development (TDD) requires putting the technical concepts into practice. This lab provides a framework for you to build a full application using TDD. You will build a To-Do List application that is implemented as a RESTful service, with To-Do items persisting in a local database. The documentation provided will walk you through implementing the first two features of the application starting from a User Acceptance Test (UAT) and emerging into a multi-layer architecture that separates the various application concerns.

This lab is intended to be the conclusion of a series of labs that teach the concepts of TDD. If you have not yet worked through the other labs in the series, that would be a good place to start, however, it is not absolutely necessary. This lab will touch on the high-level concepts of TDD as you put them into practice.

Working through the documentation will leave you with two fully implemented features, and a series of requirements that are necessary to complete the application. You may finish as many of the remaining application features as you'd like in order to practice TDD on your own or add your own features if you wish. You have full access to update the application, including the database schema, as you see fit.


This lab requires a working knowledge of JavaScript (specifically ECMA Script 6) syntax. It can be launched by anyone who is interested in the content of the lab, however, it may be challenging to get the tests to pass without some prior debugging experience. There are a few key points in the lab where more complete code blocks are provided that should get you back on track if things are not working as expected.

Lab Diagram