A task manager written in Go using TDD techniques, each commit should represent a step in the application development.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 1b98bfd May 5, 2017
Failed to load latest commit information.
server license Aug 23, 2014
talk license Aug 23, 2014
task license Aug 23, 2014
todo license Aug 23, 2014
LICENSE license Aug 23, 2014
README.md Update README.md Jul 8, 2014



This application has been written for a talk on Go, TDD, and REST APIs.

The slides for the talk can be seen here.

TODO provides a simple task management application.

The purpose of this project is to show how some general techniques can be applied to Go code.

Test Driven Development

The task package has been implemented using TDD techniques, starting writing tests, seeing them failing, writing the code to make the test pass.

Once all tests pass the code is refactored.

Implementation of a REST API in Go

The server package handles requests on "/task/" providing a REST API.

This REST API is then exposed as a stand-alone http server and a Google App Engine app. Please take into account that the TaskManager is only in-memory at this point, which means that tasks are lost if the application is restarted.

Consuming a REST API with AngularJS

With a minimum of HTML, CSS, and AngularJS we create a UI for the REST API. The code is in the todo/static directory.