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)
- Blazer (custom SQL queries & analytics)
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
>> User.last.update_attribute(:role, :admin) => true
You can then access the management interface from
Add this line to your application's Gemfile:
And then execute:
Now, add our database migrations:
$ bin/rails railties:install:migrations
And finally, create the a
config/hackathon.yml with the contents from test/dummy/config/hackathon.yml. Be sure to make any necessary customizations!
- Content: Various constants are configured in your own app's
config/hackathon.yml. Example configs: dummy, brickhack.
- Emails: The default email templates are located at
/app/views/mailer. You can override these templates by copying the specific template(s) to the same
/app/views/mailerin your Rails app and making the changes you need.
- Styling: The style for management, application, and RSVP pages can be customized by modifying your Rails app's
/app/assets/stylesheets/variable-overrides.sassfile. You can see the defaults in the hackathon_manager
varaibles.sass. The style for all other pages is controlled by your own stylesheets - hackathon_manager does not control those.
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)
HackathonManager::Engine.load_seedto your app's
db/seeds.rb, then run