Centrally managed todo lists for complex processes - onboarding, offboarding, management changes, etc.
JavaScript CSS HTML Shell
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information.
.circleci Remove inaccurate comments; name deploy. Sep 7, 2017
api Govcloud migration (#140) Feb 27, 2017
checklists Corrected broken link to developer guide Sep 21, 2017
lib Govcloud migration (#140) Feb 27, 2017
manifests Govcloud migration (#140) Feb 27, 2017
private Preview checklist (#84) Jun 8, 2016
public specify angular-aria and -messages versions Mar 10, 2017
scripts Use airbnb-base eslint config (#90) Jul 15, 2016
spec Govcloud migration (#140) Feb 27, 2017
views change 'Tasks' to 'My Tasks' (#135) Dec 29, 2016
.bowerrc removed phantom, got karma running with istanbul Jan 20, 2016
.cfignore Govcloud migration (#140) Feb 27, 2017
.eslintignore Use airbnb-base eslint config (#90) Jul 15, 2016
.eslintrc Use airbnb-base eslint config (#90) Jul 15, 2016
.gitignore Govcloud migration (#140) Feb 27, 2017
.istanbul.yml adjust istanbul excludes May 18, 2016
CONTRIBUTING.md adding contributing and beefing up readme Dec 23, 2015
Dockerfile put node_modules in a volume Mar 10, 2017
LICENSE.md adding license Dec 23, 2015
MIGRATE.md Govcloud migration (#140) Feb 27, 2017
README.md removed deployment info and status badges Nov 1, 2017
app.js Govcloud migration (#140) Feb 27, 2017
bower.json specify angular-aria and -messages versions Mar 10, 2017
deploy-circle.sh Include deployment steps. Sep 7, 2017
deploy.sh Include deployment steps. Sep 7, 2017
docker-compose.yml put node_modules in a volume Mar 10, 2017
karma.conf.js get istanbul working again; reorganize test files May 18, 2016
package.json use phantomjs-prebuilt package Mar 10, 2017



This tool is a checklist manager with some neat-O features:

  • Focus on what is actionable: central page is a simple list of things you can take action on now, in order of urgency.
  • Checklists are centrally defined, allowing any member to subscribe to the authoritative checklist.
  • Checklist items deadlines can be set according to a fixed date or relative to completion of other items.
  • All members of team can view other peoples checklists, so admins can see everyone's status at a glance.

Here's some screenshots to give you a sense of the look & feel:

The tasks tab provides a centralized place for all your todo items: Todos

The checklists tab is where you assign yourself a new pre-defined checklist: Checklists

The users tab is where you can view the status of other team members action items, helpful if you want a hint or if you are an admin keeping track of where everyone is: Users

Running Checklistomania

Checklistomania is a Node.js application on the back-end, and its front-end is an AngularJS single-page application.

The default setup for local development is with Docker. If you prefer not to use Docker you can skip this section and follow the legacy setup docs below.

Using Docker for Development

A Docker setup potentially makes development and deployment easier.

To use it, install Docker and Docker Compose and read the 18F Docker guide if you haven't already.

Then build the Docker images with:

docker-compose build

Once the above command finishes, run:

docker-compose run app npm install

which will install node and bower dependencies.

Then run:

docker-compose up

This will start up all required services in containers and output their log information to stdout. You should be able to visit http://localhost:3000/ to view the site.

To run any arbitrary command in the context of the application container, run:

docker-compose run app <THE COMMAND>

For example, to run bash in the app container, run:

docker-compose run app bash

In the app container, /home/app/checklistomania is mapped to your host machine's checklistomania directory.

To run a command in the mongo container, run:

docker-compose run mongo <THE COMMAND>

To remove all Docker images associated with this project, run

docker-compose down -v

Running Locally without Docker (Legacy)

If you'd like to run Checklistomania locally, follow these steps:

First, install Node.js (Download page) and MongoDB (Installation instructions). Make sure you have the same version of Node.js as specified in package.json.

Clone Checklistomania and cd into its directory.

Install local Node.js dependencies with:

npm install

Checklistomania uses GitHub for user authentication. All users must be registered on GitHub and must be part of a GitHub organization. Users will need to set their organization membership to public (see instructions here).

Specify GitHub application credentials as environment variables. You can use the test credentials below, or create your own credentials here and set GITHUB_ORG to a GitHub organization name of your choice.

NOTE: These credentials are for development only. They are not to be used in any live version of Checklistomania or any other application.

export GITHUB_CLIENT_ID=0a363c03ec2646619f57
export GITHUB_CLIENT_SECRET=01408892458c92e3514cd96cd6b31e6d91df25d2
export GITHUB_ORG=18F
export SESSION_SECRET=testSessionSecret

In production, make sure to set SESSION_SECRET to a long random string.

You will also need to set GITHUB_CALLBACK_URL to the correct callback url for your domain. Its value should be of the form https://<your-domain>.com/auth/callback.

If you'd like to customize the look a little, you may specify a logo path and a header color (as a valid HTML hex code or color name) as environment variables as well, otherwise 18F brand defaults will be used:

export BRAND_LOGO_PATH=/private/img/18F-Logo-M.png

You can also customize the port (which defaults to 3000) that the server listens on. If you do change it, make sure your registered GitHub callback matches the new port.

export PORT=3000

Make sure you have MongoDB running locally:


Run the Checklistomania application:

npm start

Visit http://localhost:3000/ to see the locally running Checklistomania application.


Make sure you have the same version of Node.js as specified in package.json, otherwise you may have trouble running the front end tests.

If you are using Docker for development, run:

docker-compose run app npm test

If you are running Checklistomania locally, run:

npm test

Run eslint either via a code editor plugin (such as Atom's linter-eslint), or from the command line. If you are using Docker, run:

docker-compose run app npm run eslint

If you are running locally, run:

npm run eslint

Public domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.