Still a work in progress! Instructions below are incomplete. Check out WiCHacks for an implementation example.
Originally developed for BrickHack, this is a Ruby on Rails "plugin" that adds typical hackathon management features to any existing Ruby on Rails application.
- Hacker applications: Users sign up/in using MyMLH, which includes standard hackathon application info. This pre-fills the BrickHack application, so hackers don't have to duplicate information!
- Acceptance, RSVPs: Manage applications & coordinate acceptance/waitlist/denials
- Bus Lists: Coordinate bus sign-ups during the RSVP process while communicating important information to riders & captains
- Email communication: Ensure hackers get consistent, timely information throughout their application process, while enabling the organizing team to communicate important information at any time.
- Statistics & Visualization: Surface key information about the application base, distribution of applicants, progress towards attendance, etc.
HackathonManager uses a variety of third-party services & Ruby gems:
- Devise + MyMLH (authentication & attendee identity)
- Sidekiq (background jobs)
- Sparkpost (email)
- Paperclip + Amazon S3 (resume storage)
- Chartkick (management charts)
Steps to get the basic flow working:
- Add an "apply" or "register" button on your hackathon homepage. This button directs the user through a sign up/login flow to collect their information.
<%= link_to 'Click here to apply!'.html_safe, questionnaires_path %>
- Once you have at least one user in the system, you can promote them to an admin to access the management interface. Open up a console session with
bin/rails console
:
>> User.last.update_attribute(:admin, true)
=> true
- You can then access the management interface from
http://your-site/manage
Add this line to your application's Gemfile:
gem 'hackathon_manager'
And then execute:
$ bundle
Now, add our database migrations:
$ bin/rails railties:install:migrations
And finally, create the file config/hackathon.yml
:
defaults: &defaults
registration_is_open: true
event_is_over: false
last_day_to_apply: <%= Date.new(2017, 2, 11) %>
auto_late_waitlist: false
logo_asset: logo.png
development:
<<: *defaults
test: &test
<<: *defaults
last_day_to_apply: <%= 2.months.from_now %>
production:
<<: *defaults
staging:
<<: *defaults
Deployment to Heroku and Dokku is supported out of the box, though anything that operates on Heroku's buildpacks should work too.
See BrickHack's production setup for detailed notes.
GitHub issues and pull requests welcome!
The gem is available as open source under the terms of the MIT License.
- Set a
root to:
(root path)