A simple web service to track the number of cups of coffee I consume each day.
Redis is the sole datastore for this app.
If deploying to Heroku, the free RedisToGo addon can be used thus:
$ heroku addons:add redistogo:nano
For other situations you may want to modify
Write access to the service is controlled via API key. The key is specified in
X-API-Key header when POSTing to the service. A request with missing or
invalid key will receive a 4xx response code.
Add the desired key to the
$ redis-cli redis> SADD api_keys YOUR_API_KEY (integer) 1
redis> SMEMBERS api_keys 1) "YOUR_API_KEY"
Assuming Redis is installed and running locally:
$ git clone https://github.com/stevenwilkin/coffee-tracker.git . $ bundle install $ bundle exec rackup
Web interface is then available at http://0.0.0.0:9292.
The test suite uses Minitest which is now part of the Ruby 1.9.x standard library and can be kicked off with Rake:
$ bundle exec rake
Retrieves the current count:
$ curl http://0.0.0.0:9292/api 5
Updates the count, returning the updated count in the response body as text/plain:
$ curl -X POST -d '' -H X-API-Key:YOUR_API_KEY http://0.0.0.0:9292/api 6