Skip to content
An open source conference submission and review system. We've been using and enhancing this systems since AgileBrazil 2010.
Ruby HTML CSS CoffeeScript Puppet JavaScript Shell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app Upgrading shoulda-matchers
certs New digital ocean environment
config Removing gem cache for everyone's benefit
db Fixing puppet configs
deploy Ensuring folders exist before sync'ing files
doc Closes #6: Removing everything related to registration of attendees a…
lib Upgrading airbrake
public Closes #184
puppet Moving HSTS to rails instead of apache
script Moving first deploy script to deploy folder
spec Upgrading airbrake
vendor/assets Removing gem cache for everyone's benefit
.gitignore Removing gem cache for everyone's benefit
.gitmodules Using stdlib and preparing for adding rvm
.rspec Switching to Konacha from Jasmine.
.travis.yml Removing cache from travis
BACKLOG_HISTORY Moving backlog and rewriting README and LICENSE/COPYING files
COPYING Moving backlog and rewriting README and LICENSE/COPYING files
Capfile Adding RVM & passenger & upgrading ubuntu/apache
Gemfile Upgrading konacha and other gems
Gemfile.lock Upgrading konacha and other gems
Guardfile Upgrading minor versions and fixing guard-konacha Guardfile
LICENSE Upgrading Rails and therubyracer versions
Procfile Partial commit for #148. Upgrading mysql2 minor version. Adding better SSL configurations for apache
Rakefile Upgrading to ruby1.9.3 and gems to close #116
Vagrantfile Upgrading to ruby 2.3.0 Moving gem_home and gem_path to capistrano recipes Upgrading mysql2 minor version.

Conference Submission System Build Status Dependency Status Code Climate Test Coverage

This is an open-source conference submission system, built in Rails and has been used for the Agile Brazil conference since 2010. Some of the features supported are:

  • User registration
  • User profiles
  • Support for I18N (currently supports: en, pt-br)
  • Conference tracks, audience levels, and different session types
  • Session submission
  • Comments on sessions
  • Phases and deadlines (submission, early review, review, program compilation)
  • E-mail notifications
  • Track organizers
  • Reviewers
  • Adding reviews and feedback to authors
  • Review decisions of acceptance/rejection and e-mail publishing
  • More...


Just clone this repo (including submodules so ensure you run git clone --recursive or if you already cloned, use git submodule foreach git pull origin master), enter it and run ./ This should be enough to install whatever is needed on your machine and start guard to run specs and front end tests.

If you don't want to mess with your own machine, an option to use Vagrant for development is available. Download Vagrant 1.8.1 and Virtual Box, install both and then run:

vagrant destroy -f dev && vagrant up dev && vagrant ssh dev

Once inside the vagrant box, run /srv/apps/registrations/current/ Note that the code will be sync'ed between the virtual machine and your machine so you can still use your favorite editor and handle version control from your machine if you prefer.


Provisioning is handled by Puppet 4.3.1. It can be tested with Vagrant 1.8.1.

Deployment is handled by Capistrano. And can also be tested using the vagrant set up.

To test, run:

vagrant destroy -f deploy && vagrant up deploy && bundle && bundle exec ruby deploy/first_deploy.rb vagrant staging certs/insecure_private_key

Note that Capistrano uses the code currently available in github so you need to push to test it. You can set up config/deploy/vagrant.rb to use a different branch with set :branch, 'your_branch'.

Deploying to a cloud

If you're deploying to any cloud, after you've created your virtual machine, add config/<vms_ip>_config.yml, config/<vms_ip>_database.yml, config/<vms_ip>_newrelic.yml. You can, optionally, also add certs/<vms_ip>_server.crt, certs/<vms_ip>_server_key.pem and certs/<vms_ip>_server_key.pem to set up apache to work with SSL. Then run:

bundle && bundle exec ruby deploy/first_deploy.rb <configured_sudoer_user> <vms_ip> <type> <ssh_key_to_access_vm>

Where your sudoer user is a user in that machine that has sudo right (no password required), vms_ip is the vm IPv4 addres, type is either 'production' or 'staging' and the ssh key is the path in your machine to the ssh key that allows non password protected access to your cloud VM.

Digital Ocean

If you're deploying to Digital Ocean specifically, go to your API settings, request a Personal Access Token, save it and run:

export TOKEN=<your_token>

From then on, you can use:

bundle && bundle exec ruby deploy/digital_ocean/new_machine.rb


If you have a bug or a feature request, please create a issue here:


Thanks to all our contributors! The core team is:

Our huge thanks to past developers:


The conference submission system is released under the MIT license. See LICENSE for details.

Something went wrong with that request. Please try again.