HackathonManager
**Still a work in progress! Instructions below are incomplete.* Check out WiCHacks or BrickHack 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.
Usage
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
bin/rails console
:>> User.last.update_attribute(:role, :admin) => true
You can then access the management interface from
http://your-site/manage
Installation
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 a config/hackathon.yml
with the contents from test/dummy/config/hackathon.yml. Be sure to make any necessary customizations!
Customization
- 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/mailer
in 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.sass
file. You can see the defaults in the hackathon_managervaraibles.sass
. The style for all other pages is controlled by your own stylesheets - hackathon_manager does not control those.
Deployment
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.
Contributing
GitHub issues and pull requests welcome!
License
The gem is available as open source under the terms of the MIT License.
IMPORTANT
- Set a
root to:
(root path) - Add
HackathonManager::Engine.load_seed
to your app'sdb/seeds.rb
, then runrails db:seed