18F, a branch of the US Digital Service, launched a "micropurchasing" experiment last year, allowing interested developers to bid on small software engineering jobs via reverse auctions starting at $3,500.
This app's job is to ensure that a user is always notified when new auctions appear on the site. It uses the Micropurchasing platform's API and requires a Github Personal API token. See the API documentation for more details.
- A Sendgrid API key for sending email notifications
- A Redis instance (I use the free RedisCloud Heroku add-on)
- A Github personal API token (optional, not currently required to fetch auctions via the 18F API)
git clone https://github.com/ulfmagnetics/18f-micropurchase-notifier
cd 18f-micropurchase-notifier
bundle install
cp .env.example .env
# Edit .env and set required variables
bundle exec puma -C config/puma.rb
The app will store the "last checked" timestamp in redis, and when accessed via
HTTP will check the API for any new auctions and will send notification emails
to all addresses in the comma-separated EMAILS_TO_NOTIFY
environment variable
if any new auctions are found. The intended use case is to set up a ping
service (such as Pingdom or New Relic) and use it to ping the app periodically,
e.g. daily.
I am running this app on a free-tier Heroku dyno with the Sendgrid and Rediscloud add-ons provisioned.