HackathonManager

Gem Build Status Code Climate Test Coverage security

**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:

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 %>
    
  2. 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
    
  3. 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_manager varaibles.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's db/seeds.rb, then run rails db:seed