Skip to content
This repository

Event management system for RailsBridge

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 app Signing in via an OmniAuth provider leaves you on the page you were at. April 23, 2014
Octocat-spinner-32 config Added an admin dashboard to see site statistics like usage of various… April 13, 2014
Octocat-spinner-32 db Added an admin dashboard to see site statistics like usage of various… April 13, 2014
Octocat-spinner-32 lib Adding 'External Events', for events not managed in Bridgetroll August 30, 2013
Octocat-spinner-32 log init commit with devise January 17, 2012
Octocat-spinner-32 public Add new favicon of troll August 05, 2013
Octocat-spinner-32 script Add script to open Jasmine from .js spec files September 20, 2013
Octocat-spinner-32 spec Signing in via an OmniAuth provider leaves you on the page you were at. April 23, 2014
Octocat-spinner-32 vendor StudentSorter: Use jquery.event.drag instead of jqueryUI/sortable May 30, 2013
Octocat-spinner-32 .gemrc Issue #12: added permissions to event and location April 11, 2012
Octocat-spinner-32 .gitignore Ignoring VIM swap files March 07, 2013
Octocat-spinner-32 .rspec added rspec+capybara and wrote events spec January 27, 2012
Octocat-spinner-32 .ruby-gemset Ditch .rvmrc April 30, 2013
Octocat-spinner-32 .ruby-version Remove patch level from ruby-version November 26, 2013
Octocat-spinner-32 .travis.yml TravisCI: Cache bundler assets between runs April 05, 2014
Octocat-spinner-32 Gemfile Upgrade Devise to 3.2.x from 3.0.x April 06, 2014
Octocat-spinner-32 Gemfile.lock Upgrade Devise to 3.2.x from 3.0.x April 06, 2014
Octocat-spinner-32 Guardfile adding guard-rspec for a nicer test harness January 19, 2013
Octocat-spinner-32 Procfile Users can associate with their Meetup account on the Account page. March 03, 2013
Octocat-spinner-32 README.markdown Update README with vague description of various OAuth solutions March 27, 2014
Octocat-spinner-32 Rakefile init commit with devise January 17, 2012
Octocat-spinner-32 Add rack-canonical-host to redirect bridgetroll.herokuapp to www.brid… October 27, 2013

Bridge Troll

  Build Status

Bridge Troll is a Rails app that helps RailsBridge workshop organizers plan their events.

Bridge Troll aims to provide a single site for Students and Volunteers to register for workshops, so that Organizers have as much information as possible in one place to help them plan their workshop. Organizers will be able to easily contact attendees before a workshop, sort students and volunteers into classes on the workshop day, and provide follow-up surveys afterward.

Prospective organizers and attendees can sign up right now at If you would really like roll your own, Bridge Troll is open source and you are free to fork, hack to your heart's content and deploy it to your favorite server or PaaS.

We have something of a roadmap here.

New? Keep reading this, and then head to the wiki to read the contributor guidelines.

Where is it?

Features & Bugs

Want to help out?

Join the google group and send a quick note introducing yourself.

Then, have a look at our feature backlog. Pick a feature to work on, fork the project, code some code, and send a really good pull request. Not sure what to do? Ask the google group for advice!

Setting up for development

You'll need a version manager for Ruby. We recommend rvm, but rbenv will work.


Note: change git clone below to be your repo.

git clone
cd bridge_troll
rails s

Go to http://localhost:3000/ and you can play with the app. (Pro-tip: to create a valid user without setting up email, run User.last.confirm! in the Rails console after signing up.)

Running tests

You will need to install phantomjs for tests to run successfully. On OSX with Homebrew, try

brew update
brew install phantomjs

Then you can run tests by doing


Seed Data

rake db:seed will create a sample event (called 'Seeded Test Event'), organized by a sample user, with many more sample user volunteers and students.

All the created users have easyish-to-remember logins, so a great way to test out organizer functionality is to load the seeds and log in as with the password password.

Doing rake db:seed again will destroy all those sample persons and create the event again. The exact details of what is created can be found in seed_event.rb.

Styling Guidelines

We have created a living style guide to keep track of HTML components and their styling across the site. See it at http://localhost:3000/style_guide.

We're still working on adding every element to the page, so if you see missing components, add it to the erb template (static_pages/style_guide.html.erb)


To receive/develop emails locally, install the MailCatcher gem at The process is as follows:

  1. gem install mailcatcher -- installs MailCatcher in your current gemset
  2. mailcatcher -- start the MailCatcher server if it isn't running already
  3. Visit http://localhost:1080/ in your web browser. This is your MailCatcher mailbox, where mails will appear.
  4. Do something in your local Bridge Troll app that would send a mail, like signing up for a new account.
  5. You should see the mail that Rails sent in the MailCatcher window. Woo!

Note that MailCatcher just makes it easy to see the HTML output of your mails: it doesn't guarantee that the way the mail looks like in MailCatcher is how it will look in Gmail or Outlook. Beware!

Setting up environment

To populate environment variables, we recommend you start your rails server with foreman, which is available in the Heroku Toolbelt. Once foreman is installed, You'll need to create an .env file in the Bridge Troll directory for foreman to start effectively. Here's a sample one (note these are not real API keys):


With the .env file in place, simply run foreman start in your Bridge Troll directory instead of starting with rails server.

External Authentication

Bridge Troll uses Omniauth to allow external authentication to a number of services.

To set up external authentication, create an oauth consumer on the site you want to authenticate with, then add [PROVIDER]_OAUTH_KEY and [PROVIDER]_OAUTH_SECRET value to the app environment.

When developing locally, it is often helpful to set up to point at your localhost server via your hosts file. You can then tell the OAuth provider to use the url Often, a separate OAuth consumer needs to be set up for each environment (localhost/staging/production), but some providers (like Facebook) allow a consumer set up as "" to function for any subdomain (like "").

OAuth Example

To test authenticating with Meetup using your localhost server, you need to register a new OAuth Consumer at Meetup.

When you add a new OAuth consumer, set the Website as, the Redirect URI as http://localhost:3000/users/auth/meetup/callback.

The values for key and secret on the OAuth consumers page should be added to your local environment as MEETUP_OAUTH_KEY and MEETUP_OAUTH_SECRET, respectively.

Importing data from Meetup

This section is only necessary if you want to import Meetup data. The app will still work, and the tests will all pass, without setting any Meetup API keys.

To import historical data from Meetup, use the rake task rake meetup:import. This requires you set up a MEETUP_API_KEY in your local environment, which you can find on Meetup at


Literally one billion thanks to our super awesome contributors.

Something went wrong with that request. Please try again.