Contestrus is a platform for hosting algorithmic competitions. It is planned to
feature:
Many contest environments are complicated to set up. Contestrus is aiming to be
extremely simple to set up and will be run inside Docker containers for maximum
deployment and development ease.
Current status is that it definitely works and the core is pretty stable. It’s
been used to host competitions at Shopify without problems.
Development should be done in a Vagrant box so all development environments
closely reflect production environments and other developers’ environments.
Run vagrant up to create an Ubuntu Saucy64 box for local development. This
will run a provision script also used for production to install:
Once that’s all done, you can go to the repository and run the tests:
## On host box
# This will take a good while the first time to download and install everything.
# Network is the main bottleneck here. script/provision-development is run when
# the box is booted to provision it.
$ vagrant up
# ssh into the now provisioned Vagrant box.
$ vagrant ssh
## Inside Vagrant-managed box
$ cd /vagrant # Shared directory with host for Contestrus
$ bin/rake # Run all tests
You can then run bin/rails server to boot the Rails server from within Vagrant.
This listens on port 3000 inside the Vagrant box. This is forwarded to port 3001
on your own machine.
You can import the sample competition with bundle exec rake competition:import[contests/punchball]. Start the Rails server with bundle exec rails server. It should then be accessible on port 3005 on the host,
forwarded from the Vagrant-managed VM.
Coming soon. For now script/provision-production should do the trick on an
Ubuntu Raring x64 box.
We use cookies to analyze traffic and improve your experience. You can accept or reject analytics cookies.