/hackathon_manager

Full-featured website application for managing hackathon logistics

Primary LanguageRubyMIT LicenseMIT

HackathonManager Build Status Code Climate Test Coverage security

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.

Usage

HackathonManager uses a variety of third-party services & Ruby gems:

Steps to get the basic flow working:

  1. 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 %>
  1. 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
  1. 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 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

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)