This tool is a checklist manager with some neat-O features:
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:
The checklists tab is where you assign yourself a new pre-defined checklist:
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:
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.
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
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
export BRAND_HEADER_COLOR=\#B3EFFF
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:
mongod
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
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.