We've deprecated this system and our usage of Puck within the DoSomething echosystem. We've moved onwards to Snowplow Analytics! 🏂
Puck is a service that accepts a websocket connection from web apps using the Puck client. It validates events the events sent to it, applies necessary transformations, and forwards the data off to all of the places it needs to be tracked. Currently that is Blink and a mongodb database.
This app uses the Heroku runtime, get the Heroku toolbelt here if you don't already have it.
$ cp .env.example .env
$ npm install
$ npm start
mongod
installed locally if you want to test the database backup.
If you want to simulate a socket connection, this is a useful tool http://amritb.github.io/socketio-client-tool
Otherwise use npm run test
for automated testing.