• Stars
    star
    282
  • Rank 146,549 (Top 3 %)
  • Language
    Ruby
  • License
    Other
  • Created over 13 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Event management system for all the Bridges (RailsBridge, MobileBridge, GoBridge, etc!)

Bridge Troll

Build Status codecov

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

Bridge Troll aims to provide a single site for students and volunteers to RSVP for workshops, so that organizers have as much information as possible in one place to help them plan their workshop. Organizers can 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 www.bridgetroll.org. 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.

Contributing

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

Where is it?

For details on how production and staging are setup, see the deployment docs.

Features & Bugs

  • We use GitHub Issues for tracking bugs and features.
  • Issues marked as Help Wanted are ready to go, so pick one up!
  • Bugs are, naturally, marked as bugs.
  • Issues marked with the Discussion label are currently being refined. If you're interested in working on one, comment and ask what needs to be finalized before it's ready to be worked on.
  • We also mark issues as beginner friendly, so if you're new to Rails, check those out.

Want to help out?

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

Then, have a look at our GitHub Issues. 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!

Curious about the longer-term? We have something of a roadmap here.

Setting up for your local development environment

You'll need a version manager for Ruby. A version manager is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments. We recommend rvm, but rbenv will work.

Quickstart

We're using a fork & pull model (see Fork A Repo for an example), so fork this repo then clone the forked repo. (Note: change username below to be your repo.)

git clone https://github.com/username/bridge_troll.git
cd bridge_troll

Make sure you have the correct version of ruby before installing the gems for this repo. If you are using rvm, run: rvm install 2.7.1. For rbenv, run: rbenv install 2.7.1.

Finish setting up your environment

bin/setup

To verify your environment is set up correctly, run the server

rails s

Go to http://localhost:3000/ and verify your success! You can play with the app locally to become more familiar with it.

Pro-tip: Confirming Users Locally

  • outgoing emails are logged, so if you scroll back in your terminal window, you can see the contents of the confirmation email and copy/paste the confirmation link into your browser
  • or create a valid user for most recent signup, run rails console: User.last.confirm!

Running tests

After running bin/setup to get your system setup, to run all tests:

$ bin/rake

to run a specific test:

# bin/rspec path/to/spec/file_spec.rb:line_number
$ bin/rspec spec/helpers/events_helper_spec.rb:26

By default, tests will run using sqlite. If you want to use postgres, set the FORCE_POSTGRES environmental variable

$ FORCE_POSTGRES=1 bundle install
$ FORCE_POSTGRES=1 bin/rake

Seed Data

Seed data refers to the initial data provided with the site for training, testing, or as template for the data that you enter.

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 [email protected] with the password password (it will always be '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.

Anonymizing Data

You can replace sensitive personal information about events and participants from the data with a Rake task. Note that it will not run if your Rails environment is set to production.

rake db:anonymize

Restore the original data to your database with

rake db:restore

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 (style_guide.html.erb)

Additional Services

The following setup is only required if you are developing for these specific features.

Email

You don't have to set up email locally in order to develop. Note that the text of the email will appear in the log (which appears in your terminal, after you type rails s).

You can see rendered versions of all emails the application can send at http://localhost:3000/rails/mailers.

Mailcatcher

To receive/develop emails locally, install the MailCatcher gem at http://mailcatcher.me. 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!

Working with external services

If you are just getting started, skip these steps for now.

When developing the parts of Bridge Troll that communicate with external services such as meetup and authentication, you will need to use API keys, which are most easily managed with environment variables. Environment variables control various aspects of how your code runs.

To set up environment variables for the Rails server, you'll need to create an .env file in the Bridge Troll directory. Here's a sample one (note these are not real API keys):

MEETUP_OAUTH_KEY=90210
MEETUP_OAUTH_SECRET=5551212
RAILS_ENV=development
RACK_ENV=development
PORT=3000

With the .env file in place, the environment variables will be set every time you start the server with rails s.

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 local.bridgetroll.org to point at your localhost server via your hosts file. You can then tell the OAuth provider to use the url local.bridgetroll.org. 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 "www.bridgetroll.org" to function for any subdomain (like "local.bridgetroll.org").

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 http://www.bridgetroll.org, 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.

Contributors

One billion thanks to our super awesome contributors.

License

The code is licensed under an MIT license. Copyright (c) 2016 by RailsBridge.

More Repositories

1

docs

Curriculum for RailsBridge workshops
Ruby
3,402
star
2

teachingkids

resources on teaching kids to program
Ruby
35
star
3

organizing

Where workshop organizers can keep track of the workshops currently being planned.
27
star
4

railsbridge-virtual-machine

Railsbridge Virtual Machine
20
star
5

railsbridge_dot_org

This is the RailsBridge website
Haml
19
star
6

builders

ARCHIVED as of 7/29/2013: Recruiting page for the RailsBridge Builders
Ruby
11
star
7

gryffindor

DEPRECATED as of 7/29/2013: Bridge Troll now handles all sorting functionality for workshops. This repository may be deleted in the near future. Gryffindor used to be a sorting hat app for organizing workshop participants and volunteers.
JavaScript
8
star
8

bookclub

ARCHIVED as of 7/29/2013: Rails Tutor Book Club
Ruby
7
star
9

snake-game-tutorial

A walkthrough for novice programmers to make a simple game.
JavaScript
5
star
10

bugmash_scoreboard

ARCHIVED as of 7/29/2013: Scorebard for the first Rails and RailsBridge BugMash
Ruby
5
star
11

railstutor

ARCHIVED as of 7/29/2013: New Rails Tutor Site
Ruby
2
star
12

railsbridge-curriculum-style

A collection of js, css, and images to make your tutorial look and feel like railsbridge!
2
star
13

bugmash_site

ARCHIVED as of 7/29/2013: Rails & RailsBridge BugMash
Ruby
2
star
14

suggestorama

Application built at the first RailsBridge workshop
Ruby
1
star
15

rails_tutor

ARCHIVED as of 7/29/2013
Ruby
1
star
16

JS-Skeleton

CSS
1
star
17

wordpress-theme

A repo for the theme for the RailsBridge wordpress blog
CSS
1
star
18

redirector

redirects defunct apps to their new home
Ruby
1
star