Judy

Bespoke service for reviewing CFP submissions

View the Project on GitHub obfuscurity/judy

Screenshots

Listing Abstracts

list

Reading and Scoring an Abstract

score

Reviewing Scores

review

Purpose

A small Sinatra app for reading and voting on event CFP submissions. Developed for use with the Monitorama conferences.

Goals

The traditional process for reviewing and sorting through conference CFP submissions is a tedious and thankless task. Most conference organizers recognize this as a largely manual effort, using some combination of spreadsheets and dead trees. Judy aims to streamline the process, with the ultimate goal of having the abstract review process as enjoyable as reading stories on Instapaper within your favorite tablet device.

Judy's design goals are straightforward:

Judy has already helped us to review seventy-eight (78) submissions for the upcoming Monitorama PDX conference in record time. It enabled us to bring in a larger team of volunteers to review and judge papers than would have previously been possible, increasing diversity and helping to float the very best talks to the top of the stack.

Deployment

Judy stores all of its relational data in PostgreSQL. It is assumed you have a local PostgreSQL server available for development.

Options

All environment variables can be set from the command-line, although it's suggested to use .env instead. This file will automatically be picked up by foreman, which is also helpful when debugging (e.g. foreman run pry). This file will not be committed (unless you remove or modify .gitignore) so you shouldn't have to worry about accidentally leaking credentials.

Authorization

The Judy UI is protected by Basic Authentication. Credentials should be set using the JUDY_AUTH environment variable as colon-delimited credential pairs. Multiple pairs should be delimited with commas. For example:

JUDY_AUTH=user1:foo,user2:bar,user3:baz

Local

Judy uses the Sinatra web framework under Ruby 1.9. Anyone wishing to run Judy as a local service should be familiar with common Ruby packaging and dependency management utilities such as RVM and Bundler. If you are installing a new Ruby version with RVM, make sure that you have the appropriate OpenSSL development libraries installed before compiling Ruby.

$ rvm use 1.9.3
$ bundle install
$ createdb judy
$ cp .env.example .env
$ $EDITOR .env
$ bundle exec rake db:migrate:up
$ foreman start
$ open http://127.0.0.1:5000

Heroku

$ heroku create
$ git push heroku master
$ heroku run bundle exec rake db:migrate:up
$ heroku config:set JUDY_AUTH=user:pass
$ heroku config:set FORCE_HTTPS=true
$ heroku open

Migrations

Database upgrades (or downgrades) should use the built-in rake migration targets. For upgrading to the newest version in your development or non-Heroku production environment:

$ bundle exec rake db:migrate:up

If for some reason you need to downgrade to a previous migration target, make sure to set the VERSION number:

$ bundle exec VERSION=3 rake db:migrate:to

If you're running on Heroku, simply prefix the aforementioned commands with heroku run (and any other relevant options).

License

Judy is distributed under the MIT license. Third-party software libraries included with this project are distributed under their respective licenses.