├── .gitignore ├── .rspec ├── .ruby-gemset ├── .ruby-version ├── .travis.yml ├── Gemfile ├── Gemfile.lock ├── Procfile ├── README.md ├── Rakefile ├── app ├── assets │ ├── config │ │ └── manifest.js │ ├── fonts │ │ ├── Aleo-Italic-webfont.eot │ │ ├── Aleo-Italic-webfont.svg │ │ ├── Aleo-Italic-webfont.ttf │ │ ├── Aleo-Italic-webfont.woff │ │ ├── Aleo-Light-webfont.eot │ │ ├── Aleo-Light-webfont.svg │ │ ├── Aleo-Light-webfont.ttf │ │ ├── Aleo-Light-webfont.woff │ │ ├── Aleo-LightItalic-webfont.eot │ │ ├── Aleo-LightItalic-webfont.svg │ │ ├── Aleo-LightItalic-webfont.ttf │ │ ├── Aleo-LightItalic-webfont.woff │ │ ├── Aleo-Regular-webfont.eot │ │ ├── Aleo-Regular-webfont.svg │ │ ├── Aleo-Regular-webfont.ttf │ │ ├── Aleo-Regular-webfont.woff │ │ ├── Apache License.txt │ │ ├── OpenSans-Bold-webfont.eot │ │ ├── OpenSans-Bold-webfont.svg │ │ ├── OpenSans-Bold-webfont.ttf │ │ ├── OpenSans-Bold-webfont.woff │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ ├── OpenSans-BoldItalic-webfont.svg │ │ ├── OpenSans-BoldItalic-webfont.ttf │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ ├── OpenSans-ExtraBold-webfont.eot │ │ ├── OpenSans-ExtraBold-webfont.svg │ │ ├── OpenSans-ExtraBold-webfont.ttf │ │ ├── OpenSans-ExtraBold-webfont.woff │ │ ├── OpenSans-ExtraBoldItalic-webfont.eot │ │ ├── OpenSans-ExtraBoldItalic-webfont.svg │ │ ├── OpenSans-ExtraBoldItalic-webfont.ttf │ │ ├── OpenSans-ExtraBoldItalic-webfont.woff │ │ ├── OpenSans-Italic-webfont.eot │ │ ├── OpenSans-Italic-webfont.svg │ │ ├── OpenSans-Italic-webfont.ttf │ │ ├── OpenSans-Italic-webfont.woff │ │ ├── OpenSans-Light-webfont.eot │ │ ├── OpenSans-Light-webfont.svg │ │ ├── OpenSans-Light-webfont.ttf │ │ ├── OpenSans-Light-webfont.woff │ │ ├── OpenSans-LightItalic-webfont.eot │ │ ├── OpenSans-LightItalic-webfont.svg │ │ ├── OpenSans-LightItalic-webfont.ttf │ │ ├── OpenSans-LightItalic-webfont.woff │ │ ├── OpenSans-Regular-webfont.eot │ │ ├── OpenSans-Regular-webfont.svg │ │ ├── OpenSans-Regular-webfont.ttf │ │ ├── OpenSans-Regular-webfont.woff │ │ ├── OpenSans-Semibold-webfont.eot │ │ ├── OpenSans-Semibold-webfont.svg │ │ ├── OpenSans-Semibold-webfont.ttf │ │ ├── OpenSans-Semibold-webfont.woff │ │ ├── OpenSans-SemiboldItalic-webfont.eot │ │ ├── OpenSans-SemiboldItalic-webfont.svg │ │ ├── OpenSans-SemiboldItalic-webfont.ttf │ │ ├── OpenSans-SemiboldItalic-webfont.woff │ │ ├── SIL Open Font License 1.1.txt │ │ ├── TisaSansWebPro-Bold.woff │ │ ├── TisaSansWebPro.woff │ │ ├── aleo-bold-webfont.eot │ │ ├── aleo-bold-webfont.svg │ │ ├── aleo-bold-webfont.ttf │ │ ├── aleo-bold-webfont.woff │ │ ├── font.unused.scss │ │ ├── stately-webfont.eot │ │ ├── stately-webfont.svg │ │ ├── stately-webfont.ttf │ │ ├── stately-webfont.woff │ │ └── stately_license.txt │ ├── images │ │ ├── conference-logos │ │ │ ├── aloha.jpg │ │ │ ├── code4lib.png │ │ │ ├── la-ruby.jpg │ │ │ ├── madison-ruby.jpg │ │ │ ├── rocky-mountain-ruby.png │ │ │ ├── ruby-on-ales.jpg │ │ │ └── rubyfuza.png │ │ ├── icons │ │ │ └── favicon.ico │ │ ├── landing-page │ │ │ ├── blur.svg │ │ │ ├── door.jpg │ │ │ ├── railsbridge_logo.png │ │ │ └── railsbridge_logo.svg │ │ ├── navbar_texture.gif │ │ ├── partner-org-logos │ │ │ ├── blackfounders.png │ │ │ ├── devchix.jpeg │ │ │ ├── latino-startup-alliance.png │ │ │ └── women2.jpeg │ │ ├── railsbridge-logos │ │ │ ├── chapter_logo_examples.jpg │ │ │ ├── railsbridge_horizontal_black.png │ │ │ └── railsbridge_horizontal_orange.png │ │ ├── railsbridge-structure.png │ │ ├── reference │ │ │ ├── StyleGuide_5-12-13.pdf │ │ │ └── railsbridge.png │ │ ├── sponsor-logos │ │ │ ├── autodesk.png │ │ │ ├── carbonfive.png │ │ │ ├── engineyard.png │ │ │ ├── google.png │ │ │ ├── heroku.png │ │ │ ├── pivotal.jpg │ │ │ └── thoughtbot.png │ │ ├── workshop-shots │ │ │ ├── blue_screen.jpg │ │ │ ├── programming.jpg │ │ │ ├── several_neat_humans.jpg │ │ │ └── ten_humans.jpg │ │ └── workshop-sponsor-logos │ │ │ ├── CfA.png │ │ │ ├── airbnb.png │ │ │ ├── awesomeinc.jpeg │ │ │ ├── bing.png │ │ │ ├── braintree.png │ │ │ ├── coderow.jpg │ │ │ ├── comerge.jpg │ │ │ ├── enphase.jpg │ │ │ ├── envylabs.jpeg │ │ │ ├── etsy.png │ │ │ ├── galvanize.jpg │ │ │ ├── github.png │ │ │ ├── gnip.jpeg │ │ │ ├── google-ventures.png │ │ │ ├── groupon.jpeg │ │ │ ├── harvest.png │ │ │ ├── hashrocket.jpg │ │ │ ├── ign-entertainment.png │ │ │ ├── incomm.png │ │ │ ├── intelligently.jpg │ │ │ ├── kaporfoundation.jpg │ │ │ ├── mediacore.jpg │ │ │ ├── microsoft.jpg │ │ │ ├── modcloth.jpeg │ │ │ ├── neo.png │ │ │ ├── nexTag.jpg │ │ │ ├── orange-labs.jpg │ │ │ ├── outright.jpeg │ │ │ ├── quickleft.jpg │ │ │ ├── rackspace.jpeg │ │ │ ├── scribd.jpeg │ │ │ ├── square.jpg │ │ │ ├── stride.png │ │ │ ├── tapjoy.jpeg │ │ │ ├── thoughtworks.jpg │ │ │ ├── twilio.png │ │ │ ├── twitter.png │ │ │ ├── verticalresponse.jpeg │ │ │ ├── wested.jpg │ │ │ └── workhappy.png │ ├── javascripts │ │ ├── application.js │ │ ├── plugins │ │ │ └── jquery.match-height.js │ │ ├── resources.js │ │ └── site.js │ └── stylesheets │ │ ├── application.scss │ │ ├── global │ │ ├── _base.scss │ │ ├── _colors.scss │ │ ├── _fonts.scss │ │ ├── _mixins.scss │ │ ├── _pretty-icons.scss │ │ ├── _typography.scss │ │ └── _utilities.scss │ │ ├── layout │ │ ├── _footer.scss │ │ ├── _header.scss │ │ └── _subnav.scss │ │ └── modules │ │ ├── _brand.scss │ │ ├── _features.scss │ │ ├── _help.scss │ │ ├── _home.scss │ │ ├── _logistics.scss │ │ ├── _past-events.scss │ │ ├── _sponsors.scss │ │ └── about.scss ├── controllers │ ├── application_controller.rb │ ├── logistics_controller.rb │ └── static_pages_controller.rb ├── helpers │ └── application_helper.rb ├── mailers │ └── .gitkeep ├── models │ ├── .gitkeep │ └── event.rb ├── presenters │ └── event_presenter.rb └── views │ ├── layouts │ ├── _footer.html.haml │ ├── _header.html.haml │ ├── _home_header.html.haml │ ├── _nav_links.html.haml │ ├── _subnav.html.haml │ └── application.html.haml │ ├── logistics │ ├── _sitemap.html.haml │ ├── error_404.html.haml │ ├── error_500.html.haml │ └── sitemap.html.haml │ ├── shared │ ├── _event.html.haml │ ├── _event_help.html.haml │ ├── _events.html.haml │ ├── _events_with_help.html.haml │ └── _github_links.html.haml │ └── static_pages │ ├── _calendar.html.haml │ ├── _mailing_list.html.haml │ ├── _tweets.html.haml │ ├── about.html.haml │ ├── brand.html.haml │ ├── chapters.html.haml │ ├── donate.html.haml │ ├── donor_faq.html.haml │ ├── events.html.haml │ ├── help.html.haml │ ├── home.html.haml │ ├── host.html.haml │ ├── interest_form.html.haml │ ├── learn.html.haml │ ├── learning_faq.html.haml │ ├── learning_resources.html.haml │ ├── organize.html.haml │ ├── past_events.html.haml │ ├── projects.html.haml │ ├── resources │ ├── _front_end_resources.html.haml │ ├── _general_web_dev_resources.html.haml │ ├── _rails_resources.html.haml │ └── _ruby_resources.html.haml │ ├── sponsors.html.haml │ ├── teach.html.haml │ ├── teacher_advice.html.haml │ └── team.html.haml ├── bin ├── bundle ├── rails ├── rake ├── setup └── update ├── config.ru ├── config ├── application.rb ├── boot.rb ├── database.yml ├── environment.rb ├── environments │ ├── development.rb │ ├── production.rb │ └── test.rb ├── initializers │ ├── application_controller_renderer.rb │ ├── assets.rb │ ├── backtrace_silencers.rb │ ├── bridgetroll_path.rb │ ├── cookies_serializer.rb │ ├── filter_parameter_logging.rb │ ├── inflections.rb │ ├── mime_types.rb │ ├── session_store.rb │ └── wrap_parameters.rb ├── locales │ └── en.yml ├── newrelic.yml ├── puma.rb ├── routes.rb ├── secrets.yml ├── sitemap.rb └── spring.rb ├── db ├── schema.rb └── seeds.rb ├── doc └── README_FOR_APP ├── lib ├── assets │ └── .gitkeep └── tasks │ └── .gitkeep ├── log └── .gitkeep ├── public ├── 422.html ├── favicon.ico └── sitemap.xml.gz ├── spec ├── controllers │ └── logistics_controller_spec.rb ├── helpers │ └── application_helper_spec.rb ├── requests │ ├── events_spec.rb │ └── static_pages_spec.rb └── spec_helper.rb └── vendor └── assets ├── javascripts └── .gitkeep └── stylesheets └── .gitkeep /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | # 3 | # If you find yourself ignoring temporary files generated by your text editor 4 | # or operating system, you probably want to add a global ignore instead: 5 | # git config --global core.excludesfile ~/.gitignore_global 6 | 7 | # Ignore bundler config 8 | /.bundle 9 | 10 | # Ignore the default SQLite database. 11 | /db/*.sqlite3 12 | 13 | # Ignore all logfiles and tempfiles. 14 | /log/*.log 15 | /tmp 16 | 17 | # Ignore all DS_Store files 18 | .DS_Store 19 | 20 | # Ignore all simplecov files 21 | /coverage 22 | 23 | # Ignore Rubymine created folder 24 | .idea 25 | -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --color 2 | -------------------------------------------------------------------------------- /.ruby-gemset: -------------------------------------------------------------------------------- 1 | site_de_railsbridge_2013 2 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.7.6 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 2.5.6 4 | cache: bundler 5 | sudo: false 6 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | ruby "2.7.6" 4 | 5 | gem "rails", "5.0.7.2" 6 | gem "thin" 7 | gem "haml-rails" 8 | gem "jquery-rails" 9 | gem "font-awesome-rails" 10 | gem "twitter" 11 | gem "tweetstream" 12 | gem "sprockets-rails" 13 | 14 | gem "sass-rails" 15 | gem "bootstrap-sass" 16 | gem "uglifier" 17 | gem "bourbon" 18 | 19 | # Site Tools & Monitoring 20 | gem "sitemap_generator" 21 | 22 | group :production do 23 | gem "newrelic_rpm" 24 | gem "rails_12factor" 25 | gem "google-analytics-rails" 26 | end 27 | 28 | group :test, :development do 29 | # Testing 30 | gem "rspec-rails" 31 | gem "capybara" 32 | gem "email_spec" 33 | gem "shoulda-matchers" 34 | gem "webmock" 35 | 36 | # Test Tools 37 | gem "simplecov", :require => false 38 | gem "timecop" 39 | 40 | # Debugging Tools 41 | gem "awesome_print" 42 | gem "pry-byebug" 43 | end 44 | 45 | group :development do 46 | gem "better_errors" 47 | gem "binding_of_caller" 48 | end 49 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: rails server thin -p $PORT -e $RACK_ENV 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RailsBridge Website 2 | 3 | [![Build Status](https://travis-ci.org/railsbridge/railsbridge_dot_org.svg?branch=master)](http://travis-ci.org/railsbridge/railsbridge_dot_org) 4 | 5 | This is the source code for the RailsBridge website at http://railsbridge.org. 6 | 7 | # Contributing 8 | 9 | Your contributions are encouraged. Here's how you can make changes to the site. 10 | 11 | Fork the repository to your own GitHub account. 12 | 13 | Download the project: 14 | 15 | ``` 16 | $ git clone git@github.com:MyGitHubAccount/railsbridge_dot_org.git 17 | $ cd railsbridge_dot_org 18 | ``` 19 | 20 | If you use RVM, make a gemset: 21 | 22 | ``` 23 | $ rvm use ruby-2.5.6@railsbridge_dot_org --create 24 | ``` 25 | 26 | Install gems: 27 | 28 | ``` 29 | $ bundle install 30 | ``` 31 | 32 | Run the application: 33 | 34 | ``` 35 | $ rails server 36 | ``` 37 | 38 | Make your changes. 39 | 40 | Commit and push to the remote repository: 41 | 42 | ``` 43 | $ git commit -am "some helpful comment" 44 | $ git push origin master 45 | ``` 46 | 47 | Make a pull request. 48 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env rake 2 | # Add your own tasks in files placed in lib/tasks ending in .rake, 3 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 4 | 5 | require File.expand_path('../config/application', __FILE__) 6 | 7 | RailsbridgeSite2013::Application.load_tasks 8 | -------------------------------------------------------------------------------- /app/assets/config/manifest.js: -------------------------------------------------------------------------------- 1 | //= link_tree ../fonts 2 | //= link_tree ../images 3 | //= link_directory ../javascripts .js 4 | //= link_directory ../stylesheets .css 5 | -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Italic-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Italic-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Italic-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Light-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Light-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Light-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-LightItalic-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-LightItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-LightItalic-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-LightItalic-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Regular-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Regular-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/Aleo-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/Aleo-Regular-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Bold-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-BoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-BoldItalic-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-ExtraBold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-ExtraBold-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-ExtraBold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-ExtraBold-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-ExtraBold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-ExtraBold-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-ExtraBoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-ExtraBoldItalic-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-ExtraBoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-ExtraBoldItalic-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-ExtraBoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-ExtraBoldItalic-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Italic-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Light-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-LightItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-LightItalic-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Regular-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Semibold-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Semibold-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-Semibold-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-SemiboldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-SemiboldItalic-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-SemiboldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-SemiboldItalic-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/OpenSans-SemiboldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/OpenSans-SemiboldItalic-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/SIL Open Font License 1.1.txt: -------------------------------------------------------------------------------- 1 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 2 | This license is copied below, and is also available with a FAQ at: 3 | http://scripts.sil.org/OFL 4 | 5 | 6 | ----------------------------------------------------------- 7 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 8 | ----------------------------------------------------------- 9 | 10 | PREAMBLE 11 | The goals of the Open Font License (OFL) are to stimulate worldwide 12 | development of collaborative font projects, to support the font creation 13 | efforts of academic and linguistic communities, and to provide a free and 14 | open framework in which fonts may be shared and improved in partnership 15 | with others. 16 | 17 | The OFL allows the licensed fonts to be used, studied, modified and 18 | redistributed freely as long as they are not sold by themselves. The 19 | fonts, including any derivative works, can be bundled, embedded, 20 | redistributed and/or sold with any software provided that any reserved 21 | names are not used by derivative works. The fonts and derivatives, 22 | however, cannot be released under any other type of license. The 23 | requirement for fonts to remain under this license does not apply 24 | to any document created using the fonts or their derivatives. 25 | 26 | DEFINITIONS 27 | "Font Software" refers to the set of files released by the Copyright 28 | Holder(s) under this license and clearly marked as such. This may 29 | include source files, build scripts and documentation. 30 | 31 | "Reserved Font Name" refers to any names specified as such after the 32 | copyright statement(s). 33 | 34 | "Original Version" refers to the collection of Font Software components as 35 | distributed by the Copyright Holder(s). 36 | 37 | "Modified Version" refers to any derivative made by adding to, deleting, 38 | or substituting -- in part or in whole -- any of the components of the 39 | Original Version, by changing formats or by porting the Font Software to a 40 | new environment. 41 | 42 | "Author" refers to any designer, engineer, programmer, technical 43 | writer or other person who contributed to the Font Software. 44 | 45 | PERMISSION & CONDITIONS 46 | Permission is hereby granted, free of charge, to any person obtaining 47 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 48 | redistribute, and sell modified and unmodified copies of the Font 49 | Software, subject to the following conditions: 50 | 51 | 1) Neither the Font Software nor any of its individual components, 52 | in Original or Modified Versions, may be sold by itself. 53 | 54 | 2) Original or Modified Versions of the Font Software may be bundled, 55 | redistributed and/or sold with any software, provided that each copy 56 | contains the above copyright notice and this license. These can be 57 | included either as stand-alone text files, human-readable headers or 58 | in the appropriate machine-readable metadata fields within text or 59 | binary files as long as those fields can be easily viewed by the user. 60 | 61 | 3) No Modified Version of the Font Software may use the Reserved Font 62 | Name(s) unless explicit written permission is granted by the corresponding 63 | Copyright Holder. This restriction only applies to the primary font name as 64 | presented to the users. 65 | 66 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 67 | Software shall not be used to promote, endorse or advertise any 68 | Modified Version, except to acknowledge the contribution(s) of the 69 | Copyright Holder(s) and the Author(s) or with their explicit written 70 | permission. 71 | 72 | 5) The Font Software, modified or unmodified, in part or in whole, 73 | must be distributed entirely under this license, and must not be 74 | distributed under any other license. The requirement for fonts to 75 | remain under this license does not apply to any document created 76 | using the Font Software. 77 | 78 | TERMINATION 79 | This license becomes null and void if any of the above conditions are 80 | not met. 81 | 82 | DISCLAIMER 83 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 84 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 85 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 86 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 87 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 88 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 89 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 90 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 91 | OTHER DEALINGS IN THE FONT SOFTWARE. -------------------------------------------------------------------------------- /app/assets/fonts/TisaSansWebPro-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/TisaSansWebPro-Bold.woff -------------------------------------------------------------------------------- /app/assets/fonts/TisaSansWebPro.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/TisaSansWebPro.woff -------------------------------------------------------------------------------- /app/assets/fonts/aleo-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/aleo-bold-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/aleo-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/aleo-bold-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/aleo-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/aleo-bold-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/font.unused.scss: -------------------------------------------------------------------------------- 1 | // Storage file for fonts not in use 2 | 3 | @font-face { 4 | font-family: 'AleoLightItalic'; 5 | src: font-url('Aleo-LightItalic-webfont.eot'); 6 | src: font-url('Aleo-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), 7 | font-url('Aleo-LightItalic-webfont.woff') format('woff'), 8 | font-url('Aleo-LightItalic-webfont.ttf') format('truetype'), 9 | font-url('Aleo-LightItalic-webfont.svg#AleoLightItalic') format('svg'); 10 | font-weight: normal; 11 | font-style: normal; 12 | } 13 | 14 | @font-face { 15 | font-family: 'AleoItalic'; 16 | src: font-url('Aleo-Italic-webfont.eot'); 17 | src: font-url('Aleo-Italic-webfont.eot?#iefix') format('embedded-opentype'), 18 | font-url('Aleo-Italic-webfont.woff') format('woff'), 19 | font-url('Aleo-Italic-webfont.ttf') format('truetype'), 20 | font-url('Aleo-Italic-webfont.svg#AleoItalic') format('svg'); 21 | font-weight: normal; 22 | font-style: normal; 23 | } 24 | 25 | @font-face { 26 | font-family: 'OpenSansBoldItalic'; 27 | src: font-url('OpenSans-BoldItalic-webfont.eot'); 28 | src: font-url('OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), 29 | font-url('OpenSans-BoldItalic-webfont.woff') format('woff'), 30 | font-url('OpenSans-BoldItalic-webfont.ttf') format('truetype'), 31 | font-url('OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg'); 32 | font-weight: normal; 33 | font-style: normal; 34 | } 35 | 36 | @font-face { 37 | font-family: 'OpenSansExtraBold'; 38 | src: font-url('OpenSans-ExtraBold-webfont.eot'); 39 | src: font-url('OpenSans-ExtraBold-webfont.eot?#iefix') format('embedded-opentype'), 40 | font-url('OpenSans-ExtraBold-webfont.woff') format('woff'), 41 | font-url('OpenSans-ExtraBold-webfont.ttf') format('truetype'), 42 | font-url('OpenSans-ExtraBold-webfont.svg#OpenSansExtraBold') format('svg'); 43 | font-weight: normal; 44 | font-style: normal; 45 | } 46 | 47 | @font-face { 48 | font-family: 'OpenSansExtraBoldItalic'; 49 | src: font-url('OpenSans-ExtraBoldItalic-webfont.eot'); 50 | src: font-url('OpenSans-ExtraBoldItalic-webfont.eot?#iefix') format('embedded-opentype'), 51 | font-url('OpenSans-ExtraBoldItalic-webfont.woff') format('woff'), 52 | font-url('OpenSans-ExtraBoldItalic-webfont.ttf') format('truetype'), 53 | font-url('OpenSans-ExtraBoldItalic-webfont.svg#OpenSansExtraBoldItalic') format('svg'); 54 | font-weight: normal; 55 | font-style: normal; 56 | } 57 | 58 | @font-face { 59 | font-family: 'OpenSansItalic'; 60 | src: font-url('OpenSans-Italic-webfont.eot'); 61 | src: font-url('OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'), 62 | font-url('OpenSans-Italic-webfont.woff') format('woff'), 63 | font-url('OpenSans-Italic-webfont.ttf') format('truetype'), 64 | font-url('OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg'); 65 | font-weight: normal; 66 | font-style: normal; 67 | } 68 | 69 | @font-face { 70 | font-family: 'OpenSansLight'; 71 | src: font-url('OpenSans-Light-webfont.eot'); 72 | src: font-url('OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), 73 | font-url('OpenSans-Light-webfont.woff') format('woff'), 74 | font-url('OpenSans-Light-webfont.ttf') format('truetype'), 75 | font-url('OpenSans-Light-webfont.svg#OpenSansLight') format('svg'); 76 | font-weight: normal; 77 | font-style: normal; 78 | } 79 | 80 | @font-face { 81 | font-family: 'OpenSansLightItalic'; 82 | src: font-url('OpenSans-LightItalic-webfont.eot'); 83 | src: font-url('OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'), 84 | font-url('OpenSans-LightItalic-webfont.woff') format('woff'), 85 | font-url('OpenSans-LightItalic-webfont.ttf') format('truetype'), 86 | font-url('OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg'); 87 | font-weight: normal; 88 | font-style: normal; 89 | } 90 | 91 | @font-face { 92 | font-family: 'OpenSansRegular'; 93 | src: font-url('OpenSans-Regular-webfont.eot'); 94 | src: font-url('OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), 95 | font-url('OpenSans-Regular-webfont.woff') format('woff'), 96 | font-url('OpenSans-Regular-webfont.ttf') format('truetype'), 97 | font-url('OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg'); 98 | font-weight: normal; 99 | font-style: normal; 100 | } 101 | 102 | @font-face { 103 | font-family: 'OpenSansSemiBold'; 104 | src: font-url('OpenSans-Semibold-webfont.eot'); 105 | src: font-url('OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), 106 | font-url('OpenSans-Semibold-webfont.woff') format('woff'), 107 | font-url('OpenSans-Semibold-webfont.ttf') format('truetype'), 108 | font-url('OpenSans-Semibold-webfont.svg#OpenSansSemiBold') format('svg'); 109 | font-weight: normal; 110 | font-style: normal; 111 | } 112 | 113 | @font-face { 114 | font-family: 'OpenSansSemiBoldItalic'; 115 | src: font-url('OpenSans-SemiboldItalic-webfont.eot'); 116 | src: font-url('OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'), 117 | font-url('OpenSans-SemiboldItalic-webfont.woff') format('woff'), 118 | font-url('OpenSans-SemiboldItalic-webfont.ttf') format('truetype'), 119 | font-url('OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiBoldItalic') format('svg'); 120 | font-weight: normal; 121 | font-style: normal; 122 | } 123 | 124 | // From https://github.com/intridea/stately 125 | 126 | @font-face { 127 | font-family: 'stately-webfont'; 128 | src: font-url('stately-webfont.eot'); 129 | src: font-url('stately-webfont.eot?#iefix') format('embedded-opentype'), 130 | font-url('stately-webfont.woff') format('woff'), 131 | font-url('stately-webfont.ttf') format('truetype'), 132 | font-url('stately-webfont.svg#testfontRegular') format('svg'); 133 | font-weight: normal; 134 | font-style: normal; 135 | } 136 | -------------------------------------------------------------------------------- /app/assets/fonts/stately-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/stately-webfont.eot -------------------------------------------------------------------------------- /app/assets/fonts/stately-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/stately-webfont.ttf -------------------------------------------------------------------------------- /app/assets/fonts/stately-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/fonts/stately-webfont.woff -------------------------------------------------------------------------------- /app/assets/fonts/stately_license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Ted O'Meara 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /app/assets/images/conference-logos/aloha.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/conference-logos/aloha.jpg -------------------------------------------------------------------------------- /app/assets/images/conference-logos/code4lib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/conference-logos/code4lib.png -------------------------------------------------------------------------------- /app/assets/images/conference-logos/la-ruby.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/conference-logos/la-ruby.jpg -------------------------------------------------------------------------------- /app/assets/images/conference-logos/madison-ruby.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/conference-logos/madison-ruby.jpg -------------------------------------------------------------------------------- /app/assets/images/conference-logos/rocky-mountain-ruby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/conference-logos/rocky-mountain-ruby.png -------------------------------------------------------------------------------- /app/assets/images/conference-logos/ruby-on-ales.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/conference-logos/ruby-on-ales.jpg -------------------------------------------------------------------------------- /app/assets/images/conference-logos/rubyfuza.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/conference-logos/rubyfuza.png -------------------------------------------------------------------------------- /app/assets/images/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/icons/favicon.ico -------------------------------------------------------------------------------- /app/assets/images/landing-page/blur.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/assets/images/landing-page/door.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/landing-page/door.jpg -------------------------------------------------------------------------------- /app/assets/images/landing-page/railsbridge_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/landing-page/railsbridge_logo.png -------------------------------------------------------------------------------- /app/assets/images/landing-page/railsbridge_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 13 | 14 | 18 | 22 | 25 | 27 | 30 | 34 | 37 | 40 | 43 | 49 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /app/assets/images/navbar_texture.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/navbar_texture.gif -------------------------------------------------------------------------------- /app/assets/images/partner-org-logos/blackfounders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/partner-org-logos/blackfounders.png -------------------------------------------------------------------------------- /app/assets/images/partner-org-logos/devchix.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/partner-org-logos/devchix.jpeg -------------------------------------------------------------------------------- /app/assets/images/partner-org-logos/latino-startup-alliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/partner-org-logos/latino-startup-alliance.png -------------------------------------------------------------------------------- /app/assets/images/partner-org-logos/women2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/partner-org-logos/women2.jpeg -------------------------------------------------------------------------------- /app/assets/images/railsbridge-logos/chapter_logo_examples.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/railsbridge-logos/chapter_logo_examples.jpg -------------------------------------------------------------------------------- /app/assets/images/railsbridge-logos/railsbridge_horizontal_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/railsbridge-logos/railsbridge_horizontal_black.png -------------------------------------------------------------------------------- /app/assets/images/railsbridge-logos/railsbridge_horizontal_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/railsbridge-logos/railsbridge_horizontal_orange.png -------------------------------------------------------------------------------- /app/assets/images/railsbridge-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/railsbridge-structure.png -------------------------------------------------------------------------------- /app/assets/images/reference/StyleGuide_5-12-13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/reference/StyleGuide_5-12-13.pdf -------------------------------------------------------------------------------- /app/assets/images/reference/railsbridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/reference/railsbridge.png -------------------------------------------------------------------------------- /app/assets/images/sponsor-logos/autodesk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/sponsor-logos/autodesk.png -------------------------------------------------------------------------------- /app/assets/images/sponsor-logos/carbonfive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/sponsor-logos/carbonfive.png -------------------------------------------------------------------------------- /app/assets/images/sponsor-logos/engineyard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/sponsor-logos/engineyard.png -------------------------------------------------------------------------------- /app/assets/images/sponsor-logos/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/sponsor-logos/google.png -------------------------------------------------------------------------------- /app/assets/images/sponsor-logos/heroku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/sponsor-logos/heroku.png -------------------------------------------------------------------------------- /app/assets/images/sponsor-logos/pivotal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/sponsor-logos/pivotal.jpg -------------------------------------------------------------------------------- /app/assets/images/sponsor-logos/thoughtbot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/sponsor-logos/thoughtbot.png -------------------------------------------------------------------------------- /app/assets/images/workshop-shots/blue_screen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-shots/blue_screen.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-shots/programming.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-shots/programming.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-shots/several_neat_humans.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-shots/several_neat_humans.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-shots/ten_humans.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-shots/ten_humans.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/CfA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/CfA.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/airbnb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/airbnb.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/awesomeinc.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/awesomeinc.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/bing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/bing.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/braintree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/braintree.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/coderow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/coderow.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/comerge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/comerge.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/enphase.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/enphase.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/envylabs.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/envylabs.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/etsy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/etsy.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/galvanize.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/galvanize.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/github.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/gnip.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/gnip.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/google-ventures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/google-ventures.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/groupon.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/groupon.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/harvest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/harvest.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/hashrocket.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/hashrocket.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/ign-entertainment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/ign-entertainment.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/incomm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/incomm.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/intelligently.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/intelligently.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/kaporfoundation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/kaporfoundation.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/mediacore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/mediacore.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/microsoft.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/microsoft.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/modcloth.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/modcloth.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/neo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/neo.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/nexTag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/nexTag.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/orange-labs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/orange-labs.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/outright.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/outright.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/quickleft.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/quickleft.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/rackspace.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/rackspace.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/scribd.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/scribd.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/square.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/square.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/stride.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/stride.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/tapjoy.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/tapjoy.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/thoughtworks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/thoughtworks.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/twilio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/twilio.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/twitter.png -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/verticalresponse.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/verticalresponse.jpeg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/wested.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/wested.jpg -------------------------------------------------------------------------------- /app/assets/images/workshop-sponsor-logos/workhappy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/assets/images/workshop-sponsor-logos/workhappy.png -------------------------------------------------------------------------------- /app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // This is a manifest file that'll be compiled into application.js, which will include all the files 2 | // listed below. 3 | // 4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 5 | // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. 6 | // 7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 8 | // the compiled file. 9 | // 10 | // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD 11 | // GO AFTER THE REQUIRES BELOW. 12 | // 13 | //= require jquery 14 | //= require jquery_ujs 15 | //= require_tree . 16 | -------------------------------------------------------------------------------- /app/assets/javascripts/plugins/jquery.match-height.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | $.fn.matchHeight = function(action) { 4 | action = typeof action !== 'undefined' ? action : 'set'; 5 | return this.each(function() { 6 | var maxHeight = '', features = $(this).find('.js-match-height-item'); 7 | if (action === 'set') { 8 | maxHeight = Math.max.apply(Math, features.map(function() { 9 | return $(this).outerHeight(); 10 | })); 11 | } 12 | features.css({ 'height': maxHeight }); 13 | }); 14 | }; 15 | 16 | }(jQuery)); 17 | -------------------------------------------------------------------------------- /app/assets/javascripts/resources.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | function updateNav(that) { 3 | $('#learning-resources-nav .nav li').removeClass("active"); 4 | $(that).addClass("active"); 5 | } 6 | 7 | function showSection(that) { 8 | $(".learning-resources").children().hide(); 9 | var section = $(that).find("a").attr("href"); 10 | $(section).show(); 11 | } 12 | 13 | $('#learning-resources-nav .nav-tabs').on('click', 'li', function (e) { 14 | e.preventDefault(); 15 | updateNav(this); 16 | showSection(this); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /app/assets/javascripts/site.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | 3 | $(window).bind('load', function() { 4 | $('.js-match-height').matchHeight(); 5 | }); 6 | 7 | $(window).resize(function() { 8 | var bodyWidth = $(document).width(), 9 | setOrUnset = (bodyWidth <= 768) ? 'unset' : 'set'; 10 | $('.js-match-height').matchHeight(setOrUnset); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.scss: -------------------------------------------------------------------------------- 1 | // Dependencies 2 | @import "bourbon"; 3 | @import "bootstrap"; 4 | @import "font-awesome"; 5 | 6 | // Global styles 7 | @import "global/fonts"; 8 | @import "global/colors"; 9 | @import "global/mixins"; 10 | @import "global/base"; 11 | @import "global/pretty-icons"; 12 | @import "global/typography"; 13 | @import "global/utilities"; 14 | // @import "global/stately"; 15 | 16 | // Layout 17 | @import "layout/header"; 18 | @import "layout/subnav"; 19 | @import "layout/footer"; 20 | 21 | // Modules 22 | @import "modules/features"; 23 | @import "modules/past-events"; 24 | @import "modules/sponsors"; 25 | @import "modules/home"; 26 | @import "modules/logistics"; 27 | @import "modules/about"; 28 | @import "modules/help"; 29 | @import "modules/brand"; 30 | -------------------------------------------------------------------------------- /app/assets/stylesheets/global/_base.scss: -------------------------------------------------------------------------------- 1 | // Responsive Tweaks 2 | 3 | @media (min-width: $screen-sm-min) { 4 | .container { 5 | max-width: 970px; 6 | } 7 | } 8 | 9 | @media (max-width: $screen-xs-max) { 10 | .hide-on-mobile { 11 | display: none; 12 | } 13 | } 14 | 15 | // Site Wide 16 | 17 | html { 18 | font-size: 16px; 19 | } 20 | 21 | ul, ol { 22 | padding: 0; 23 | margin: 0 0 10px 25px; 24 | } 25 | 26 | .nav { 27 | margin-left: 0; 28 | margin-bottom: 20px; 29 | } 30 | 31 | .float-right { 32 | float: right; 33 | padding-right: 0; 34 | } 35 | 36 | .float-left { 37 | float: left; 38 | padding-left: 0; 39 | } 40 | 41 | img { 42 | padding: 0 15px; 43 | } 44 | 45 | .jumbotron { 46 | background-color: transparent; 47 | padding-top: 0; 48 | padding-bottom: 0; 49 | margin: 0; 50 | } 51 | 52 | .jumbotron p { 53 | font-size: inherit; 54 | } 55 | 56 | .img-responsive { 57 | display: inline-block; 58 | } 59 | 60 | img { 61 | max-width: 100%; 62 | } 63 | 64 | @media (max-width: $screen-xs-max) { 65 | .img-responsive { 66 | padding: 10px 0; 67 | } 68 | 69 | .js-match-height-item { 70 | height: auto !important; 71 | } 72 | } 73 | 74 | hr { 75 | height: 1px; 76 | background: $grayLight; 77 | border: none; 78 | margin: 0 0 20px 0; 79 | } 80 | 81 | ul, ul li { 82 | list-style: none; 83 | } 84 | 85 | ul.bulleted { 86 | li { 87 | list-style-type: square; 88 | margin: 0 0 10px 15px; 89 | } 90 | ul { 91 | margin-top: 10px; 92 | li { 93 | list-style-type: disc; 94 | } 95 | } 96 | } 97 | 98 | .indented-content { 99 | h4 { 100 | margin-top: 30px; 101 | } 102 | p { 103 | padding: 10px 20px 0px 20px; 104 | } 105 | } 106 | 107 | .inline-link { 108 | color: $tallPoppy; 109 | 110 | &:active, &:hover { color: $merlot; } 111 | } 112 | 113 | .bold { 114 | font-weight: bold; 115 | } 116 | -------------------------------------------------------------------------------- /app/assets/stylesheets/global/_colors.scss: -------------------------------------------------------------------------------- 1 | // colors 2 | $red: #DB2225; 3 | $orange: #EF731F; 4 | $purple: #6C266F; 5 | $blue: #2493B8; 6 | $green: #639239; 7 | $yellow: #FFC40D; 8 | $white: #ffffff; 9 | $black: #333333; 10 | $burntSienna: #EB6852; 11 | $tallPoppy: #B3282D; 12 | $merlot: #831A27; 13 | 14 | $gray: #dfdfdf; 15 | $grayLight: #e9e9e9; 16 | $grayMegaLight: #f1f1f1; 17 | $grayMedium: #8f99a0; 18 | $grayMediumLight: #a8a8a8; 19 | $grayDark: #767676; 20 | $grayDarkest: #333333; 21 | $warmGray: #f8f8f8; 22 | 23 | $tempFirebrick: #8e2323; 24 | $tempBlue: #3887be; 25 | $tempGray: #394e5a; 26 | $tempMint: #E0F8E0; 27 | -------------------------------------------------------------------------------- /app/assets/stylesheets/global/_fonts.scss: -------------------------------------------------------------------------------- 1 | // Generated by Font Squirrel (http://www.fontsquirrel.com) on June 16, 2013 05:57:04 PM America/New_York 2 | // Other versions of these font faces are within fonts/font.unused.css.scss if ever needed 3 | 4 | @font-face { 5 | font-family: 'AleoLight'; 6 | src: font-url('Aleo-Light-webfont.eot'); 7 | src: font-url('Aleo-Light-webfont.eot?#iefix') format('embedded-opentype'), 8 | font-url('Aleo-Light-webfont.woff') format('woff'), 9 | font-url('Aleo-Light-webfont.ttf') format('truetype'), 10 | font-url('Aleo-Light-webfont.svg#AleoLight') format('svg'); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | 15 | @font-face { 16 | font-family: 'Aleo'; 17 | src: font-url('Aleo-Regular-webfont.eot'); 18 | src: font-url('Aleo-Regular-webfont.eot?#iefix') format('embedded-opentype'), 19 | font-url('Aleo-Regular-webfont.woff') format('woff'), 20 | font-url('Aleo-Regular-webfont.ttf') format('truetype'), 21 | font-url('Aleo-Regular-webfont.svg#AleoRegular') format('svg'); 22 | font-weight: normal; 23 | font-style: normal; 24 | } 25 | 26 | @font-face { 27 | font-family: 'AleoBold'; 28 | src: font-url('aleo-bold-webfont.eot'); 29 | src: font-url('aleo-bold-webfont.eot?#iefix') format('embedded-opentype'), 30 | font-url('aleo-bold-webfont.woff') format('woff'), 31 | font-url('aleo-bold-webfont.ttf') format('truetype'), 32 | font-url('aleo-bold-webfont.svg#aleobold') format('svg'); 33 | font-weight: normal; 34 | font-style: normal; 35 | } 36 | 37 | @font-face { 38 | font-family: 'OpenSansBold'; 39 | src: font-url('OpenSans-Bold-webfont.eot'); 40 | src: font-url('OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'), 41 | font-url('OpenSans-Bold-webfont.woff') format('woff'), 42 | font-url('OpenSans-Bold-webfont.ttf') format('truetype'), 43 | font-url('OpenSans-Bold-webfont.svg#OpenSansBold') format('svg'); 44 | font-weight: normal; 45 | font-style: normal; 46 | } 47 | 48 | @font-face { 49 | font-family: 'OpenSansSemibold'; 50 | src: font-url('OpenSans-Semibold-webfont.eot'); 51 | src: font-url('OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), 52 | font-url('OpenSans-Semibold-webfont.woff') format('woff'), 53 | font-url('OpenSans-Semibold-webfont.ttf') format('truetype'), 54 | font-url('OpenSans-Semibold-webfont.svg#OpenSansBold') format('svg'); 55 | font-weight: normal; 56 | font-style: normal; 57 | } 58 | 59 | @font-face { 60 | font-family: 'TisaSansWebPro'; 61 | src: font-url('TisaSansWebPro.woff') format('woff'); 62 | font-weight: normal; 63 | font-style: normal; 64 | } 65 | 66 | @font-face { 67 | font-family: 'TisaSansWebPro-Bold'; 68 | src: font-url('TisaSansWebPro-Bold.woff') format('woff'); 69 | font-weight: normal; 70 | font-style: normal; 71 | } 72 | -------------------------------------------------------------------------------- /app/assets/stylesheets/global/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Font pixel and rem sizing support 2 | // http://www.stubbornella.org/content/2013/07/01/easy-peasy-rem-conversion-with-sass/ 3 | 4 | @mixin fontSize($size) { 5 | font-size: $size; 6 | font-size: calculateRem($size); 7 | } 8 | 9 | @function calculateRem($size) { 10 | $remSize: $size / 16px; 11 | @return #{$remSize}rem; 12 | } 13 | 14 | @mixin feature { 15 | @include clearfix(); 16 | position: relative; 17 | border: 1px solid $gray; 18 | margin-bottom: 25px; 19 | padding: 10px 20px; 20 | .feature-icon { 21 | padding-top: 5px; 22 | float: left; 23 | @include fontSize(48px); 24 | margin: 0 10px 0 -7px; 25 | } 26 | h4 { 27 | border-bottom: 1px solid $grayLight; 28 | margin-bottom: 10px; 29 | padding-bottom: 5px; 30 | } 31 | .feature-icon + h4 { 32 | margin-left: calculateRem(58px); 33 | } 34 | ul { 35 | margin: 0; 36 | li { 37 | margin-bottom: 5px; 38 | p:last-child { 39 | margin-bottom: 0; 40 | } 41 | } 42 | &.bulleted { 43 | padding-top: 10px; 44 | li { 45 | list-style-type: disc; 46 | margin-left: 25px; 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /app/assets/stylesheets/global/_pretty-icons.scss: -------------------------------------------------------------------------------- 1 | .fa-heart { color: $red; } 2 | .fa-phone { color: $red; } 3 | .fa-money { color: $green; } 4 | .fa-asterisk { color: $yellow; } 5 | .fa-comments { color: $purple; } 6 | .fa-bullhorn { color: $purple; } 7 | .fa-thumbs-up { color: $purple; } 8 | .fa-puzzle-piece { color: $purple; } 9 | .fa-question-circle { color: $orange; } 10 | .fa-eye { color: $green; } 11 | .fa-cogs { color: $orange; } 12 | .fa-envelope { color: $orange; } 13 | .fa-globe { color: $green; } 14 | .fa-book { color: $blue; } 15 | .fa-rocket { color: $blue; } 16 | .fa-umbrella { color: $blue; } 17 | .fa-star { color: $yellow; } 18 | .fa-bolt { color: $yellow; } 19 | .fa-flask { color: $blue; } 20 | -------------------------------------------------------------------------------- /app/assets/stylesheets/global/_typography.scss: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | body, p, ol, ul, blockquote, pre, code, input, select, textarea { 4 | color: $grayDarkest; 5 | @include fontSize(16px); 6 | line-height: 1.5; 7 | font-family: 'Aleo', Arial, sans-serif; 8 | font-weight: normal; 9 | -webkit-font-smoothing: antialiased !important; 10 | -moz-osx-font-smoothing: grayscale !important; 11 | } 12 | 13 | h1, h2, h3, h4, h5, h6 { 14 | font-weight: normal; 15 | font-family: 'TisaSansWebPro', serif; 16 | line-height: 1.2; 17 | } 18 | 19 | h1 { 20 | @include fontSize(42px); 21 | font-family: 'AleoLight', Arial, sans-serif; 22 | margin-bottom: 20px; 23 | } 24 | 25 | h4, h5, h6 { 26 | font-family: 'TisaSansWebPro', serif; 27 | } 28 | 29 | h2 { 30 | @include fontSize(26px); 31 | margin-bottom: 15px; 32 | } 33 | h3 { @include fontSize(20px); } 34 | h4 { @include fontSize(18px); } 35 | h5 { @include fontSize(16px); } 36 | h6 { @include fontSize(14px); } 37 | 38 | // Work around for FireFox font rendering 39 | @-moz-document url-prefix() { 40 | h1, h2, h3, h4 { 41 | font-family: 'TisaSansWebPro', serif; 42 | } 43 | h5, h6 { 44 | font-family: 'TisaSansWebPro', serif; 45 | } 46 | } 47 | 48 | p + h2 { 49 | padding-top: 15px; 50 | } 51 | 52 | .gray-underline { 53 | border-bottom: 1px solid $gray; 54 | padding-bottom: 10px; 55 | margin: 20px 0; 56 | } 57 | 58 | @media (max-width: $screen-xs-max) { 59 | h1 { 60 | @include fontSize(26px); 61 | line-height: 1; 62 | margin-bottom: 10px; 63 | } 64 | h2 { 65 | @include fontSize(22px); 66 | line-height: 1; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /app/assets/stylesheets/global/_utilities.scss: -------------------------------------------------------------------------------- 1 | .mb20 { 2 | margin-bottom: 20px; 3 | } 4 | 5 | .mt30 { 6 | margin-top: 30px; 7 | } 8 | -------------------------------------------------------------------------------- /app/assets/stylesheets/layout/_footer.scss: -------------------------------------------------------------------------------- 1 | // Footer 2 | 3 | .footer { 4 | color: $white; 5 | background-color: $burntSienna; 6 | padding: 40px 0; 7 | margin-top: 30px; 8 | h2 { 9 | font-family: 'TisaSansWebPro', serif; 10 | margin: 0 0 20px 0; 11 | } 12 | p { 13 | @include fontSize(16px); 14 | font-family: 'TisaSansWebPro', serif; 15 | line-height: 1.3; 16 | color: $white; 17 | margin-bottom: 20px; 18 | &.footer-email { 19 | text-align: right; 20 | } 21 | } 22 | a { 23 | color: $white; 24 | &:hover { 25 | color: $merlot; 26 | } 27 | } 28 | 29 | .highlight { 30 | color: $merlot; 31 | } 32 | 33 | ul.footer-icons { 34 | height: 50px; 35 | padding-bottom: 20px; 36 | li { 37 | float: right; 38 | padding-right: 10px; 39 | a { 40 | @include fontSize(40px); 41 | color: white; 42 | &:hover { 43 | color: $merlot; 44 | text-decoration: none; 45 | } 46 | } 47 | } 48 | } 49 | } 50 | 51 | @media (max-width: $screen-xs-max) { 52 | .footer { 53 | margin: 10px 0 0 0; 54 | padding: 20px 0; 55 | p { 56 | @include fontSize(15px); 57 | margin-bottom: 10px; 58 | &.footer-email { 59 | text-align: left; 60 | } 61 | } 62 | ul.footer-icons { 63 | height: 30px; 64 | padding: 0; 65 | margin: 20px 0; 66 | li { 67 | float: left; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /app/assets/stylesheets/layout/_header.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | background-color: $burntSienna; 3 | 4 | .logo { 5 | background: transparent image-url('landing-page/railsbridge_logo.png') center center no-repeat; 6 | background-image: -webkit-linear-gradient(transparent, transparent), image-url('landing-page/railsbridge_logo.svg'); 7 | background-image: linear-gradient(transparent, transparent), image-url('landing-page/railsbridge_logo.svg'); 8 | display: inline-block; 9 | height: 44px; 10 | margin-top: 10px; 11 | outline: none; 12 | width: 200px; 13 | } 14 | } 15 | 16 | @media (min-width: $screen-sm-min) { 17 | // Flattening page elements 18 | .header, .navbar, .navbar-static-top { 19 | border: none; 20 | box-shadow: none; 21 | padding: 0; 22 | margin: 0; 23 | } 24 | 25 | .navbar-static-top .container { 26 | width: 970px; 27 | } 28 | 29 | .header { 30 | font-size: 0; 31 | height: 60px; 32 | margin-bottom: 30px; 33 | 34 | ul.nav { 35 | float: right; 36 | margin: 20px 0 0 0; 37 | li { 38 | position: relative; 39 | height: 40px; 40 | ul { 41 | display: none; 42 | } 43 | &:hover { 44 | ul { 45 | display: block; 46 | } 47 | } 48 | &:last-child a { 49 | padding-right: 0; 50 | } 51 | a { 52 | display: block; 53 | @include fontSize(16px); 54 | color: $white; 55 | font-family: 'TisaSansWebPro-Bold', serif; 56 | padding: 5px 22px; 57 | text-shadow: none; 58 | &:hover, &:active, &:focus { 59 | color: $merlot; 60 | background-color: transparent; 61 | } 62 | } 63 | } 64 | ul.dropdown-menu { 65 | @include fontSize(16px); 66 | margin: -10px 0 0 20px; 67 | border-radius: 0; 68 | padding: 10px 0 0 0; 69 | li a { 70 | color: $black; 71 | font-family: 'TisaSansWebPro', serif; 72 | &:hover, &:active, &:focus { 73 | color: $merlot; 74 | background: none; 75 | } 76 | } 77 | li.is-selected a { 78 | color: $blue; 79 | } 80 | } 81 | li { 82 | &.external a { 83 | border-left: 1px solid white; 84 | } 85 | &.is-selected ul { 86 | display: none; 87 | } 88 | &.is-selected a { 89 | cursor: default; 90 | color: $warmGray; 91 | span { 92 | border-bottom: 10px solid $grayMediumLight; 93 | } 94 | } 95 | &#help span { 96 | left: 30px; 97 | } 98 | } 99 | } 100 | } 101 | 102 | // header is-selected arrow 103 | .header-nav { 104 | .nav-link span { 105 | width: 0; 106 | height: 0; 107 | position: absolute; bottom: 0px; left: 35px; 108 | border-left: 10px solid transparent; 109 | border-right: 10px solid transparent; 110 | border-bottom: 10px solid transparent; 111 | } 112 | .is-selected span { 113 | border-bottom: 10px solid darken($burntSienna, 10%); 114 | } 115 | } 116 | } 117 | 118 | // Mobile menu 119 | 120 | @media (max-width: $screen-xs-max) { 121 | .header { 122 | font-family: 'TisaSansWebPro', serif; 123 | .container { 124 | padding: 0; 125 | } 126 | .logo { 127 | margin-left: 15px; 128 | } 129 | } 130 | .navbar { 131 | margin-bottom: 0; 132 | .nav { 133 | margin: 0 0 10px 0; 134 | li { 135 | display: inline-block; 136 | margin: 5px 14px; 137 | a { 138 | padding: 0; 139 | color: white; 140 | @include fontSize(20px); 141 | text-shadow: none; 142 | &:focus, &:hover { 143 | background-color: transparent; 144 | color: $merlot; 145 | } 146 | } 147 | } 148 | } 149 | } 150 | } 151 | -------------------------------------------------------------------------------- /app/assets/stylesheets/layout/_subnav.scss: -------------------------------------------------------------------------------- 1 | .subnav { 2 | min-height: 10px; 3 | background: darken($burntSienna, 10%); 4 | margin: -30px 0 30px 0; 5 | ul { 6 | text-align: center; 7 | margin: 0; 8 | li { 9 | display: inline-block; 10 | @include fontSize(14px); 11 | font-family: 'TisaSansWebPro-Bold', serif; 12 | line-height: 40px; 13 | margin-right: 30px; 14 | &:last-child { 15 | margin-right: 0; 16 | } 17 | a { 18 | color: $white; 19 | display: block; 20 | &:hover { 21 | color: $merlot; 22 | text-decoration: none; 23 | } 24 | } 25 | &.is-selected a { 26 | color: $merlot; 27 | cursor: default; 28 | } 29 | } 30 | } 31 | } 32 | 33 | // Work around for FireFox font rendering 34 | @-moz-document url-prefix() { 35 | .subnav ul li { 36 | font-family: 'TisaSansWebPro-Bold', serif; 37 | } 38 | } 39 | 40 | // Mobile subnav 41 | 42 | @media (max-width: $screen-xs-max) { 43 | .subnav { 44 | background: none; 45 | margin: 10px 0 0 0; 46 | padding: 0; 47 | ul { 48 | text-align: left; 49 | left: 0; 50 | margin: 0; 51 | li { 52 | left: 0; 53 | background: $grayLight; 54 | display: inline-block; 55 | line-height: 20px; 56 | @include fontSize(15px); 57 | font-family: 'TisaSansWebPro', serif; 58 | padding: 5px; 59 | margin: 5px; 60 | a { 61 | color: $black; 62 | 63 | &:hover { color: $burntSienna; } 64 | } 65 | &.is-selected { 66 | background: $burntSienna; 67 | a { 68 | color: $white; 69 | } 70 | } 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/_brand.scss: -------------------------------------------------------------------------------- 1 | .color-table { 2 | td { 3 | height: 100px; 4 | min-width: 80px; 5 | 6 | color: $white; 7 | vertical-align: bottom; 8 | padding-left: 3px; 9 | } 10 | .main-orange { 11 | min-width: 200px; 12 | background-color: $burntSienna; 13 | } 14 | .accent-deep-red { 15 | background-color: $tallPoppy; 16 | } 17 | .accent-red { 18 | background-color: $merlot; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/_features.scss: -------------------------------------------------------------------------------- 1 | // Feature Boxes 2 | 3 | .feature { 4 | @include feature; 5 | } 6 | 7 | // Event Feature Boxes 8 | 9 | .event { 10 | @include feature; 11 | color: $grayDark; 12 | h4 { 13 | color: $grayDarkest; 14 | @include fontSize(16px); 15 | font-family: 'OpenSansBold', Arial, sans-serif; 16 | } 17 | .event-date, .event-location { 18 | color: $grayDark 19 | } 20 | a.event-venue { 21 | color: $burntSienna; 22 | font-family: 'TisaSansWebPro', serif; 23 | 24 | &:hover { 25 | color: $merlot; 26 | } 27 | span { 28 | padding-right: 5px; 29 | } 30 | } 31 | ul { 32 | padding-bottom: 50px; 33 | } 34 | .event-cta { 35 | position: absolute; 36 | bottom: 20px; 37 | left: 0; 38 | width: 100%; 39 | height: 30px; 40 | a { 41 | display: block; 42 | width: 200px; 43 | line-height: 30px; 44 | font-family: 'TisaSansWebPro', serif; 45 | text-align: center; 46 | color: white; 47 | background-color: $burntSienna; 48 | margin: 0 auto; 49 | &:hover { 50 | background-color: darken($burntSienna, 10%); 51 | text-decoration: none; 52 | } 53 | } 54 | } 55 | } 56 | 57 | // Work around for FireFox font rendering 58 | @-moz-document url-prefix() { 59 | .event h4 { 60 | font-family: 'OpenSansSemibold', Arial, sans-serif; 61 | } 62 | } 63 | 64 | // Event Help Feature Box 65 | 66 | .event-help { 67 | @include feature; 68 | background: $grayMegaLight; 69 | border: 1px solid $grayLight; 70 | h4 { 71 | border-bottom: none; 72 | } 73 | ul { 74 | padding-bottom: 10px; 75 | } 76 | a { 77 | font-family: 'TisaSansWebPro', serif; 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/_help.scss: -------------------------------------------------------------------------------- 1 | #teacher-advice { 2 | li { 3 | list-style-type: square; 4 | } 5 | h2 { 6 | margin: 20px 0 10px 0; 7 | padding: 0; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/_home.scss: -------------------------------------------------------------------------------- 1 | // Home 2 | @media (min-width: $screen-sm-min) { 3 | .home-header { 4 | margin: -30px 0 30px 0; 5 | position: relative; 6 | overflow: hidden; 7 | .home-background { 8 | position: absolute; 9 | z-index: 1; 10 | background: asset_url("landing-page/door.jpg"); 11 | background-size: cover; 12 | width: 100%; 13 | margin-top: -10px; 14 | height: 440px; 15 | -webkit-filter: blur(2px); 16 | -moz-filter: blur(2px); 17 | -o-filter: blur(2px); 18 | -ms-filter: blur(2px); 19 | filter: blur(2px); 20 | filter: asset_url('landing-page/blur.svg#blur'); 21 | filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius='2'); 22 | } 23 | .big-floaty-box { 24 | z-index: 2; 25 | position: relative; 26 | border-radius: 10px; 27 | background: rgba(255, 255, 255, 0.7); 28 | padding: 20px; 29 | width: 700px; 30 | margin: 120px auto 120px auto; 31 | h1 { 32 | @include fontSize(30px); 33 | color: $tallPoppy; 34 | font-family: 'OpenSansBold', Arial, sans-serif; 35 | text-align: center; 36 | margin-top: 0; 37 | padding-top: 0; 38 | } 39 | p { 40 | color: $black; 41 | margin-bottom: 0; 42 | padding-bottom: 0; 43 | } 44 | } 45 | } 46 | } 47 | 48 | // Work around for FireFox font rendering 49 | @-moz-document url-prefix() { 50 | .big-floaty-box h1 { 51 | font-family: 'OpenSansSemibold', Arial, sans-serif; 52 | } 53 | } 54 | 55 | .home-twitter { 56 | h3 { 57 | @include fontSize(20px); 58 | color: $tallPoppy; 59 | font-family: 'TisaSansWebPro-Bold', serif; 60 | margin-bottom: 15px; 61 | } 62 | } 63 | 64 | .home-events h3 { 65 | @include fontSize(20px); 66 | color: $tallPoppy; 67 | font-family: 'TisaSansWebPro-Bold', serif; 68 | } 69 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/_logistics.scss: -------------------------------------------------------------------------------- 1 | // Custom 404, 500 and Site Map 2 | 3 | .logistics .content { 4 | position: relative; 5 | padding-bottom: 40px; 6 | h3 { 7 | margin-bottom: 20px; 8 | } 9 | .error-code { 10 | z-index: -99; 11 | position: absolute; 12 | bottom: -40px; 13 | right: 20px; 14 | @include fontSize(250px); 15 | line-height: 1; 16 | font-family: AleoItalic, Arial, sans-serif; 17 | font-weight: bold; 18 | color: $grayMegaLight; 19 | } 20 | ul.sitemap { 21 | float: left; 22 | margin: 0 80px 0 0; 23 | li { 24 | margin:0 0 10px 0px; 25 | } 26 | } 27 | } 28 | 29 | // Work around for FireFox font rendering 30 | @-moz-document url-prefix() { 31 | .error-code { 32 | font-weight: normal; 33 | } 34 | } 35 | 36 | #error_500 .content { 37 | padding: 40px 0; 38 | .error-code { 39 | bottom: -100px; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/_past-events.scss: -------------------------------------------------------------------------------- 1 | // Past Events 2 | 3 | .past-events { 4 | th.dates { 5 | width: 20%; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/_sponsors.scss: -------------------------------------------------------------------------------- 1 | // Sponsors 2 | 3 | #sponsors { 4 | .logos img { 5 | padding: 20px; 6 | } 7 | 8 | .logos div { 9 | text-align: center; 10 | } 11 | 12 | .huge-logos img { 13 | height: 140px; 14 | } 15 | 16 | .big-logos img { 17 | height: 145px; 18 | } 19 | 20 | .smaller-logos img { 21 | height: 100px; 22 | } 23 | 24 | .medium-logos img { 25 | height: 120px; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/assets/stylesheets/modules/about.scss: -------------------------------------------------------------------------------- 1 | #about-railsbridge { 2 | h2 { 3 | margin-top: 20px; 4 | margin-bottom: 10px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | include ApplicationHelper 3 | protect_from_forgery 4 | before_action :assign_nav_group 5 | 6 | private 7 | 8 | def assign_nav_group 9 | group = request.path.split('/') 10 | if group[1] && nav_links_by_group.keys.include?(group[1].to_sym) 11 | @nav_group = group[1].to_sym 12 | else 13 | @nav_group = false 14 | end 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /app/controllers/logistics_controller.rb: -------------------------------------------------------------------------------- 1 | class LogisticsController < ApplicationController 2 | 3 | def sitemap 4 | end 5 | 6 | def error_404 7 | end 8 | 9 | def error_500 10 | render layout: false 11 | end 12 | 13 | end 14 | -------------------------------------------------------------------------------- /app/controllers/static_pages_controller.rb: -------------------------------------------------------------------------------- 1 | class StaticPagesController < ApplicationController 2 | before_action :assign_upcoming_events, only: [:home, :events] 3 | 4 | def home 5 | end 6 | 7 | def about 8 | end 9 | 10 | def brand 11 | end 12 | 13 | def learn 14 | end 15 | 16 | def teach 17 | end 18 | 19 | def teacher_advice 20 | end 21 | 22 | def organize 23 | end 24 | 25 | def host 26 | end 27 | 28 | def faq 29 | end 30 | 31 | def projects 32 | end 33 | 34 | def learning_resources 35 | end 36 | 37 | def chapters 38 | end 39 | 40 | def events 41 | end 42 | 43 | def past_events 44 | @past_events = Event.sorted_events(:past, organization_id: Event::RAILSBRIDGE_ORGANIZATION_ID).map do |event| 45 | EventPresenter.new(event) 46 | end 47 | end 48 | 49 | def team 50 | end 51 | 52 | def sponsors 53 | end 54 | 55 | def help 56 | end 57 | 58 | def interest_form 59 | end 60 | 61 | private 62 | 63 | def assign_upcoming_events 64 | all_events = Event.sorted_events(:upcoming).map do |event| 65 | EventPresenter.new(event) 66 | end 67 | @railsbridge_events, @other_events = all_events.partition do |e| 68 | e.organization == 'RailsBridge' 69 | end 70 | end 71 | end 72 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | 3 | def page_title(title = nil) 4 | base_title = "RailsBridge" 5 | title ? "#{base_title} | #{title.join(' | ')}" : base_title 6 | end 7 | 8 | def nav_links_by_group 9 | { 10 | learn: [ 11 | ["Overview", :learn], 12 | ["Upcoming Workshops", :events], 13 | ["FAQ", :learning_faq], 14 | ["Keep Learning", :learning_resources], 15 | ], 16 | help: [ 17 | ["Overview", :help], 18 | ["Teach or TA", :teach], 19 | ["Teacher Advice", :teacher_advice], 20 | ["Organize an Event", :organize], 21 | ["Host an Event", :host], 22 | ["Donate", :donate], 23 | ["Donor FAQ", :donor_faq], 24 | ["Interest Form", :interest_form] 25 | ], 26 | about: [ 27 | ["Overview", :about], 28 | ["Team", :team], 29 | ["Sponsors ", :sponsors], 30 | ["Chapters", :chapters], 31 | ["Past Events", :past_events], 32 | ["Projects", :projects], 33 | ["Brand", :brand] 34 | ] 35 | } 36 | end 37 | 38 | def nav_link(link_text, link) 39 | class_name = current_page?(link) ? 'is-selected' : '' 40 | content_tag(:li, class: class_name) do 41 | link_to link_text, link 42 | end 43 | end 44 | end 45 | -------------------------------------------------------------------------------- /app/mailers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/mailers/.gitkeep -------------------------------------------------------------------------------- /app/models/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/app/models/.gitkeep -------------------------------------------------------------------------------- /app/models/event.rb: -------------------------------------------------------------------------------- 1 | class Event 2 | RAILSBRIDGE_ORGANIZATION_ID = 1 3 | 4 | class << self 5 | def sorted_events(state = nil, options = {}) 6 | events = (state == :upcoming) ? upcoming_events(options) : past_events(options) 7 | sort_by_starts_at(events) 8 | end 9 | 10 | private 11 | 12 | def of_type(type, options = {}) 13 | events = begin 14 | fetch_json({type: type}.merge(options)) 15 | rescue StandardError => e 16 | puts "Error fetching events from BridgeTroll: #{e.message}" 17 | end 18 | events || [] 19 | end 20 | 21 | def upcoming_events(options = {}) 22 | of_type('upcoming', options) 23 | end 24 | 25 | def past_events(options = {}) 26 | of_type('past', options).select { |event| event['workshop'] } 27 | end 28 | 29 | def sort_by_starts_at(events) 30 | events.sort_by { |event| event['sessions'].first['starts_at'].to_time } 31 | end 32 | 33 | def fetch_json(options) 34 | uri = URI::parse(BRIDGETROLL_URL) 35 | http = Net::HTTP.new(uri.host, uri.port) 36 | http.use_ssl = true 37 | response = http.send(:get, "/events.json?#{options.to_query}") 38 | JSON.parse(response.body) 39 | end 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /app/presenters/event_presenter.rb: -------------------------------------------------------------------------------- 1 | class EventPresenter 2 | attr_reader :event 3 | 4 | def initialize(event) 5 | @event = event 6 | end 7 | 8 | def title 9 | event['title'] 10 | end 11 | 12 | def url 13 | event['url'] 14 | end 15 | 16 | def organization 17 | event['organization'] 18 | end 19 | 20 | def external_event? 21 | url.present? 22 | end 23 | 24 | def organizers 25 | event['organizers'].kind_of?(Array) ? event['organizers'] : arrayify_string(event['organizers'] || '') 26 | end 27 | 28 | def event_url 29 | (external_event? && url) ? url : URI.join(BRIDGETROLL_URL, "/events/#{event['id']}").to_s 30 | end 31 | 32 | def signup_link 33 | return "RSVP on Bridge Troll" unless external_event? 34 | return "RSVP on Meetup" if url =~ /meetup.com/ 35 | return "RSVP on Eventbrite" if url =~ /eventbrite.com/ 36 | 37 | "Event Signup" 38 | end 39 | 40 | def valid_location? 41 | !external_event? && location.try(:[], 'address_1').present? && location.try(:[], 'city').present? 42 | end 43 | 44 | def location 45 | event['location'] 46 | end 47 | 48 | def location_name 49 | location.try(:[], 'name') 50 | end 51 | 52 | def location_url 53 | valid_location? ? google_map_link : event_url 54 | end 55 | 56 | def location_city 57 | if location.present? 58 | external_event? ? location['city'] : "#{location['city']}, #{location['state']}" 59 | else 60 | "Location TBD" 61 | end 62 | end 63 | 64 | def event_dates(options = {}) 65 | month_format = options[:short] ? '%b' : '%B' 66 | dates = [] 67 | if start_date.to_date == end_date.to_date 68 | dates << start_date.strftime("#{month_format} %e, %Y") 69 | elsif start_date.month == end_date.month 70 | dates << start_date.strftime("#{month_format} %e") 71 | dates << end_date.strftime("%e, %Y") 72 | else 73 | dates << start_date.strftime("#{month_format} %e") 74 | dates << end_date.strftime("#{month_format} %e, %Y") 75 | end 76 | dates.join(' - ') 77 | end 78 | 79 | private 80 | 81 | def google_map_link 82 | base_url = "https://maps.google.com/?q=" 83 | address_2 = location['address_2'] ? " #{location['address_2']}" : "" 84 | zip = location['zip'].present? ? ", #{location['zip']}" : "" 85 | address = "#{location['address_1']}#{address_2}, #{location['city']} #{location['state']}#{zip}" 86 | URI.encode(base_url + address) 87 | end 88 | 89 | def start_date 90 | DateTime.parse(event['sessions'].first['starts_at']) 91 | end 92 | 93 | def end_date 94 | DateTime.parse(event['sessions'].last['starts_at']) 95 | end 96 | 97 | def arrayify_string(str) 98 | str.split(/, &|&|,/).map{|x| x.strip || x } 99 | end 100 | 101 | end 102 | -------------------------------------------------------------------------------- /app/views/layouts/_footer.html.haml: -------------------------------------------------------------------------------- 1 | .footer 2 | .container 3 | .row 4 | .col-md-7 5 | %h2 Making Tech Better Since 2009 6 | %p 7 | RailsBridge is working to make tech more diverse and welcoming by 8 | teaching programming, connecting human beings, and listening to people's needs. 9 | We organize and teach free workshops on Rails, Ruby, and HTML & CSS in 10 | cities all over the world, targeted at groups of people that are underrepresented in tech. 11 | You can read our code of conduct 12 | = link_to "here.", "http://bridgefoundry.org/code-of-conduct", class: "inline-link highlight" 13 | %p 14 | Want to suggest an update to this site? We use GitHub to keep track of our code. 15 | =render 'shared/github_links' 16 | .col-md-5 17 | %ul.footer-icons 18 | %li= link_to "", "https://github.com/railsbridge", class: "fa fa-github-square" 19 | %li= link_to "", "https://twitter.com/railsbridge", class: "fa fa-twitter-square" 20 | %li= link_to "", "https://www.facebook.com/railsbridge", class: "fa fa-facebook-square" 21 | %p.footer-email= link_to "Donate to RailsBridge", donate_path 22 | %p.footer-email= mail_to "hello@railsbridge.org", "hello@railsbridge.org" 23 | -------------------------------------------------------------------------------- /app/views/layouts/_header.html.haml: -------------------------------------------------------------------------------- 1 | .header.navbar.navbar-static-top 2 | .container 3 | = link_to '', :root, class: "logo" 4 | %ul.header-nav.nav.navbar-nav 5 | %li#learn.nav-link{ class: ("is-selected" if @nav_group == :learn) } 6 | = link_to "Learn", :learn 7 | %span 8 | %ul.dropdown-menu{ role: "menu" } 9 | = render "layouts/nav_links", nav_group: :learn 10 | %li#help.nav-link{ class: ("is-selected" if @nav_group == :help) } 11 | = link_to "Help", :help 12 | %span 13 | %ul.dropdown-menu{ role: "menu" } 14 | = render "layouts/nav_links", nav_group: :help 15 | %li#about.nav-link{ class: ("is-selected" if @nav_group == :about) } 16 | = link_to "About", :about 17 | %span 18 | %ul.dropdown-menu{ role: "menu" } 19 | = render "layouts/nav_links", nav_group: :about 20 | %li.external#blog= link_to "Blog", "http://blog.railsbridge.org/", target: "_blank" 21 | %li.external#curriculum= link_to "Curriculum & Installfest", "http://docs.railsbridge.org", target: "_blank" 22 | -------------------------------------------------------------------------------- /app/views/layouts/_home_header.html.haml: -------------------------------------------------------------------------------- 1 | .jumbotron 2 | .home-header 3 | .home-background 4 | .container 5 | .big-floaty-box 6 | %h1 Learn to code or level up with RailsBridge! 7 | %p RailsBridge workshops are a free and fun way to get started or level up with Rails, Ruby, and other web technologies. Our events focus on increasing diversity in tech, so that people of all backgrounds can feel welcome and comfortable in our industry. 8 | -------------------------------------------------------------------------------- /app/views/layouts/_nav_links.html.haml: -------------------------------------------------------------------------------- 1 | - nav_links_by_group[nav_group].each do |(link_title, link)| 2 | = nav_link link_title, link 3 | -------------------------------------------------------------------------------- /app/views/layouts/_subnav.html.haml: -------------------------------------------------------------------------------- 1 | .subnav 2 | .container 3 | %ul 4 | = render "layouts/nav_links", nav_group: @nav_group unless @nav_group.blank? 5 | -------------------------------------------------------------------------------- /app/views/layouts/application.html.haml: -------------------------------------------------------------------------------- 1 | !!! 2 | %html 3 | %head 4 | %title= content_for?(:title) ? yield(:title) : "RailsBridge.org" 5 | %meta{ name: "viewport", content: "width=device-width, initial-scale=1, maximum-scale=1" } 6 | %meta{ content: content_for?(:description) ? yield(:description) : "RailsBridge", name: "description" } 7 | %meta{ charset: "UTF-8" } 8 | = stylesheet_link_tag "application", media: "all" 9 | = javascript_include_tag "application" 10 | = analytics_init if Rails.env.production? 11 | = csrf_meta_tags 12 | = favicon_link_tag 'icons/favicon.ico' 13 | %body{ class: (params[:controller]), id: (params[:action]) } 14 | = render "layouts/header" 15 | = render "layouts/subnav" 16 | = render "layouts/home_header" if params[:action] == 'home' 17 | .container 18 | .content 19 | - flash.each do |name, msg| 20 | %div{ class: "alert alert-#{name == :notice ? 'success' : 'danger'}" }= msg 21 | 22 | = yield 23 | 24 | = render "layouts/footer" 25 | -------------------------------------------------------------------------------- /app/views/logistics/_sitemap.html.haml: -------------------------------------------------------------------------------- 1 | .row 2 | - nav_links_by_group.each do |nav_group, links| 3 | %ul.sitemap 4 | %li 5 | %h4= nav_group.to_s.titleize 6 | - links.each do |link_info| 7 | %li= link_to link_info[0], link_info[1] -------------------------------------------------------------------------------- /app/views/logistics/error_404.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Page Not Found'])) 2 | 3 | %h1 Not all those who wander are lost. 4 | %h3 Though perhaps what you are really looking for is in one of the links above or below... 5 | 6 | .container 7 | = render 'sitemap' 8 | 9 | .error-code.hide-on-mobile 404 -------------------------------------------------------------------------------- /app/views/logistics/error_500.html.haml: -------------------------------------------------------------------------------- 1 | !!! 2 | %html 3 | %head 4 | %title RailsBridge | Server Error 5 | %meta{ name: "viewport", content: "width=device-width, initial-scale=1, maximum-scale=1" } 6 | %meta{ charset: "UTF-8" } 7 | = stylesheet_link_tag "application", media: "all" 8 | = javascript_include_tag "application" 9 | = analytics_init if Rails.env.production? 10 | = csrf_meta_tags 11 | %body 12 | .container 13 | #error_500.logistics 14 | .content 15 | %h1 There has been an internal server error. 16 | %h3 This error is being logged and reported... 17 | 18 | %p If you need assistance or found a persisting problem please #{ link_to "create an issue", "https://github.com/railsbridge/railsbridge_dot_org/issues/new" } on GitHub. 19 | 20 | .error-code.hide-on-mobile 21 | %i.fa.fa-gears -------------------------------------------------------------------------------- /app/views/logistics/sitemap.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Site Map'])) 2 | 3 | %h1 Site Map 4 | 5 | = render 'sitemap' -------------------------------------------------------------------------------- /app/views/shared/_event.html.haml: -------------------------------------------------------------------------------- 1 | .event.js-match-height-item 2 | %h4= event.title 3 | %ul 4 | %li 5 | .event-date= event.event_dates 6 | .event-location= event.location_city 7 | %li 8 | %span.fa.fa-user 9 | = "Organized by #{event.organizers.first} & friends" 10 | %li 11 | = link_to event.location_url, class: 'event-venue', target: '_blank' do 12 | - if event.valid_location? 13 | %span.fa.fa-map-marker 14 | - if event.location_name.present? 15 | = "Held at #{event.location_name}" 16 | 17 | .event-cta 18 | = link_to event.signup_link, event.event_url, target: '_blank' 19 | -------------------------------------------------------------------------------- /app/views/shared/_event_help.html.haml: -------------------------------------------------------------------------------- 1 | .event-help.js-match-height-item 2 | %h4 Not Finding a Workshop? 3 | %p 4 | There are communities around the world that hold workshops. If 5 | there isn't one in your area, we'd love to help you get one started. 6 | %ul 7 | %li= link_to 'Check Out Local Chapters', :chapters, class: 'inline-link' 8 | %li= link_to 'Organize a Workshop', :organize, class: 'inline-link' 9 | -------------------------------------------------------------------------------- /app/views/shared/_events.html.haml: -------------------------------------------------------------------------------- 1 | - if events.present? 2 | - span_count = 12 / events_per_row 3 | - events.each_slice(events_per_row) do |event_row| 4 | .row.js-match-height 5 | - event_row.each do |event| 6 | %div{ class: "col-md-#{span_count}" } 7 | = render 'shared/event', event: event 8 | -------------------------------------------------------------------------------- /app/views/shared/_events_with_help.html.haml: -------------------------------------------------------------------------------- 1 | - if events.present? 2 | - count = 0 3 | - event_count = events.count 4 | - span_count = 12 / events_per_row 5 | - event_modulus = event_count % events_per_row 6 | 7 | - events.each_slice(events_per_row) do |event_row| 8 | .row.js-match-height 9 | - event_row.each do |event| 10 | %div{ class: "col-md-#{span_count}" } 11 | = render 'shared/event', event: event 12 | - if event_modulus > 0 && event_count == (count += 1) 13 | %div{ class: "col-md-#{span_count}"} 14 | = render 'shared/event_help' 15 | 16 | - if event_modulus == 0 17 | .row 18 | %div{ class: "col-md-#{span_count}" } 19 | = render 'shared/event_help' 20 | - else 21 | %p Please visit #{ link_to "Bridge Troll", "http://www.bridgetroll.org/" } for our list of current events. 22 | -------------------------------------------------------------------------------- /app/views/shared/_github_links.html.haml: -------------------------------------------------------------------------------- 1 | You can either make a 2 | #{ link_to "pull request", "https://github.com/railsbridge/railsbridge_dot_org", class: 'inline-link highlight' } 3 | #{ defined?(cautious) ? '(if you know how)' : '' } or 4 | #{ link_to "create an issue", "https://github.com/railsbridge/railsbridge_dot_org/issues/new", class: 'inline-link highlight' }#{ defined?(cautious) ? ' (no technical knowledge required)' : '' }. 5 | -------------------------------------------------------------------------------- /app/views/static_pages/_calendar.html.haml: -------------------------------------------------------------------------------- 1 | #gcf-simple 2 | :javascript 3 | $('#gcf-simple').gCalFlow({ 4 | calid: '07dm9egjepr80kv4tdit3sgvm0@group.calendar.google.com' 5 | }); -------------------------------------------------------------------------------- /app/views/static_pages/_mailing_list.html.haml: -------------------------------------------------------------------------------- 1 | .feature.js-match-height-item 2 | .feature-icon.fa.fa-envelope-o 3 | %h4 Join the mailing list 4 | %p 5 | If you’d like to help maintain the curriculum or installfest, do meta-organizational things, 6 | or just have a great time with people who love teaching programming, join the 7 | #{link_to "workshop mailing list/Google group", "https://groups.google.com/forum/#!forum/railsbridge-workshops", class: 'inline-link'}. 8 | -------------------------------------------------------------------------------- /app/views/static_pages/_tweets.html.haml: -------------------------------------------------------------------------------- 1 | %a.twitter-timeline{"data-widget-id" => "325317482002915328", :href => "https://twitter.com/search?q=railsbridge"} Tweets about "railsbridge" 2 | :javascript 3 | !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); 4 | 5 | %a.twitter-follow-button{"data-show-count" => "false", "data-size" => "large", :href => "https://twitter.com/railsbridge"} Follow @railsbridge 6 | :javascript 7 | !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs'); 8 | -------------------------------------------------------------------------------- /app/views/static_pages/about.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['About'])) 2 | #about-railsbridge 3 | %h1 About RailsBridge. 4 | 5 | = image_tag "workshop-shots/several_neat_humans.jpg", width: "500", class: "img-responsive float-left", alt: "Several people working at computers in a conference room, probably on a Saturday" 6 | 7 | %h3 We teach people to code because we believe that the people making technology should accurately reflect the diversity of those using it. 8 | %h3 We want to push for all kinds of diversity in tech: gender, race, sexual orientation, ability, and class. Women were the first population we focused on, but aren't the last. 9 | %h3 We value acceptance, enthusiasm, and hard work. The RailsBridge community thrives on optimism and a love for making great things. 10 | 11 | .clearfix 12 | 13 | %h2 What's a RailsBridge Workshop? 14 | %p Our most well-known efforts are free weekend workshops where women learn Ruby on Rails from volunteers. The students at our workshops range from folks who are completely new to programming to QA engineers and professional developers who want to learn Rails. During the Installfest (usually on a Friday evening), we get students' laptops setup with the requisite technologies. The next day, we break into small group based on experience level and build a web app! (When we aren't teaching Ruby and Rails, we teach HTML & CSS.) 15 | 16 | %h2 Origin Story 17 | = image_tag "workshop-shots/ten_humans.jpg", width: "500", class: "img-responsive float-right", alt: "A RailsBridge class in a room with exposed brick" 18 | %p 19 | Back in the heady days of of June 2009, the #{ link_to "San Francisco Ruby community", "https://www.meetup.com/sfruby/", class: 'inline-link' } 20 | stood at about 97% men, and 3% women. RailsBridge was started as an effort to even that out a bit. 21 | #{ link_to "Sarah Mei", "https://github.com/sarahmei", class: 'inline-link' } and 22 | #{ link_to "Sarah Allen", "https://github.com/ultrasaurus", class: 'inline-link' } 23 | figured that there were more women in (at that time) popular languages like PHP and Java, 24 | and if they could show them the wonder of developing in Ruby, perhaps they could change the SF Ruby community's makeup. 25 | %p And so they held a workshop. They sent a few emails out, including one to a women in technology mailing list, and within 24 hours, the workshop was full. It turned out every speculation of "Well, maybe there aren't more women in programming because they just aren't interested" was 100% rubbish (as we all knew), and there has been an insatiable appetite for education and community every since that first workshop. 26 | %p The Open Workshop project (at it was then known) was just one part of RailsBridge. RailsBridge also put on Rails Bug Mashes (or bug smashes, depending on who you ask), taught Ruby to kids, set up online mentoring, and sponsored other projects. Over time, the name RailsBridge has become synonymous with the workshops. 27 | 28 | %h2 Where is RailsBridge? 29 | %p 30 | Everywhere! This thing started in San Francisco (and workshops happen there at the alarming 31 | rate of one to two per month), but workshops have popped up all over the world, thanks to 32 | enterprising organizers who have donated their time to make workshops happen in their communities. 33 | Check out our #{ link_to "past events", :past_events, class: 'inline-link' } and our 34 | #{ link_to "chapters page", :chapters, class: 'inline-link' } to see all the different places that workshops happen. 35 | %p 36 | Some places have workshops regularly, and sometime workshops can be independent, 37 | one-time events put on by people trying to make their Ruby communities more diverse. Workshops 38 | are also put on in conjunction with tech conferences. #{ link_to "Desi McAdam", "https://github.com/desi", class: 'inline-link' }, 39 | #{ link_to "Renée De Voursney", "https://github.com/reneedv", class: 'inline-link' }, 40 | and #{ link_to "Sarah Mei", "https://github.com/sarahmei", class: 'inline-link' } 41 | are all in the wonderful habit of organizing and teaching workshops at conferences they're attending. 42 | 43 | = image_tag "workshop-shots/blue_screen.jpg", width: "500", class: "img-responsive float-right", alt: "RailsBridge students working and smiling in front of an empty blue projector screen" 44 | 45 | %h2 Who's in charge? 46 | %p 47 | You are! Or perhaps you will be in the future. RailsBridge is extremely non-hierarchical, 48 | and we believe strongly that we should have a high #{ link_to "bus number", "http://en.wikipedia.org/wiki/Bus_factor", class: 'inline-link' }. 49 | As an organization whose output is entirely #{ link_to "open source", "http://en.wikipedia.org/wiki/Open_source", class: 'inline-link' }, 50 | all of RailsBridge's growth is a result of the efforts of members of the community — people who see an opportunity for improvement and make it happen. Legally, RailsBridge is a project of #{ link_to "Bridge Foundry, Inc.", "https://bridgefoundry.org/", class: 'inline-link' }, a non-profit organization that transforms tech culture by generating leaders, teachers and mentors who empower the underserved. 51 | 52 | %h2 Want more? 53 | %p Here are just a few writeups about RailsBridge and its impact on individual people and the larger Ruby community: 54 | %ul.bulleted 55 | %li= link_to "Sarah Allen: Once Upon a Time (slide deck)", "http://www.slideshare.net/sarah.allen/once-upon-a-time-1609821", class: 'inline-link' 56 | %li= link_to "Sarah Mei: Moving the Needle: How SF Ruby Got to 18% (slide deck)", "http://www.sarahmei.com/blog/2010/02/20/scale-8x-slides-posted/", class: 'inline-link' 57 | %li= link_to "Melanie Archer: Ada Lovelace Day: The Sarahs", "http://twobanjos.com/blog/2010/03/ada-lovelace-day-the-sarahs/", class: 'inline-link' 58 | %li= link_to "Lillie Chilen: RailsBridge Changed my Life", "http://lillielillie.tumblr.com/post/20468092441/railsbridge-changed-my-life", class: 'inline-link' 59 | -------------------------------------------------------------------------------- /app/views/static_pages/brand.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Brand'])) 2 | 3 | .row 4 | %h1 Brand Guidelines 5 | 6 | %p 7 | The RailsBridge board commissioned a new logo and brand identity for RailsBridge in the spring of 2016. 8 | You can learn more about how it came to be in 9 | #{ link_to "this very fun blog post", "https://blog.railsbridge.org/2016/03/21/railsbridge-has-a-new-logo/", target: "_blank" }! 10 | 11 | %h2 The Logo 12 | 13 | %p 14 | Here's our main logo as a .png in color and black and white: 15 | 16 | %p.mt30= image_tag "railsbridge-logos/railsbridge_horizontal_orange.png", width: 500 17 | 18 | %p.mt30.mb20= image_tag "railsbridge-logos/railsbridge_horizontal_black.png", width: 500 19 | 20 | %p 21 | You can also download all the permutations of the RailsBridge logo in 22 | #{ link_to "one zip file", "https://www.dropbox.com/s/8zw5jg2nfg404zm/railsbridge_logos.zip?dl=0", target: "_blank" } from a Dropbox folder. It's about 18MB. 23 | 24 | %p The #{ link_to "full logo folder", "https://www.dropbox.com/s/8zw5jg2nfg404zm/railsbridge_logos.zip?dl=0", target: "_blank" } includes: 25 | 26 | %ul.bulleted 27 | %li The above logo in orange, black, and white (for use on dark backgrounds) 28 | %li 29 | The following file formats: .jpg, .png, .svg, .ai, and .eps 30 | %li A stacked version of the logo, with the RailsBridge ruby centered above the word RailsBridge, for use where a vertical logo fits better. 31 | 32 | %h3 Chapter Logos 33 | 34 | %p 35 | Please email #{ mail_to "hello@railsbridge.org" } if you'd like us to make a chapter-specific version of the logo for you! Here are some examples: 36 | 37 | %p= image_tag "railsbridge-logos/chapter_logo_examples.jpg", width: 300 38 | 39 | %p 40 | (Please do get in touch, rather than trying to make a chapter logo yourself! 41 | We've bought licenses for the fonts and are very excited to put them to use.) 42 | 43 | .col-md-6 44 | %h2 Colors and Fonts 45 | 46 | %p Our fonts are Tisa Sans Pro Regular and Bold. 47 | 48 | %p The RailsBridge colors are mostly oranges and reds: 49 | 50 | %table.color-table 51 | %tr 52 | %td.main-orange 53 | \#EB6852 54 | %td.accent-deep-red 55 | \#B3282D 56 | %td.accent-red 57 | \#831A27 58 | 59 | .col-md-6 60 | %h2 Avoiding Common Mistakes 61 | 62 | %h3 Good: 63 | %ul.bulleted 64 | %li RailsBridge as a single word 65 | %li RailsBridge with the "R" and the "B" capitalized 66 | %h3 Bad: 67 | %ul.bulleted 68 | %li Rails Bridge with a space in the middle 69 | %li Railsbridge or railsbridge, without the "R" and the "B" capitalized 70 | -------------------------------------------------------------------------------- /app/views/static_pages/donate.html.haml: -------------------------------------------------------------------------------- 1 | .col-md-12 2 | %h1 Help RailsBridge Change the World 3 | 4 | .col-md-9 5 | %h3 RailsBridge is run entirely on donations of money, time, and expertise. 6 | 7 | %p 8 | If your company or organization can help us make tech more welcoming and more diverse, 9 | we'd love your help. We need workshops sponsors (mostly to cover the cost of food), and also 10 | program sponsors so that we can help workshops happen in new places that don't yet 11 | have companies to help sponsor and host! 12 | 13 | %p 14 | RailsBridge works with #{ link_to "Bridge Foundry", "https://bridgefoundry.org/", class: 'inline-link' }, a 501(c)3 charitable organization, so that we're 15 | able to accept tax deductible donations. 16 | 17 | %p 18 | Wondering why supporting RailsBridge is a great idea? Head over to our #{ link_to "Donor FAQ", donor_faq_path, class: 'inline-link' } 19 | for answers. 20 | 21 | .col-md-3 22 | %h5 Support RailsBridge: 23 | %form{action: "https://www.paypal.com/cgi-bin/webscr", method: "post", target: "_top"} 24 | %input{name: "cmd", type: "hidden", value: "_s-xclick"}/ 25 | %input{name: "hosted_button_id", type: "hidden", value: "GFK2C4AJUW3G8"}/ 26 | %input{alt: "PayPal - The safer, easier way to pay online!", border: "0", name: "submit", src: "https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif", type: "image"}/ 27 | %img{alt: "", border: "0", height: "1", src: "https://www.paypalobjects.com/en_US/i/scr/pixel.gif", width: "1"}/ 28 | %h6 All donations are provided to Bridge Foundry, Inc. as #{ link_to "unrestricted funds", "https://rebrand.ly/bridge-foundry-unrestricted-funds" }. 29 | 30 | %h6 Email #{ mail_to("hello@railsbridge.org", nil, class: 'inline-link') } for more information. 31 | -------------------------------------------------------------------------------- /app/views/static_pages/donor_faq.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Donor FAQ'])) 2 | 3 | %h1 RailsBridge Workshops Donor FAQ 4 | 5 | .indented-content 6 | %h4 What is a RailsBridge workshop? 7 | %p RailsBridge works to make tech more diverse and open by providing free training and networking opportunities to underrepresented groups. We teach Ruby, Ruby on Rails, HTML and CSS, and plan to add iOS, Git, and JavaScript to our stable of open-source curricula. 8 | %p A typical workshop is 1.5 days, beginning with a Friday evening “Installfest” where we get all the necessary technologies installed on the students’ laptops, and a Saturday workshop focused on demystifying the topic at hand and building something the student can share, be it a static website, a simple Rails app, or a Ruby script that prints “100 Bottles of Beer on the Wall.” 9 | %p The attitude at a RailsBridge workshop is palpably encouraging for all levels of programmers. Every workshops sees students with a wide range of backgrounds, from professional developers and QA engineers interested in learning Rails to total novices working with the command line for the very first time. Workshop organizers, teachers and TAs all volunteer their time and expertise, creating an environment where students feel comfortable taking risks and asking questions. 10 | 11 | %h4 How do the workshops make a difference? 12 | %p The benefits of attending a workshop as a student are fairly self-evident: free training in a very in-demand technology, a welcoming and accepting environment, and the opportunity to connect with professional developers. For new programmers, the affirmation that students receive can be the difference between forever being intimidated by computers (or programmers themselves) and feeling confident enough to dive into tech. Many of the participants have experience programming or hold a CS degree but have dropped out of the field. A quick and practical introduction to a popular new language and framework can jumpstart a career shift. 13 | %p Workshop students aren't the only ones learning, though. Seasoned developers join the RailsBridge community and learn to be more empathetic, deepen their knowledge of their craft, and importantly, challenge their subconscious preconceptions of what a programmer looks like. 14 | %p Our process and curriculum are emphatically open source, so that we can create a distributed network of coders who value teaching and learners who become teachers. We are dedicated to doing whatever it takes so that the makers of technology are reflective of the people in our society. 15 | 16 | %h4 Why does RailsBridge need sponsorship? 17 | %p Accessibility is a chief priority for RailsBridge, and we’ve found that providing free food, drinks, supplies, and childcare allows our students and volunteers to fully commit to the task of learning and educating. Since our workshops do not charge tuition, we seek monetary and in-kind donations to cover those substantial costs. 18 | %p In San Francisco, we’re fortunate to find most companies who host workshops are willing to also provide foods and drinks for the workshop as well. Our geographic expansion has increased the need for funds to support workshops in places where Ruby on Rails is less well-known by local businesses. Organizers in new communities are already busy recruiting volunteers and students — we want to take the challenge of fundraising off of their plates wherever possible. 19 | 20 | %h4 How can I convince my [insert decision maker here] that my company/organization should support RailsBridge? 21 | %p Supporting RailsBridge has the long-term benefit of contributing to increased diversity in tech (which leads to more productive and creative teams, for one). But supporting RailsBridge also has more immediate benefits, in particular, increasing your organization’s visibility within the Rails community. By sponsoring RailsBridge, you are publicly demonstrating to professional and future developers that your organization values diversity, openness, and excellence. 22 | 23 | %h4 Okay, I’m convinced. Where do I send the check? 24 | %p Individuals can contribute via PayPal. If your organization or company is interested in sponsoring, hosting, or organizing an event, we’d love to hear from you at hello@railsbridge.org. 25 | -------------------------------------------------------------------------------- /app/views/static_pages/events.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Upcoming Workshops'])) 2 | 3 | .upcoming-events.js-match-heights 4 | %h1 Upcoming Events 5 | %p Delivered fresh by #{link_to 'Bridge Troll', "http://www.bridgetroll.org", class: 'inline-link'}, our event management software. 6 | = render 'shared/events_with_help', events_per_row: 3, events: @railsbridge_events 7 | 8 | - if @other_events.present? 9 | %h1 Events from our friends 10 | = render 'shared/events', events_per_row: 3, events: @other_events 11 | -------------------------------------------------------------------------------- /app/views/static_pages/help.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Help'])) 2 | 3 | %h1 Helping people learn to program is an amazing experience. 4 | = image_tag "workshop-shots/programming.jpg", width: "450", class: "img-responsive float-right", alt: "People discussing programming in a fun conference room." 5 | 6 | %p The most visible volunteer positions within RailsBridge are the workshop sponsors, organizers, teachers, and TAs. They make each workshop happen! 7 | 8 | %h3 Want to teach? 9 | %p Yay! Head over to the #{link_to "upcoming workshops page", :events, class: 'inline-link'} to see if one is coming up near you. If not, get in touch with your #{link_to "local chapter", :chapters, class: 'inline-link'} (or start one if it doesn't exist). 10 | 11 | %h3 Want to organize? 12 | %p Fantastic. Read through the #{link_to "organizing page", :organize, class: 'inline-link'} and #{link_to "fill out our short interest form", :interest_form, class: 'inline-link'}! 13 | 14 | %h3 Want to host or sponsor? 15 | %p That's awesome. Check out our #{ link_to "information for hosts", :host, class: 'inline-link' } and #{ link_to "Donor FAQ", :donor_faq, class: 'inline-link' }. 16 | 17 | %h2 Helpful links for you 18 | 19 | .row.help.js-match-height 20 | .col-md-6 21 | .feature.js-match-height-item 22 | .feature-icon.fa.fa-asterisk 23 | %h4 Teach or TA 24 | %ul.bulleted 25 | %li= link_to 'Teaching Resources', :teach, class: 'inline-link' 26 | %li= link_to 'RailsBridge Chapter List', :chapters, class: 'inline-link' 27 | %li= link_to 'Upcoming Events', :events, class: 'inline-link' 28 | .col-md-6 29 | .feature.js-match-height-item 30 | .feature-icon.fa.fa-cogs 31 | %h4 Organize, Sponsor or Host an Event 32 | %ul.bulleted 33 | %li= link_to 'Organize an Event', :organize, class: 'inline-link' 34 | %li= link_to 'Hosting Resources', :host, class: 'inline-link' 35 | %li= link_to 'Donor FAQ', :donor_faq, class: 'inline-link' 36 | 37 | %h2 So many other ways to help, too! 38 | %p 39 | There are 40 | %em tons 41 | of other things that have to happen to keep RailsBridge thriving. If you can help us with any of these things, fill out our quick #{link_to "volunteer interest form", :interest_form, class: 'inline-link'} and we will be in touch. 42 | 43 | .row.help.js-match-height 44 | .col-md-6 45 | .feature.js-match-height-item 46 | .feature-icon.fa.fa-book 47 | %h4 Expand, improve, and maintain our curriculum 48 | %ul.bulleted 49 | %li Maintain and create new curricula 50 | %li Keep the constantly-changing Installfest up-to-date 51 | %li Help our teachers level up by creating more in-depth teacher training 52 | .col-md-6 53 | .feature.js-match-height-item 54 | .feature-icon.fa.fa-wrench 55 | %h4 Help build new tools 56 | %ul.bulleted 57 | %li Help us improve #{link_to "Bridge Troll", "https://github.com/railsbridge/bridge_troll", class: 'inline-link'}, our open source event management app. 58 | %li Students always wonder what to do next, and we'd like to build better tools for helping them figure out their next steps. 59 | 60 | .row.help.js-match-height 61 | .col-md-6 62 | .feature.js-match-height-item 63 | .feature-icon.fa.fa-bullhorn 64 | %h4 Get the word out 65 | %ul.bulleted 66 | %li We need to tell the world what we're doing! PR dabblers welcome! 67 | %li Blogging. Writers are the best. 68 | %li Tweeting, Facebooking, LinkedIn-ing: social media is fun. 69 | .col-md-6 70 | .feature.js-match-height-item 71 | .feature-icon.fa.fa-phone 72 | %h4 Strategize and fundraise 73 | %ul.bulleted 74 | %li We're building an organization called Bridge Foundry to help us (and other orgs) manage our funds (and people) better! 75 | %li RailsBridge is growing a ton, and we can always use strategists and do-ers to help us think big and make those epic plans a reality 76 | -------------------------------------------------------------------------------- /app/views/static_pages/home.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Home'])) 2 | .row 3 | .col-md-8 4 | .home-events 5 | %h3 Upcoming Events 6 | = render 'shared/events_with_help', events_per_row: 2, events: @railsbridge_events 7 | 8 | - if @other_events.present? 9 | %h3 Events from our friends 10 | = render 'shared/events', events_per_row: 2, events: @other_events 11 | .col-md-4 12 | .home-twitter 13 | %h3 Recent Tweets 14 | = render 'tweets' 15 | -------------------------------------------------------------------------------- /app/views/static_pages/host.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Host an Event'])) 2 | 3 | %h1 Want to host or sponsor a workshop? 4 | %h2 Fantastic! 5 | 6 | .indented-content 7 | %p If your company or organization has resources — whether funds or space — we'd love to work with you to put on a workshop! Our venue requirements are flexible; if you have a ton of space, we can find the students and volunteers to fill it, but if you only have room for 30 students, we can do that, too. 8 | %p A RailsBridge workshop takes place over 1.5 days, generally a Friday evening Installfest to get all the student's development environments up and running, followed by all-day small-group classes on Saturday. All organizers and teachers are volunteers, and students are not charged for attendance. 9 | %h4 Minimum Viable Workshop: 10 | %ul.bulleted 11 | %li Wireless internet access. 12 | %li An open area large enough to fit all participants (for the Installfest and Saturday's intro/closing presentations). 13 | %li Spaces for small groups of 5-15 students. These could be meeting rooms, lounges, or any nook that is adequately sequestered from other groups. 14 | %li A space for a babysitter to take care of a kid or two. RailsBridge provides childcare for any students or volunteers that need it — usually a conference room or lounge will do. 15 | %p 16 | Since the teaching and organizing is all volunteer-based, our per-workshop expenses are relatively low. The things that cost money (and why we 17 | %i.fa.fa-heart 18 | our sponsors): 19 | %ul.bulleted 20 | %li Pizza and beer on Friday night during the Installfest 21 | %li Bagels (or other breakfast treats) and coffee on Saturday morning 22 | %li Lunch on Saturday 23 | %li Thank-you drinks (one per volunteer) at the after-workshop party 24 | %p Some venues are able to cover all four of the above; some cover just pizza and Saturday lunch, and sometimes our venues can only provide space, so we work to find additional sponsorship for foodstuffs. Whatever your company or organization can do is so totally appreciated. 25 | %h4 Why sponsor or host a workshop? 26 | %p Most simply, to make tech a more equitable environment. 27 | %p A side benefit: getting your name and awesomeness in front of a bunch of current and future developers. 28 | %p Specifics: 29 | %ul.bulleted 30 | %li Sponsors are always listed on the sign-up pages for students and volunteers. 31 | %li We do a shout-out to the sponsors during the opening and closing presentations, and give you a portion of the opening presentation to explain your product, service, or anything else about yourself that seems relevant. 32 | %li The Installfest ends for a student when she's shown she can successfully deploy a basic Rails app, and then we give her a sticker. Your company's sticker, hopefully! 33 | %p 34 | If you need any more help convincing your budget-keepers of the value of supporting RailsBridge, we have many 35 | talking points for you in our #{link_to "donor frequently asked questions", :donor_faq, class: 'inline-link'} page. 36 | -------------------------------------------------------------------------------- /app/views/static_pages/interest_form.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Volunteer Interest Form'])) 2 | 3 | %h1 Get Involved! 4 | %p 5 | We highly recommend joining our #{link_to "workshop mailing list", "https://groups.google.com/forum/#!forum/railsbridge-workshops", class: 'inline-link'} 6 | and connecting with your #{link_to "local chapter", :chapters, class: 'inline-link'} in addition to filling out this form. 7 | %iframe{:frameborder => "0", :height => "1050", :marginheight => "0", :marginwidth => "0", :src => "https://docs.google.com/forms/d/1sP40osNQOEB8W6AzsmobrhDyv_39VR4sgJPMTX8AYac/viewform?embedded=true#start=embed", :width => "700"} Loading... 8 | -------------------------------------------------------------------------------- /app/views/static_pages/learn.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Learn'])) 2 | 3 | %h1 Want to learn something? Excellent! 4 | 5 | %h2 Before the workshop 6 | %p Our evening Installfest will match you up with a volunteer who will help make sure your computer is ready for you to build a Rails application. Make the most of Installfest by working through the #{link_to "Installfest instructions", "http://installfest.railsbridge.org/installfest/installfest", target: "_blank", class: 'inline-link'} in advance. It's great if you can get your computer ready on your own; you'll have more time to get acquainted with students and coaches at Installfest. If you run into difficulties getting your computer ready at home, bring the problems to Installfest and we'll help you get everything working. 7 | 8 | %h2 Get the most out of your workshop 9 | %p We pack a lot of information into the 1.5 days of a RailsBridge workshop. Here are some things you can do to get the most out of your experience. 10 | 11 | .row.js-match-height 12 | .col-md-4 13 | .feature.js-match-height-item 14 | .feature-icon.fa.fa-comments 15 | %h4 Talk to strangers 16 | %ul 17 | %li 18 | %p Even if it doesn't come naturally to you, there are a ton of interesting people at every workshop. The question "How's your workshop going?" is a popular opener. 19 | .col-md-4 20 | .feature.js-match-height-item 21 | .feature-icon.fa.fa-question-circle 22 | %h4 Ask questions 23 | %ul 24 | %li 25 | %p If the teacher is moving too fast or something just isn't clear, ask about it! Someone else in your class is probably wondering the same thing you are. 26 | .col-md-4 27 | .feature.js-match-height-item 28 | .feature-icon.fa.fa-heart 29 | %h4 Make peace with your inner critic 30 | %ul 31 | %li 32 | %p Programming is really complicated, and if there are pieces that you just don't get, it 100% doesn't mean that you aren't meant to program. Try to muster as much patience with yourself as you can. 33 | 34 | %h2 Have some free time? 35 | %p If you do have some spare moments before the workshops, we recommend any of these things as a fun way to prep: 36 | 37 | .row.js-match-height 38 | .col-md-6 39 | .feature.js-match-height-item 40 | .feature-icon.fa.fa-terminal 41 | %h4 Get Cosy with the Command Line 42 | %ul 43 | %li 44 | %p 45 | You'll need to run programs from your computer's command line to develop a Rails application. 46 | If you haven't used the computer's terminal application (PowerShell on Windows), take time to 47 | practice so you'll be ready. 48 | The #{link_to "Command Line Crash Course", "http://cli.learncodethehardway.org/book/", target: "_blank", class: 'inline-link'} 49 | introduces the basics with a short self-study tutorial. For a quick video introduction, see 50 | #{link_to "Command Line Basics", "http://schneems.com/post/26569696837/command-line-basics", target: "_blank", class: 'inline-link'} from Richard Schneeman. 51 | .col-md-6 52 | .feature.js-match-height-item 53 | .feature-icon.fa.fa-code 54 | %h4 Get a Taste of HTML and CSS 55 | %ul 56 | %li 57 | %p You don't need to know HTML and CSS to attend a RailsBridge workshop but familiarity will help you progress faster. Any book or online introduction to HTML and CSS will give you the background you need to get the most from a RailsBridge workshop. RailsBridge offers occasional workshops on HTML and CSS for beginners if you want to learn in a supportive group environment. 58 | 59 | .row.js-match-height 60 | .col-md-6 61 | .feature.js-match-height-item 62 | .feature-icon.fa.fa-eye 63 | %h4 Sneak a Peek at the Curriculum 64 | %ul 65 | %li 66 | %p 67 | The #{link_to "RailsBridge Curriculum", "http://curriculum.railsbridge.org/docs/", target: "_blank", class: 'inline-link'} 68 | is online so you can get an advance look at what you'll be learning. Most classes follow the 69 | #{link_to "RailsBridge Introductory Curriculum", "http://curriculum.railsbridge.org/curriculum/curriculum", target: "_blank", class: 'inline-link'} 70 | (our "Suggestotron" project) but some workshops cover the Ruby language, HTML and CSS for beginners, or Intermediate Rails. 71 | .col-md-6 72 | .feature.js-match-height-item 73 | .feature-icon.fa.fa-book 74 | %h4 Advance Reading 75 | %ul 76 | %li 77 | %p 78 | If you have time, you can prepare with the in-depth primer, 79 | #{link_to "What is Ruby on Rails?", "http://railsapps.github.io/what-is-ruby-rails.html", target: "_blank", class: 'inline-link'} 80 | from the RailsApps project. The article introduces basic concepts, explains why Ruby on Rails is popular, 81 | and provides background so you’ll get the most from a RailsBridge workshop. 82 | -------------------------------------------------------------------------------- /app/views/static_pages/learning_faq.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['FAQ'])) 2 | 3 | %h1 Frequent Questions from Students 4 | 5 | .indented-content 6 | %h4 Do I need to do anything before the workshop? 7 | %p It's a really good idea to start the Installfest ahead of time, and download any of the necessary things that your organizer emailed you about (RailsInstaller, perhaps, or XCode, or Sublime Text). Other than that, come as you are! 8 | 9 | %h4 Do I have to attend the Installfest? 10 | %p Yes! The Installfest is a crucial part of the weekend, even if you’ve already gone through the instructions independently. There are a ton of moving parts when setting up a development environment, and the reason that we’re able to get through the curriculum on Saturday is that every single student has had their development environment checked and has been awarded a sticker for their success. There are also enough changing parts that even if you’ve been to a workshop in the past, you should attend the Installfest to get re-verified, because Rails and its development environment changes frequently. 11 | 12 | %h4 Do I really have to attend the Installfest? 13 | %p Yes, really. There will be pizza, we promise. And fun people to talk to. And you don’t have to be there very long if you’ve already gotten through all the steps. (But if you haven’t gotten through all the steps ahead of time, please come early in the evening, because an install can take a few hours depending on what hiccups we need to work through.) 14 | 15 | %h4 How much does childcare cost? 16 | %p Nothing! RailsBridge hires a sitter on the house so that there’s nothing between you and your computer. Childcare is typically provided in a lounge or conference room near to your classroom. Just let the organizer know ahead of time so we can make arrangements. 17 | -------------------------------------------------------------------------------- /app/views/static_pages/learning_resources.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Resources'])) 2 | 3 | %h1 What next? Write code every day! 4 | 5 | .row.js-match-height 6 | .col-md-4 7 | .feature.js-match-height-item 8 | .feature-icon.fa.fa-bolt 9 | %h4 Pick something and get started 10 | %ul 11 | %li 12 | %p 13 | This is the most important thing: pick your next project 14 | \— 15 | a tutorial, a class, or building your own app 16 | \— 17 | and get started right away. Momentum is important. 18 | .col-md-4 19 | .feature.js-match-height-item 20 | .feature-icon.fa.fa-envelope 21 | %h4 Keep in touch 22 | %ul 23 | %li 24 | %p Reach out to the people you connected with at your workshop. Coding with other people around is really motivating, plus you get to help each other solve trickier stuff. 25 | .col-md-4 26 | .feature.js-match-height-item 27 | .feature-icon.fa.fa-thumbs-up 28 | %h4 More RailsBridge 29 | %ul 30 | %li 31 | %p Come back to another workshop as a student, TA, or teacher. Teaching is a really great way to learn, too. (You'll be ready to TA sooner than you think, so don't be shy!) 32 | 33 | %h2 Resources for you 34 | 35 | #learning-resources-nav 36 | %ul.nav.nav-tabs 37 | %li.ruby.active= link_to "Ruby", "#ruby", class: 'inline-link' 38 | %li.rails= link_to "Rails", "#rails", class: 'inline-link' 39 | %li.front-end= link_to "HTML, CSS, & JavaScript", "#front-end", class: 'inline-link' 40 | %li.other= link_to "Other Web Development Fun", "#other", class: 'inline-link' 41 | .learning-resources 42 | #ruby 43 | = render partial: 'static_pages/resources/ruby_resources' 44 | #rails{style: 'display: none;'} 45 | = render partial: 'static_pages/resources/rails_resources' 46 | #front-end{style: 'display: none;'} 47 | = render partial: 'static_pages/resources/front_end_resources' 48 | #other{style: 'display: none;'} 49 | = render partial: 'static_pages/resources/general_web_dev_resources' 50 | -------------------------------------------------------------------------------- /app/views/static_pages/organize.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Organize a Workshop'])) 2 | 3 | %h1 Want to organize a workshop? 4 | %h2 Neat! 5 | 6 | .row.js-match-height 7 | .col-md-6 8 | .feature.js-match-height-item 9 | .feature-icon.fa.fa-flask 10 | %h4 The Workshop Cookbook 11 | %p 12 | We've got tons of information in our 13 | #{ link_to "Workshop Cookbook", "https://github.com/railsbridge/docs/wiki/Cookbook", class: 'inline-link' }, 14 | which lives in the RailsBridge GitHub wiki. 15 | %p Read it, use it, and update it! (You just have to be logged into GitHub to make updates.) 16 | .col-md-6 17 | .feature.js-match-height-item 18 | .feature-icon.fa.fa-cogs 19 | %h4 Create an issue on the Organizing repo 20 | %p 21 | We use GitHub to keep track of workshops in the works! If you're ready to start planning 22 | a RailsBridge workshop, #{ link_to "add an issue", "https://github.com/railsbridge/organizing/issues", class: 'inline-link' } 23 | and we can help you as much as you need. 24 | 25 | .indented-content 26 | %h4 Organizing: totally doable. 27 | %p 28 | A lot of organizers have never thrown an event like this before and want to know what qualifications it takes. You don't have to be a born event-planner to be an awesome organizer. 29 | %p Here are several things that are helpful: 30 | %ul.bulleted 31 | %li Excitement 32 | %li 1 or 2 other people who can help you get word out to local community 33 | %li A few hours a week leading up to the weekend for pre-workshop planning 34 | %li Availability the weekend of the workshop 35 | %li Some degree of organizational/logistical tendencies (or a co-organizer who is like that) 36 | %li Ability to give a short presentation (or a co-organizer whose willing to) 37 | %li Having attended a prior workshop as a student, teacher, volunteer, or observer. 38 | 39 | %h4 Time commitment 40 | %p 41 | The time commitment varies wildly based on where you're organizing and the number of workshops 42 | that have already happened in your area. Since there are workshops every month in San Francisco, 43 | the meta-organizing team there has a stable of companies that are happy to host. 44 | If you're forging new, exciting ground, finding a venue, sponsors, students, and volunteers 45 | will take longer. The organizing cookbook 46 | #{link_to "has suggestions", "https://github.com/railsbridge/docs/wiki/Finding-space%2C-sponsors%2C-volunteers%2C-and-students", class: 'inline-link'} 47 | for where to look for those things. 48 | %p The amount of time you'll need to budget will also depend on how you and your co-organizer divide the responsibilities. Everyone organizing should plan on devoting their Friday night and most of Saturday to the workshop, and at least a few hours a week during the month before the workshop to visiting the space, ordering food, and communicating with students and volunteers. 49 | 50 | %h4 Mentorship & support available 51 | %p Although it is a lot of little details to deal with, if it's your first time organizing we'll hook you up with a mentor to answer questions and help guide you. That can be remote mentoring, if an experienced local organizer/mentor isn't available. 52 | %p 53 | If you are interested in organizing a workshop, or even just vaguely curious, contact #{ mail_to("hello@railsbridge.org", nil, class: 'inline-link') } 54 | and our volunteerswill be very happy to talk to you about it. You can also create an issue on the 55 | #{ link_to "RailsBridge Organizing GitHub repo", "https://github.com/railsbridge/organizing/issues", class: 'inline-link' } 56 | and we will gladly help you out! 57 | 58 | %h4 Already planning? 59 | %p If you're raring to go, and have already got your workshop planning underway, go you! That's amazing. Here are a couple of suggestions and requests: 60 | %ul.bulleted 61 | %li Use #{link_to "Bridge Troll", "http://www.bridgetroll.org", class: 'inline-link'}, our event management software. It'll make RSVPs and dividing up the class much, much easier. 62 | %li Side benefit of Bridge Troll: your event will automatically be displayed on the RailsBridge.org website. 63 | %li 64 | If you haven't already, join the 65 | #{link_to "mailing list", "https://groups.google.com/forum/#!forum/railsbridge-workshops", class: 'inline-link'} 66 | and let the community know that your workshop is in the works. We like to help spread the word 67 | (and also keep a tally of the workshops happening in the world). 68 | 69 | %h4 Workshop Requirements 70 | %p A RailsBridge workshop has a few special things about it: 71 | %ul.bulleted 72 | %li It is free. 73 | %li It reaches out to one or more groups that are underrepresented in tech. We have a tradition of allowing other people to attend as a guest of a person who the workshop is reaching out to, but that is totally optional. The important thing is that the workshop brings more diverse people into tech in a welcoming, supportive environment. 74 | %p If you are running an event that does not meet both of those requirements, you are welcome to use the RailsBridge curriculum, but your event can't be called a RailsBridge workshop. 75 | -------------------------------------------------------------------------------- /app/views/static_pages/past_events.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Past Events'])) 2 | 3 | %h1 So many workshops! 4 | 5 | %p 6 | RailsBridge workshops happen all over the world. Our #{link_to "Chapters page", :chapters, class: 'inline-link'} can help you 7 | find a workshop in your area. And if there isn't one planned, we can #{link_to "help you set one up", :organize, class: 'inline-link'}! 8 | 9 | %h2 Past Workshops 10 | 11 | %table.table.table-striped.past-events 12 | %thead 13 | %tr 14 | %th 15 | %h3 No. 16 | %th.dates 17 | %h3 Dates 18 | %th 19 | %h3 City 20 | %th 21 | %h3 Location 22 | %th 23 | %h3 Organizers 24 | %tbody 25 | - if @past_events.present? 26 | - @past_events.zip(1..@past_events.length).reverse.each do |(event, n)| 27 | %tr 28 | %td #{n} 29 | %td= link_to event.event_dates(short: true), event.event_url, target: "_blank", class: 'inline-link' 30 | %td= event.location['city'] 31 | %td= event.location['name'] 32 | %td= event.organizers.to_sentence 33 | -------------------------------------------------------------------------------- /app/views/static_pages/projects.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Projects'])) 2 | 3 | %h1 We have other projects, too. 4 | 5 | %p We’ve got a lot of exciting projects in the pipeline. We’d like to continue to expand our geographic footprint, as well as expand our curriculum options to include JavaScript, iOS development, Clojure, and Git. We also have a number of other current projects. 6 | 7 | .row.js-match-height 8 | .col-md-7 9 | .feature.js-match-height-item 10 | .feature-icon.fa.fa-wrench 11 | %h4 Bridge Troll 12 | %p 13 | We want to make it easy to organize a workshop, and one of the hardest parts can be communicating with students and volunteers and getting them divided into small groups by skill level. So we've built (and are continuing to improve) an open source event management app named Bridge Troll. 14 | %p Want to help? Join the mailing list and introduce yourself! 15 | %p 16 | Pull requests #{ link_to "accepted via GitHub", "https://github.com/railsbridge/bridge_troll", class: 'inline-link' } 17 | %p 18 | We organize ourselves #{ link_to "using Pivotal Tracker", "https://www.pivotaltracker.com/projects/608983", class: 'inline-link' } 19 | %p 20 | And we discuss things #{ link_to "on our mailing list", "https://groups.google.com/forum/?fromgroups#!forum/bridge-troll", class: 'inline-link' } 21 | .col-md-5 22 | .feature.js-match-height-item 23 | .feature-icon.fa.fa-umbrella 24 | %h4 Bridge Foundry 25 | %p We created a new umbrella organization called Bridge Foundry, so that we could help ourselves and like-minded organizations more easily manage the money parts of improving tech. 26 | %p Bridge Foundry is a non-profit organization that transforms tech culture by generating leaders, teachers and mentors who empower the underserved. 27 | 28 | .row.js-match-height 29 | .col-md-6 30 | .feature.js-match-height-item 31 | .feature-icon.fa.fa-comments 32 | %h4 Open Workshop Summit 33 | %p RailsBridge has weekly Sunday morning conference calls to move along internal RailsBridge business, but it’s time for us to meet publicly with our sponsors, volunteers, and students and brainstorm what the future of RailsBridge looks like. In person! 34 | .col-md-6 35 | .feature.js-match-height-item 36 | .feature-icon.fa.fa-star 37 | %h4 Longitudinal Study 38 | %p We’d like to know more concretely the number of RailsBridge students who come back for another workshop, become volunteers, and end up in better professional situations in part due to RailsBridge. We have anecdotal evidence of RailsBridge workshop participants becoming professional developers, but there’s a lot more to learn about our efforts. 39 | -------------------------------------------------------------------------------- /app/views/static_pages/resources/_front_end_resources.html.haml: -------------------------------------------------------------------------------- 1 | %h4 HTML & CSS 2 | %ul 3 | %li #{ link_to "Shay Howe's beginning & intermediate HTML & CSS tutorials", "http://learn.shayhowe.com/", class: 'inline-link' } 4 | %li 5 | The RailsBridge #{ link_to "front end curriculum", "http://docs.railsbridge.org/frontend/", class: 'inline-link' } 6 | (best experienced at a workshop) 7 | %li Our front end resources #{ link_to "Pinterest board", "http://pinterest.com/eanakashima/learn-the-front-end/", class: 'inline-link' } 8 | 9 | %h4 HTML 10 | %ul 11 | %li #{ link_to "Mozilla Developer Network: Learn HTML", "https://developer.mozilla.org/en-US/learn/html", class: 'inline-link' } 12 | %li #{ link_to "HTML5Rocks", "http://www.html5rocks.com/en/", class: 'inline-link' } 13 | %h4 CSS 14 | %ul 15 | %li #{ link_to "Learn Layout", "http://learnlayout.com/", class: 'inline-link' } 16 | %li 17 | Mozilla Developer Network's 18 | #{ link_to "CSS tutorial", "https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started?redirectlocale=en-US&redirectslug=CSS%2FGetting_Started", class: 'inline-link' } 19 | %li 20 | Mozilla Developer Network's 21 | #{ link_to "CSS Reference", "https://developer.mozilla.org/en-US/docs/Web/CSS/Reference?redirectlocale=en-US&redirectslug=CSS%2FCSS_Reference", class: 'inline-link' } 22 | %li 23 | #{ link_to "CSS-Tricks", "http://css-tricks.com/", class: 'inline-link'} - when you Google something about CSS, 24 | there's a good chance you'll end up at this great site. 25 | %h4 JavaScript & jQuery 26 | %ul 27 | %li Max Ogden's #{ link_to "JavaScript for Cats", "http://jsforcats.com/", class: 'inline-link' } 28 | %li #{ link_to "Codecademy — Javascript & JQuery tutorials", "http://www.codecademy.com/learn", class: 'inline-link' } 29 | %li #{ link_to "Try jQuery by Code School", "http://try.jquery.com/", class: 'inline-link'} 30 | %li #{ link_to "Learning Advanced JavaScript", "http://ejohn.org/apps/learn/", class: 'inline-link'} by John Resig (who invented jQuery!) 31 | 32 | %h4 Beyond HTML & CSS & JavaScript 33 | %p HTML, CSS, and JavaScript are understood by the browser, but they're not a joy to write in. So people have built pre-processors to take new, more pleasant-to-type languages and turn them into the thing the browser can understand (i.e., HTML, CSS, & JavaScript). 34 | %ul 35 | %li #{ link_to "Haml", "http://haml.info/", class: 'inline-link' } - an indentation-dependent markup language that gets processed into HTML 36 | %li #{ link_to "Sass", "http://sass-lang.com/", class: 'inline-link' } - CSS, but with nesting, variable, mixins, and happiness. Stands for "Syntactically Awesome Style Sheets". 37 | %li #{ link_to "LESS", "http://lesscss.org/", class: 'inline-link' } - like Sass, but different. 38 | %li #{ link_to "CoffeeScript", "http://coffeescript.org/", class: 'inline-link' } – gets to the browser as JavaScript, but you get to type fewer characters! 39 | -------------------------------------------------------------------------------- /app/views/static_pages/resources/_general_web_dev_resources.html.haml: -------------------------------------------------------------------------------- 1 | %h4 Git 2 | %ul 3 | %li #{ link_to "Pro Git", "http://git-scm.com/book", class: 'inline-link' }, by Scott Chacon is excellent 4 | %li #{ link_to "git ready", "http://gitready.com/", class: 'inline-link' } by Nick Quaranto, is a blog-ish tutorial with a lot of good ideas. 5 | %li #{ link_to "Git Immersion", "http://gitimmersion.com/", class: 'inline-link' } is an in-depth tutorial for Git 6 | %li CodeSchool & GitHub paired up to make #{ link_to "tryGit", "http://try.github.io/levels/1/challenges/1", class: 'inline-link' }, a quick 15 minute intro to Git. 7 | %h4 DevOps 8 | %ul 9 | %li #{ link_to "Ops School", "http://www.opsschool.org/", class: 'inline-link' }: open source training in ops 10 | %h4 Computer Science 11 | %ul 12 | %li 13 | %a.inline-link{:href => "http://www.khanacademy.org/#computer-science"} Khan Academy Computer Science 14 | %li #{ link_to "Project Euler", "http://projecteuler.net/", class: 'inline-link' }, fun math + programming problems 15 | %h4 Human parts of being a web developer 16 | %ul 17 | %li #{ link_to "Apprenticeship Patterns", "http://chimera.labs.oreilly.com/books/1234000001813/index.html", class: 'inline-link' } by David Hoover 18 | %h4 Too many topics to categorize 19 | %ul 20 | %li #{ link_to "Destroy All Software screencasts", "https://www.destroyallsoftware.com/screencasts", class: 'inline-link' } 21 | -------------------------------------------------------------------------------- /app/views/static_pages/resources/_rails_resources.html.haml: -------------------------------------------------------------------------------- 1 | %h4 Background 2 | %ul 3 | %li 4 | %a.inline-link{:href => "http://railsapps.github.io/what-is-ruby-rails.html", :target => "_blank"} What is Ruby on Rails? 5 | — in-depth primer introduces basic concepts and explains why Ruby on Rails is popular 6 | %h4 Rails Tutorials 7 | %ul 8 | %li 9 | Michael Hartl's 10 | %a.inline-link{:href => "https://www.railstutorial.org/book"} Ruby on Rails Tutorial 11 | — an intermediate level tutorial that is highly recommended throughout the Rails community. Extremely well written, 12 | technically sound, comprehensive and up-to-date. Work up to being able to complete this tutorial at least once. 13 | %li 14 | %a.inline-link{:href => "http://rubyonrailstutor.github.io"} Complete Rails app, sequenced code & free screen casts. 15 | Sequenced, structured with twitter oauth, haml and zurb foundation, designed to be more approachable to beginners by a previous-beginner. 16 | %li 17 | %a.inline-link{:href => "http://learn-rails.com/learn-ruby-on-rails.html"} Learn Ruby on Rails, 18 | a book for beginners by Daniel Kehoe, 19 | %a.inline-link{:href => "http://learn-rails.com/railsbridge"} free for RailsBridge participants. 20 | %li 21 | Our 22 | %a.inline-link{:href => "http://docs.railsbridge.org/curriculum/"} Ruby on Rails 23 | curriculum. If you've done it already, try recreating Suggestotron without using the scaffold command! 24 | %li 25 | %a.inline-link{:href => "https://tutorials.railsapps.org/rails-tutorial", :target => "_blank"} Rails Tutorials 26 | — recommendations for a Rails tutorial to suit your skill level and learning style 27 | %h4 References and Guides 28 | %ul 29 | %li 30 | %a.inline-link{:href => "http://guides.rubyonrails.org/"} RailsGuides 31 | — well-written and organized guides to Rails 32 | %li 33 | #{ link_to "RailsCasts", "http://railscasts.com/", class: 'inline-link' } 34 | \— 35 | short, clear, and excellent screencasts by Ryan Bates 36 | %h4 Other collections of resources: 37 | %ul 38 | %li 39 | Our 40 | %a.inline-link{:href => "http://pinterest.com/pvnrtmol/ruby-and-rails-resources/"} Ruby and Rails Resources 41 | Pinterest board — includes books, online tutorials, Meetup groups, and more 42 | -------------------------------------------------------------------------------- /app/views/static_pages/resources/_ruby_resources.html.haml: -------------------------------------------------------------------------------- 1 | %h4 Ruby Tutorials 2 | %ul 3 | %li 4 | Our 5 | %a.inline-link{:href => "http://docs.railsbridge.org/workshop/ruby_for_beginners"} Ruby Programming for Beginners 6 | curriculum — includes project exercises 7 | %li 8 | %a.inline-link{:href => "http://rubymonk.com/"} Ruby Monk 9 | — Ruby lessons & tutorials. 10 | %li 11 | Sarah Allen's & Alex Chaffee's 12 | %a.inline-link{:href => "http://testfirst.org/"} TestFirst.org 13 | — learn Ruby or JavaScript the test-driven way. 14 | %li 15 | %a.inline-link{:href => "http://rubykoans.com/"} Ruby Koans 16 | — a lovely interactive way to test what you know about Ruby so far. 17 | %li 18 | %a.inline-link{:href => "http://ruby.learncodethehardway.org/"} Learn Ruby the Hard Way 19 | — a Ruby port of Zed Shaw's introductory programming tutorial Learn Python the Hard Way. 20 | %li 21 | %a.inline-link{:href => "http://codelikethis.com/lessons", :target => "_blank", :title => "Code Like This Lessons"} Code Like This (Ruby) 22 | – slides and videos teaching Ruby, linked to 23 | %a.inline-link{:href => "http://testfirst.org/learn_ruby", :target => "_blank", :title => "Learn Ruby Test First"} TestFirst Labs 24 | %h4 Books 25 | %ul 26 | %li 27 | Chris Pine's 28 | %a.inline-link{:href => "http://www.amazon.com/dp/0976694042/ref=nosim?tag=rubydocorg-20&linkCode=sb1&camp=212353&creative=380549"} Learn to Program 29 | — explains Ruby from the very beginning; includes great challenges & exercises. 30 | %li 31 | %a.inline-link{:href => "http://www.amazon.com/Programming-Ruby-1-9-2-0-Programmers/dp/1937785491/"} Programming Ruby 32 | (a.k.a "The Pickaxe Book") — a comprehensive reference of the Ruby language. A good second or third book on Ruby. 33 | %li 34 | %a.inline-link{:href => "http://www.amazon.com/Eloquent-Addison-Wesley-Professional-Series-ebook/dp/B004MMEJ36"} Eloquent Ruby 35 | — focuses on writing idiomatic Ruby rather than programming skills or concepts. 36 | %h4 Reference and Documentation 37 | %ul 38 | %li 39 | #{ link_to "Ruby documentation", "http://www.ruby-doc.org/", class: 'inline-link'} 40 | \— 41 | it's great to just read through the available methods for 42 | #{ link_to "strings", "http://ruby-doc.org/core-2.0/String.html", class: 'inline-link' }, 43 | #{ link_to "arrays", "http://www.ruby-doc.org/core-2.0/Array.html", class: 'inline-link' }, 44 | #{ link_to "hashes", "http://www.ruby-doc.org/core-2.0/Hash.html", class: 'inline-link' }, 45 | and the #{ link_to "enumerable mixin", "http://ruby-doc.org/core-2.0/Enumerable.html", class: 'inline-link' }. 46 | 47 | %h4 Object Oriented Programming 48 | %ul 49 | %li 50 | #{ link_to "Practical Object-Oriented Design in Ruby", "http://www.poodr.info/", class: 'inline-link' } 51 | (or POODR for short) is the book on object-oriented design by rockstar Sandi Metz. 52 | -------------------------------------------------------------------------------- /app/views/static_pages/sponsors.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Sponsors'])) 2 | 3 | %h1 We are so grateful. 4 | 5 | %p RailsBridge has thrived because of its volunteers and its sponsors. These companies have provided us with space, wifi, projectors, and bought us so many Friday pizzas and Saturday lunches. We are so thankful that they are committed to helping tech become more equitable, welcoming, and diverse. 6 | 7 | .logos.huge-logos 8 | %h2 Program Sponsors 9 | %hr/ 10 | %p Our program sponsors allow us to expand geographically and support organizers to create events in advance of local sponsor commitments. With their encouragement and support, there have been workshops in 42 different cities around the world. 11 | %div 12 | = link_to image_tag("sponsor-logos/heroku.png", class: 'img-responsive'), "https://www.heroku.com/" 13 | = link_to image_tag("sponsor-logos/google.png", class: 'img-responsive'), "http://www.google.com/" 14 | 15 | .logos.big-logos 16 | %h2 Ongoing Workshop Sponsors 17 | %hr/ 18 | %p These companies provide ongoing support by sponsoring workshops on a regular basis. 19 | %div 20 | = link_to image_tag("sponsor-logos/pivotal.jpg"), "http://pivotallabs.com/" 21 | = link_to image_tag("sponsor-logos/thoughtbot.png"), "https://thoughtbot.com/" 22 | %br 23 | = link_to image_tag("sponsor-logos/carbonfive.png"), "http://carbonfive.com/" 24 | = link_to image_tag("sponsor-logos/engineyard.png"), "https://www.engineyard.com/" 25 | = link_to image_tag("sponsor-logos/autodesk.png"), "https://www.autodesk.com/" 26 | .logos.medium-logos 27 | %h2 Partner Organizations 28 | %hr/ 29 | %div 30 | = link_to image_tag("partner-org-logos/blackfounders.png"), "http://www.blackfounders.com/" 31 | %br 32 | = link_to image_tag("partner-org-logos/devchix.jpeg"), "http://www.devchix.com/" 33 | = link_to image_tag("partner-org-logos/latino-startup-alliance.png"), "http://latinostartupalliance.org/" 34 | = link_to image_tag("partner-org-logos/women2.jpeg"), "http://www.women2.com/" 35 | 36 | .logos.medium-logos 37 | %h2 Supporting Conferences 38 | %hr/ 39 | %div 40 | = link_to image_tag("conference-logos/ruby-on-ales.jpg"), "http://ruby.onales.com" 41 | = link_to image_tag("conference-logos/rubyfuza.png"), "http://rubyfuza.org" 42 | = link_to image_tag("conference-logos/madison-ruby.jpg"), "http://madisonruby.org" 43 | = link_to image_tag("conference-logos/rocky-mountain-ruby.png"), "http://rockymtnruby.com" 44 | = link_to image_tag("conference-logos/la-ruby.jpg"), "http://www.larubyconf.com" 45 | = link_to image_tag("conference-logos/code4lib.png"), "http://code4lib.org/conference" 46 | = link_to image_tag("conference-logos/aloha.jpg"), "http://www.alohaonrails.com" 47 | 48 | .logos.smaller-logos 49 | %h2 Workshop Sponsors 50 | %hr/ 51 | %div 52 | = link_to image_tag("workshop-sponsor-logos/thoughtworks.jpg"), "http://www.thoughtworks.com/" 53 | = link_to image_tag("workshop-sponsor-logos/github.png"), "https://github.com/" 54 | = link_to image_tag("workshop-sponsor-logos/incomm.png"), "http://www.incomm.com/" 55 | = link_to image_tag("workshop-sponsor-logos/modcloth.jpeg"), "http://www.modcloth.com/" 56 | = link_to image_tag("workshop-sponsor-logos/tapjoy.jpeg"), "https://www.tapjoy.com/" 57 | = link_to image_tag("workshop-sponsor-logos/airbnb.png"), "https://www.airbnb.com/" 58 | = link_to image_tag("workshop-sponsor-logos/bing.png"), "http://www.bing.com/" 59 | = link_to image_tag("workshop-sponsor-logos/nexTag.jpg"), "http://www.nextag.com/" 60 | = link_to image_tag("workshop-sponsor-logos/orange-labs.jpg"), "http://www.primezone.orange-labs.com/information.html?hl=en&info=orangelabs" 61 | = link_to image_tag("workshop-sponsor-logos/outright.jpeg"), "http://outright.com/" 62 | = link_to image_tag("workshop-sponsor-logos/quickleft.jpg"), "http://quickleft.com/" 63 | = link_to image_tag("workshop-sponsor-logos/rackspace.jpeg"), "http://www.rackspace.com/" 64 | = link_to image_tag("workshop-sponsor-logos/CfA.png"), "http://codeforamerica.org/" 65 | = link_to image_tag("workshop-sponsor-logos/coderow.jpg"), "http://www.coderow.com/" 66 | = link_to image_tag("workshop-sponsor-logos/galvanize.jpg"), "http://galvanize.it/" 67 | = link_to image_tag("workshop-sponsor-logos/gnip.jpeg"), "http://gnip.com/" 68 | = link_to image_tag("workshop-sponsor-logos/envylabs.jpeg"), "http://envylabs.com/" 69 | = link_to image_tag("workshop-sponsor-logos/google-ventures.png"), "http://www.googleventures.com/" 70 | = link_to image_tag("workshop-sponsor-logos/groupon.jpeg"), "http://www.groupon.com/" 71 | = link_to image_tag("workshop-sponsor-logos/harvest.png"), "http://www.getharvest.com/" 72 | = link_to image_tag("workshop-sponsor-logos/ign-entertainment.png"), "http://corp.ign.com/" 73 | = link_to image_tag("workshop-sponsor-logos/hashrocket.jpg"), "http://hashrocket.com/" 74 | = link_to image_tag("workshop-sponsor-logos/kaporfoundation.jpg"), "http://www.kaporcenter.org/" 75 | = link_to image_tag("workshop-sponsor-logos/mediacore.jpg"), "http://mediacore.com/" 76 | = link_to image_tag("workshop-sponsor-logos/microsoft.jpg"), "http://www.microsoft.com/" 77 | = link_to image_tag("workshop-sponsor-logos/verticalresponse.jpeg"), "http://www.verticalresponse.com/" 78 | = link_to image_tag("workshop-sponsor-logos/scribd.jpeg"), "http://www.scribd.com/" 79 | = link_to image_tag("workshop-sponsor-logos/neo.png"), "https://www.linkedin.com/company/neo-innovation-inc-" 80 | = link_to image_tag("workshop-sponsor-logos/square.jpg"), "https://squareup.com/" 81 | = link_to image_tag("workshop-sponsor-logos/twilio.png"), "http://www.twilio.com/" 82 | = link_to image_tag("workshop-sponsor-logos/twitter.png"), "https://twitter.com/" 83 | = link_to image_tag("workshop-sponsor-logos/braintree.png"), "https://www.getbraintree.com/" 84 | = link_to image_tag("workshop-sponsor-logos/wested.jpg"), "http://www.wested.org/" 85 | = image_tag("workshop-sponsor-logos/workhappy.png") 86 | = link_to image_tag("workshop-sponsor-logos/awesomeinc.jpeg"), "http://awesomeinc.org/" 87 | = link_to image_tag("workshop-sponsor-logos/stride.png"), "http://www.stridenyc.com/" 88 | = link_to image_tag("workshop-sponsor-logos/etsy.png"), "https://www.etsy.com/" 89 | -------------------------------------------------------------------------------- /app/views/static_pages/teach.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Teach or TA'])) 2 | 3 | %h1 Want to teach technologies? 4 | %h2 Amazing! 5 | 6 | %h2 Things you should do as a teacher or TA 7 | 8 | .row.js-match-height 9 | .col-md-4 10 | .feature.js-match-height-item 11 | .feature-icon.fa.fa-book 12 | %h4 Read the curriculum! 13 | %p 14 | Most everything you need to teach can be found at 15 | = succeed "." do 16 | %a.inline-link{:href => "http://docs.railsbridge.org"} docs.railsbridge.org 17 | All the curricula and the installfest instructions are there. 18 | %p 19 | See something that could be better? Submit a pull request. The whole shebang is in RailsBridge's 20 | #{link_to "Docs repo on GitHub", "https://github.com/railsbridge/docs", class: 'inline-link'}. 21 | .col-md-4 22 | .feature.js-match-height-item 23 | .feature-icon.fa.fa-star 24 | %h4 Teacher Training 25 | %p 26 | You should go to a teacher training! They are often held within a few weeks of a workshop. You can run through the 27 | %a.inline-link{:href => "http://docs.railsbridge.org/workshop/more_teacher_training"} teacher training slide deck 28 | to give you some things to think about. 29 | .col-md-4 30 | = render 'mailing_list' 31 | 32 | %h2 Teacher and TA FAQ 33 | 34 | .indented-content 35 | %h4 Should I be a teacher or a TA? 36 | %p If this is your first workshop, you should probably TA. Otherwise, it depends! We often find that the most technically advanced volunteer in the room can make a great TA, while the person who can most enthusiastically move the class makes a great teacher. 37 | %p Sample class configurations: 38 | %ul.bulleted 39 | %li 7 students, 1 teacher, 2 TAs: teacher advances slides and generally moves the class forward, TAs help students who get stuck and explain specific topics as requested by the teacher. 40 | %li 4 students, 2 teachers: teachers take turns leading different sections of the curriculum. 41 | %li 12 students, 1 teacher, 3 TAs: teacher leads the class for most of the day, swapping out with a TA for certain sections. Teacher gets super tired around 3pm and a TA takes over at the break. 42 | 43 | %h4 Do I know enough Rails to teach? 44 | %p Maybe! Probably! Sometimes the best teachers are people who have most recently processed the material themselves, and can really relate to their students. Having multiple teachers/TAs in a room means that even if you get something wrong, you can look to the other volunteers to help clarify/correct. 45 | %p We feel especially warm and fuzzy about former RailsBridge students coming back as TAs or teachers, so if you're in that bucket, please do! 46 | 47 | %h4 I'm a dude. Can I teach? 48 | %p Yep! Our goal isn't just to teach underrespresented folks tech skills. We also want to help our volunteers challenge their own preconceptions of what a programmer is! So, everyone wins! We are always trying to recruit students into teaching roles, so please help by encouraging your students to come back and volunteer. 49 | 50 | %h4 I think this part of the curriculum is weird. 51 | %p Good question? But really, please #{ link_to "fork the curriculum", "https://github.com/railsbridge/docs", class: 'inline-link' } and make a pull request with what you think would be better. This whole thing is open source and a 100% volunteer effort, so your contributions are very, very valued. 52 | 53 | %h4 Do I need to come both days? 54 | %p No, you can RSVP for either or both. Just remember to come! 55 | 56 | %h4 Why should I do this? 57 | %p You should volunteer at a workshop if: 58 | %ul.bulleted 59 | %li You're passionate about teaching technology 60 | %li You think it's weird that people in tech don't actually reflect the people in the world 61 | %li You're excited about teaching the RailsBridge curriculum 62 | 63 | %p And for good measure, you shouldn't volunteer at a workshop if: 64 | %ul.bulleted 65 | %li You desire more attention, and think that students will provide that 66 | %li You (just) want to show off your awesome tech skills 67 | %li You're only in it for the free pizza 68 | %li You want to find your one true love. (You can't ask anyone out at RailsBridge. It's a professional event, and we want all students to feel totally safe.) 69 | -------------------------------------------------------------------------------- /app/views/static_pages/teacher_advice.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Advice for Teach and TAs'])) 2 | 3 | #teacher-advice 4 | %h1 Advice for Teacher and TAs 5 | %p 6 | This is taken directly from the slides for the RailsBridge teacher training, 7 | so it lacks the rich discussion that happens at an actual training. 8 | It's pretty long, but will give you a lot of stuff to think about, so forge on! 9 | 10 | %h2 RailsBridge Fun Facts 11 | %ul 12 | %li Founded in 2009 as a variety of initiatives, including Rails Mentors, Rails Bug Smashes, and the Open Workshop Project. 13 | %li The workshops project was led by Sarah Allen and Sarah Mei. 14 | %li Its goal: make the Rails community more diverse and more welcoming to newcomers. 15 | %li Workshops are happening all over the world! 16 | %h2 How does a workshop work? 17 | %p There are a few different RailsBridge curricula: 18 | %ul 19 | %li Intro to Rails (a.k.a. "Suggestotron") 20 | %li Intermediate Rails 21 | %li Intro to Ruby 22 | %li Front End (HTML, CSS, and a tiny bit of JavaScript). 23 | %p First, we get all the necessary technologies onto the students' computers (the installfest). The next day we break into small groups and work through the curriculum. 24 | %h2 Typical RailsBridge Schedule 25 | %ul 26 | %li 27 | %p Friday, 6-10pm-ish: Installfest — installing things over pizza & beer (usually no formal presentations) 28 | %p 29 | %em N.B.: the Front End workshop doesn't have an installfest. 30 | %li 31 | %p Saturday's schedule, often: 32 | %ul 33 | %li 9-9:30am: Check-in, coffee, bagels 34 | %li 9:30-10am: Opening presentation 35 | %li 10am-12:30pm: Class! 36 | %li 12:30-1:30pm: Lunch 37 | %li 1:30pm-4:30pm: Class! (with a break sometime mid-afternoon) 38 | %li 4:30-5:00pm: Closing presentation & retros 39 | %li 5:00pm-late: After-party 40 | 41 | %h2 Helping your students feel socially comfortable 42 | %h4 Introductions 43 | %ul 44 | %li Do not skip this! Intros are really important for setting the tone of the class. 45 | %li Include name, profession, why are you here, and something silly. 46 | %li Don't rush, even if you have a big class. 47 | %li If someone joins the class late, ask them to introduce themselves. 48 | %h4 Icebreakers 49 | %ul 50 | %li Name games! Admit up front that most people are bad at learning new names. 51 | %li Get people talking. The more comfortable they are at talking, the more likely they'll speak up when they don't understand something, or to answer someone else's question. 52 | %h4 Try to suppress your (understandable) culturally-influenced sexism 53 | %ul 54 | %li Don't hit on people. No sexual advances. None. Even at the after-party. 55 | %li Don't make sexist jokes. Or racist, classist, or ableist jokes. Call people out if they do. 56 | %li Don't make gender-based generalizations ("Women are better at X, because ...") 57 | %li Don't make references to people's bodies or state your opinion of them. 58 | %li Don't use slurs. 59 | %li Don't treat women as delicate flowers; do treat them like normal people. 60 | 61 | %h2 Teaching Technical Things 62 | %h4 Explain that: 63 | %ul 64 | %li Even professional developers are constantly learning new technologies, so being confused is normal. 65 | %li Initial code is often terrible: don't feel bad, just refactor! 66 | %li Mistakes == Learning! 67 | %h4 Dealing with technical concepts: 68 | %ul 69 | %li Define technical terms! Several times! 70 | %li Assume anyone you're teaching has zero knowledge but infinite intelligence. 71 | %li Remember people's professional and code backgrounds (QA, DBA, C++, Java, JS) and relate where possible. If they are a cook, try a cooking analogy. 72 | %h4 Encourage collaboration and interaction 73 | %ul 74 | %li Explicitly encourage students to try to answer each other's questions. 75 | %li If a question is asked, ask if anyone in the class thinks they can explain. 76 | %li Be especially encouraging of the first few questions, to try to get things rolling. 77 | %li Good responses to questions: "I'm glad you asked!" or "I actually wondered that, too." or "Great question!" 78 | %h4 Be Super Positive, Always and Forever 79 | %ul 80 | %li Students have diverse backgrounds. Appreciate this fact. 81 | %li If they aren't getting a concept, avoid anything that might shame them. 82 | %li 83 | Lots of people are already internally berating themselves for not understanding, 84 | so it's super important not to pile on to that in any way. 85 | %li Don't be surprised when someone hasn't heard of something before. 86 | %li 87 | Don't grab anyone's keyboard. Avoid taking over unless you think it's 88 | %em really 89 | necessary. Ask before you do. "Mind if I drive for a sec?" 90 | %h4 Walk the Middle Path 91 | %ul 92 | %li Don't go too deep for your class level, but also, don't gloss over things. 93 | %li When trying to be accurate, it's easy to go down a rabbit hole of specificity. Avoid. 94 | %li Work with the TAs to make sure no one goes down that rabbit hole. Accountability! 95 | %h2 Know what's going on 96 | %h4 Cover logistics at the beginning of class 97 | %ul 98 | %li Planned breaks, lunch time 99 | %li Remind students that there is a closing presentation at the end 100 | %li Make sure they know where the bathroom is 101 | %li Encourage them to attend the after-party 102 | %h4 Establish a few ground rules 103 | %ul 104 | %li Questions are always welcome, even if the student thinks it might be dumb. 105 | %li Explain that if someone has trouble (e.g., not getting the expected output), the TAs will help troubleshoot. 106 | %li If anyone wants to switch classes, tell them they should feel TOTALLY COMFORTABLE switching at any point. 107 | %h4 Don't be afraid to: 108 | %ul 109 | %li Call on people! By name! 110 | %li 111 | Correct people if they're wrong. Be polite and encouraging. For instance: 112 | %ul 113 | %li "Well, this might work better and this is why." 114 | %li "Can you explain how you came to that conclusion?" 115 | %li "Does anyone have a different answer?" 116 | %li Ask yourself questions and answer them. 117 | %h4 Pace yourself! 118 | %ul 119 | %li Don't go too fast. You will probably go too fast. Check in occasionally to ensure everyone is still with you. 120 | %li You can say the same thing THREE TIMES and it will not be boring yet. 121 | %li When you ask a question, wait TEN WHOLE SECONDS before saying anything else. People need time to think. 122 | %li Don't let the most advanced students dictate the pacing or answer all the questions. 123 | %h2 What's a TA good for? Absolutely everything! 124 | %ul 125 | %li At RailsBridge, a TA is a volunteer who isn't leading the class. 126 | %li If you're volunteering at your first RailsBridge workshop, you should probably be a TA. 127 | %li Sometimes they are the technical experts (rather than the teacher), sometimes not. 128 | %li Co-teaching is also an option if you feel like you can tag-team. There doesn't have to be a hierarchy. 129 | 130 | %h4 Things TAs can do: 131 | %ul 132 | %li TAs often explain specific concepts for the class or teach a couple of sections to give the teacher a break from talking. 133 | %li TAs can ask questions to encourage students to speak up. 134 | %li Ask your TA to explain a concept; they may be more technically advanced than you! 135 | %li TAs can help people who get lost. 136 | %li If someone falls behind, the TA can take them out of the room to do some 1-on-1, if there's another TA in the room. 137 | %h2 Student Comprehension 138 | %ul 139 | %li Pay attention to body language. 140 | %li People ask questions most often when they are actively processing material. If they aren't, it might be that the material is too easy or hard. Try to figure out which it is! 141 | %h4 Calling on people 142 | %ul 143 | %li Calling on people makes the class more interactive and engaging, and less lecture-y. 144 | %li Don't always ask questions to the whole class: call on individuals by name. 145 | %li Consider breaking the class into two teams and addressing questions to teams. 146 | %li Ask people what they expect a command to produce BEFORE you hit enter. 147 | %li Ask "How would you do \#{this}?" or "If I wanted to do \#{that}, what would I do?" 148 | %h2 Installfest! 149 | %h4 Keep in mind: 150 | %ul 151 | %li 152 | There will be people with 153 | %em all 154 | kinds of computers. 155 | %li Even though Windows is not an ideal Rails development environment, we're here to encourage people and meet them wherever they are right now. 156 | %li Do NOT say bad things about Windows, even if it's frustrating. 157 | %li If you're not sure about something, grab another volunteer. 158 | %h2 Very Important, Very Practical Things 159 | %ul 160 | %li Where to find the curriculum: #{ link_to "http://docs.railsbridge.org", "http://docs.railsbridge.org", class: 'inline-link' } 161 | %ul 162 | %li You need to read the curriculum through, beginning to end, before teaching it. 163 | %li Where to submit pull requests: #{ link_to "https://github.com/railsbridge/docs", "https://github.com/railsbridge/docs", class: 'inline-link' } 164 | %li How to submit pull requests: #{ link_to "http://railsbridge.github.io/bridge_troll/", "http://railsbridge.github.io/bridge_troll/", class: 'inline-link' } 165 | %h We need your help! Thank you!!! 166 | -------------------------------------------------------------------------------- /app/views/static_pages/team.html.haml: -------------------------------------------------------------------------------- 1 | - provide(:title, page_title(['Team'])) 2 | 3 | %h1 The RailsBridge Team 4 | 5 | %p 6 | The team of people that make RailsBridge successful is too large to include here. 7 | Each RailsBridge chapter is run by a team of dedicated volunteers, and the RailsBridge board 8 | exists primarily to assist those chapter leaders in running workshops and creating communities. 9 | All members of the RailsBridge board serve on committees that support cross-chapter concerns, like 10 | finance, chapter outreach, fundraising, and communications. The board relies on the 11 | input of the RailsBridge Advisory Board when making decisions. To learn more about how the board works, check out the 12 | #{ link_to "RailsBridge Board Charter", "https://github.com/railsbridge/board#railsbridge-board-charter", target: "_blank", class: 'inline-link' }. 13 | 14 | %h3 The RailsBridge Board 15 | 16 | .row 17 | .col-md-12 18 | %ul 19 | %li #{ link_to "Kari Bancroft", "https://twitter.com/karianneban", target: "_blank", class: 'inline-link' } 20 | %li #{ link_to "Coraline Ada Ehmke", "http://where.coraline.codes/", target: "_blank", class: 'inline-link' } 21 | %li #{ link_to "Anna Neyzberg", "https://twitter.com/aneyzb", target: "_blank", class: 'inline-link' } 22 | %li #{ link_to "Melissa Xie", "http://melissaxie.com/", target: "_blank", class: 'inline-link' } 23 | %li #{ link_to "Bianca Rodrigues", "https://twitter.com/biancarods", target: "_blank", class: 'inline-link' } 24 | %li #{ link_to "Rachel Myers", "https://github.com/rachelmyers", target: "_blank", class: 'inline-link' } 25 | 26 | %h3 The RailsBridge Advisory Board 27 | 28 | .row 29 | .col-md-6 30 | %ul 31 | %li #{ link_to "Travis Grathwell", "https://github.com/tjgrathwell", target: "_blank", class: 'inline-link' } (Bridge Troll / Docs lead) 32 | %li #{ link_to "Anna Neyzberg", "https://twitter.com/aneyzb", target: "_blank", class: 'inline-link' } (SF chapter lead) 33 | %li #{ link_to "Sarah Allen", "http://www.ultrasaurus.com/", target: "_blank", class: 'inline-link' } (Bridge Foundry director) 34 | %li #{ link_to "Rachel Ober", "http://rachelober.com/", target: "_blank", class: 'inline-link' } (NYC chapter lead) 35 | %li #{ link_to "Sameer Siruguri", "https://twitter.com/siruguri", target: "_blank", class: 'inline-link' } (Oakland chapter lead) 36 | .col-md-6 37 | %ul 38 | %li #{ link_to "Kevin Lawver", "http://kevinlawver.com/", target: "_blank", class: 'inline-link' } (Savannah chapter lead) 39 | %li #{ link_to "Steve Barnett", "https://naga.co.za/", target: "_blank", class: 'inline-link' } (Cape Town chapter lead) 40 | %li #{ link_to "Renée De Voursney", "https://twitter.com/gigglegirl4e", target: "_blank", class: 'inline-link' } (Seattle chapter lead) 41 | %li #{ link_to "Lauren Scott", "http://www.devdame.com/", target: "_blank", class: 'inline-link' } (Chicago chapter lead) 42 | 43 | %h3 RailsBridge Board, Emeriti 44 | 45 | .row 46 | .col-md-12 47 | %ul 48 | %li #{ link_to "Lillie Chilen", "http://www.lilliechilen.com/", target: "_blank", class: 'inline-link' } 49 | %li #{ link_to "Sarah Mei", "http://www.sarahmei.com/blog/", target: "_blank", class: 'inline-link' } 50 | 51 | %h3 RailsBridge Contributors, Emeriti 52 | 53 | %p Lots of people have helped make RailsBridge great over the years! (This list is far from exhaustive, though.) 54 | 55 | .row 56 | .col-md-6 57 | %ul 58 | %li #{ link_to "Ana Castro", "https://twitter.com/anymoto", target: "_blank", class: 'inline-link' } 59 | %li #{ link_to "Austin Putman", "https://github.com/austinfromboston", target: "_blank", class: 'inline-link' } 60 | %li #{ link_to "Ilen Zazueta-Hall", "http://www.ilen.org/", target: "_blank", class: 'inline-link' } 61 | %li #{ link_to "Judy Tuan", "https://github.com/judytuna", target: "_blank", class: 'inline-link' } 62 | %li #{ link_to "Jen Linder", "https://github.com/jenlindner", target: "_blank", class: 'inline-link' } 63 | %li #{ link_to "Carina C. Zona", "https://github.com/cczona", target: "_blank", class: 'inline-link' } 64 | %li #{ link_to "Emily Nakashima", "https://github.com/eanakashima", target: "_blank", class: 'inline-link' } 65 | 66 | .col-md-6 67 | %ul 68 | %li #{ link_to "Beverly Nelson", "https://twitter.com/bnlson", target: "_blank", class: 'inline-link' } 69 | %li #{ link_to "Isa Herico", "http://www.linkedin.com/pub/isa-herico/4a/9/298", target: "_blank", class: 'inline-link' } 70 | %li #{ link_to "Bernie Telles", "https://github.com/btelles", target: "_blank", class: 'inline-link' } 71 | %li #{ link_to "Mary Jenn", "https://github.com/mfjenn", target: "_blank", class: 'inline-link' } 72 | %li #{ link_to "Alex Chaffee", "https://github.com/alexch", target: "_blank", class: 'inline-link' } 73 | %li #{ link_to "Steven! Ragnarok", "https://github.com/nuclearsandwich", target: "_blank", class: 'inline-link' } 74 | 75 | %p 76 | And major thanks to everyone who has contributed to the 77 | #{ link_to "RailsBridge curricula", "https://github.com/railsbridge/docs/graphs/contributors", target: "_blank", class: 'inline-link'} 78 | and #{ link_to "Bridge Troll", "https://github.com/railsbridge/bridge_troll/graphs/contributors", target: "_blank", class: 'inline-link' }! 79 | 80 | %p 81 | %em Are we missing someone? Is someone miscategorized? Let us know! 82 | %em= render 'shared/github_links', cautious: true 83 | 84 | %h2 What is RailsBridge, legally? 85 | 86 | %p 87 | RailsBridge is not a standalone legal entity; rather, we are a project of #{ link_to "Bridge Foundry", "http://bridgefoundry.org/", target: "_blank", class: 'inline-link'} 88 | — a 501(c)(3) organization empowering people with technology through teaching and facilitating access. 89 | -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../config/application', __dir__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'pathname' 3 | require 'fileutils' 4 | include FileUtils 5 | 6 | # path to your application root. 7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) 8 | 9 | def system!(*args) 10 | system(*args) || abort("\n== Command #{args} failed ==") 11 | end 12 | 13 | chdir APP_ROOT do 14 | # This script is a starting point to setup your application. 15 | # Add necessary setup steps to this file. 16 | 17 | puts '== Installing dependencies ==' 18 | system! 'gem install bundler --conservative' 19 | system('bundle check') || system!('bundle install') 20 | 21 | # puts "\n== Copying sample files ==" 22 | # unless File.exist?('config/database.yml') 23 | # cp 'config/database.yml.sample', 'config/database.yml' 24 | # end 25 | 26 | puts "\n== Preparing database ==" 27 | system! 'bin/rails db:setup' 28 | 29 | puts "\n== Removing old logs and tempfiles ==" 30 | system! 'bin/rails log:clear tmp:clear' 31 | 32 | puts "\n== Restarting application server ==" 33 | system! 'bin/rails restart' 34 | end 35 | -------------------------------------------------------------------------------- /bin/update: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'pathname' 3 | require 'fileutils' 4 | include FileUtils 5 | 6 | # path to your application root. 7 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) 8 | 9 | def system!(*args) 10 | system(*args) || abort("\n== Command #{args} failed ==") 11 | end 12 | 13 | chdir APP_ROOT do 14 | # This script is a way to update your development environment automatically. 15 | # Add necessary update steps to this file. 16 | 17 | puts '== Installing dependencies ==' 18 | system! 'gem install bundler --conservative' 19 | system('bundle check') || system!('bundle install') 20 | 21 | puts "\n== Updating database ==" 22 | system! 'bin/rails db:migrate' 23 | 24 | puts "\n== Removing old logs and tempfiles ==" 25 | system! 'bin/rails log:clear tmp:clear' 26 | 27 | puts "\n== Restarting application server ==" 28 | system! 'bin/rails restart' 29 | end 30 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require ::File.expand_path('../config/environment', __FILE__) 4 | run RailsbridgeSite2013::Application 5 | -------------------------------------------------------------------------------- /config/application.rb: -------------------------------------------------------------------------------- 1 | require_relative 'boot' 2 | 3 | # Pick the frameworks you want: 4 | require "action_controller/railtie" 5 | require "action_mailer/railtie" 6 | require "sprockets/railtie" 7 | 8 | Bundler.require(:default, Rails.env) 9 | 10 | module RailsbridgeSite2013 11 | class Application < Rails::Application 12 | # Settings in config/environments/* take precedence over those specified here. 13 | # Application configuration should go into files in config/initializers 14 | # -- all .rb files in that directory are automatically loaded. 15 | 16 | # Set custom 404 and 500 actions in routes.rb 17 | config.exceptions_app = routes 18 | 19 | # Generator configuration 20 | config.generators do |g| 21 | g.assets = false 22 | g.helper = false 23 | g.test_framework :rspec, fixtures: true, 24 | view_specs: false, 25 | helper_specs: false, 26 | routing_specs: false, 27 | controller_specs: true, 28 | request_specs: true 29 | g.fixture_replacement :factory_girl, dir: "spec/factories" 30 | end 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) 2 | 3 | require 'bundler/setup' # Set up gems listed in the Gemfile. 4 | -------------------------------------------------------------------------------- /config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | development: 7 | adapter: sqlite3 8 | database: db/development.sqlite3 9 | pool: 5 10 | timeout: 5000 11 | 12 | # Warning: The database defined as "test" will be erased and 13 | # re-generated from your development database when you run "rake". 14 | # Do not set this db to the same as development or production. 15 | test: 16 | adapter: sqlite3 17 | database: db/test.sqlite3 18 | pool: 5 19 | timeout: 5000 20 | 21 | production: 22 | adapter: sqlite3 23 | database: db/production.sqlite3 24 | pool: 5 25 | timeout: 5000 26 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require_relative 'application' 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # In the development environment your application's code is reloaded on 5 | # every request. This slows down response time but is perfect for development 6 | # since you don't have to restart the web server when you make code changes. 7 | config.cache_classes = false 8 | 9 | # Do not eager load code on boot. 10 | config.eager_load = false 11 | 12 | # Show full error reports. 13 | config.consider_all_requests_local = true 14 | 15 | # Enable/disable caching. By default caching is disabled. 16 | if Rails.root.join('tmp/caching-dev.txt').exist? 17 | config.action_controller.perform_caching = true 18 | 19 | config.cache_store = :memory_store 20 | config.public_file_server.headers = { 21 | 'Cache-Control' => 'public, max-age=172800' 22 | } 23 | else 24 | config.action_controller.perform_caching = false 25 | 26 | config.cache_store = :null_store 27 | end 28 | 29 | # Don't care if the mailer can't send. 30 | config.action_mailer.raise_delivery_errors = false 31 | 32 | config.action_mailer.perform_caching = false 33 | 34 | # Print deprecation notices to the Rails logger. 35 | config.active_support.deprecation = :log 36 | 37 | # Debug mode disables concatenation and preprocessing of assets. 38 | # This option may cause significant delays in view rendering with a large 39 | # number of complex assets. 40 | config.assets.debug = true 41 | 42 | # Suppress logger output for asset requests. 43 | config.assets.quiet = true 44 | 45 | # Raises error for missing translations 46 | # config.action_view.raise_on_missing_translations = true 47 | 48 | # Use an evented file watcher to asynchronously detect changes in source code, 49 | # routes, locales, etc. This feature depends on the listen gem. 50 | # config.file_watcher = ActiveSupport::EventedFileUpdateChecker 51 | end 52 | -------------------------------------------------------------------------------- /config/environments/production.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # Code is not reloaded between requests. 5 | config.cache_classes = true 6 | 7 | # Eager load code on boot. This eager loads most of Rails and 8 | # your application in memory, allowing both threaded web servers 9 | # and those relying on copy on write to perform better. 10 | # Rake tasks automatically ignore this option for performance. 11 | config.eager_load = true 12 | 13 | # Full error reports are disabled and caching is turned on. 14 | config.consider_all_requests_local = false 15 | config.action_controller.perform_caching = true 16 | 17 | # Disable serving static files from the `/public` folder by default since 18 | # Apache or NGINX already handles this. 19 | config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? 20 | 21 | # Compress JavaScripts and CSS. 22 | config.assets.js_compressor = :uglifier 23 | config.assets.css_compressor = :sass 24 | 25 | # Do not fallback to assets pipeline if a precompiled asset is missed. 26 | config.assets.compile = false 27 | 28 | # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb 29 | 30 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. 31 | # config.action_controller.asset_host = 'http://assets.example.com' 32 | 33 | # Specifies the header that your server uses for sending files. 34 | # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache 35 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX 36 | 37 | # Mount Action Cable outside main process or domain 38 | # config.action_cable.mount_path = nil 39 | # config.action_cable.url = 'wss://example.com/cable' 40 | # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] 41 | 42 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 43 | # config.force_ssl = true 44 | 45 | # Use the lowest log level to ensure availability of diagnostic information 46 | # when problems arise. 47 | config.log_level = :debug 48 | 49 | # Prepend all log lines with the following tags. 50 | config.log_tags = [ :request_id ] 51 | 52 | # Use a different cache store in production. 53 | # config.cache_store = :mem_cache_store 54 | 55 | # Use a real queuing backend for Active Job (and separate queues per environment) 56 | # config.active_job.queue_adapter = :resque 57 | # config.active_job.queue_name_prefix = "railsbridge_site2013_#{Rails.env}" 58 | config.action_mailer.perform_caching = false 59 | 60 | # Ignore bad email addresses and do not raise email delivery errors. 61 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. 62 | # config.action_mailer.raise_delivery_errors = false 63 | 64 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 65 | # the I18n.default_locale when a translation cannot be found). 66 | config.i18n.fallbacks = true 67 | 68 | # Send deprecation notices to registered listeners. 69 | config.active_support.deprecation = :notify 70 | 71 | # Use default logging formatter so that PID and timestamp are not suppressed. 72 | config.log_formatter = ::Logger::Formatter.new 73 | 74 | # Use a different logger for distributed setups. 75 | # require 'syslog/logger' 76 | # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') 77 | 78 | if ENV["RAILS_LOG_TO_STDOUT"].present? 79 | logger = ActiveSupport::Logger.new(STDOUT) 80 | logger.formatter = config.log_formatter 81 | config.logger = ActiveSupport::TaggedLogging.new(logger) 82 | end 83 | 84 | # SendGrid Action Mailer configuration 85 | config.action_mailer.smtp_settings = { 86 | address: 'smtp.sendgrid.net', 87 | port: '587', 88 | authentication: :plain, 89 | user_name: ENV['SENDGRID_USERNAME'], 90 | password: ENV['SENDGRID_PASSWORD'], 91 | domain: 'heroku.com', 92 | enable_starttls_auto: true 93 | } 94 | config.action_mailer.delivery_method ||= :smtp 95 | 96 | config.action_mailer.default_url_options = { host: ENV['HOST_URL'] } 97 | 98 | # Google Analytics code for google-analytics-rails 99 | GA.tracker = "UA-40977319-3" 100 | end 101 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # The test environment is used exclusively to run your application's 5 | # test suite. You never need to work with it otherwise. Remember that 6 | # your test database is "scratch space" for the test suite and is wiped 7 | # and recreated between test runs. Don't rely on the data there! 8 | config.cache_classes = true 9 | 10 | # Do not eager load code on boot. This avoids loading your whole application 11 | # just for the purpose of running a single test. If you are using a tool that 12 | # preloads Rails for running tests, you may have to set it to true. 13 | config.eager_load = false 14 | 15 | # Configure public file server for tests with Cache-Control for performance. 16 | config.public_file_server.enabled = true 17 | config.public_file_server.headers = { 18 | 'Cache-Control' => 'public, max-age=3600' 19 | } 20 | 21 | # Show full error reports and disable caching. 22 | config.consider_all_requests_local = true 23 | config.action_controller.perform_caching = false 24 | 25 | # Raise exceptions instead of rendering exception templates. 26 | config.action_dispatch.show_exceptions = false 27 | 28 | # Disable request forgery protection in test environment. 29 | config.action_controller.allow_forgery_protection = false 30 | config.action_mailer.perform_caching = false 31 | 32 | # Tell Action Mailer not to deliver emails to the real world. 33 | # The :test delivery method accumulates sent emails in the 34 | # ActionMailer::Base.deliveries array. 35 | config.action_mailer.delivery_method = :test 36 | 37 | # Print deprecation notices to the stderr. 38 | config.active_support.deprecation = :stderr 39 | 40 | # Raises error for missing translations 41 | # config.action_view.raise_on_missing_translations = true 42 | end 43 | -------------------------------------------------------------------------------- /config/initializers/application_controller_renderer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # ApplicationController.renderer.defaults.merge!( 4 | # http_host: 'example.org', 5 | # https: false 6 | # ) 7 | -------------------------------------------------------------------------------- /config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. 11 | # Rails.application.config.assets.precompile += %w( search.js ) 12 | -------------------------------------------------------------------------------- /config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /config/initializers/bridgetroll_path.rb: -------------------------------------------------------------------------------- 1 | BRIDGETROLL_URL = ENV['BRIDGETROLL_URL'] || "https://www.bridgetroll.org" 2 | -------------------------------------------------------------------------------- /config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Specify a serializer for the signed and encrypted cookie jars. 4 | # Valid options are :json, :marshal, and :hybrid. 5 | Rails.application.config.action_dispatch.cookies_serializer = :marshal 6 | -------------------------------------------------------------------------------- /config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.session_store :cookie_store, key: '_railsbridge_site2013_session' 4 | -------------------------------------------------------------------------------- /config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # To learn more, please read the Rails Internationalization guide 20 | # available at http://guides.rubyonrails.org/i18n.html. 21 | 22 | en: 23 | hello: "Hello world" 24 | -------------------------------------------------------------------------------- /config/puma.rb: -------------------------------------------------------------------------------- 1 | # Puma can serve each request in a thread from an internal thread pool. 2 | # The `threads` method setting takes two numbers a minimum and maximum. 3 | # Any libraries that use thread pools should be configured to match 4 | # the maximum value specified for Puma. Default is set to 5 threads for minimum 5 | # and maximum, this matches the default thread size of Active Record. 6 | # 7 | threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i 8 | threads threads_count, threads_count 9 | 10 | # Specifies the `port` that Puma will listen on to receive requests, default is 3000. 11 | # 12 | port ENV.fetch("PORT") { 3000 } 13 | 14 | # Specifies the `environment` that Puma will run in. 15 | # 16 | environment ENV.fetch("RAILS_ENV") { "development" } 17 | 18 | # Specifies the number of `workers` to boot in clustered mode. 19 | # Workers are forked webserver processes. If using threads and workers together 20 | # the concurrency of the application would be max `threads` * `workers`. 21 | # Workers do not work on JRuby or Windows (both of which do not support 22 | # processes). 23 | # 24 | # workers ENV.fetch("WEB_CONCURRENCY") { 2 } 25 | 26 | # Use the `preload_app!` method when specifying a `workers` number. 27 | # This directive tells Puma to first boot the application and load code 28 | # before forking the application. This takes advantage of Copy On Write 29 | # process behavior so workers use less memory. If you use this option 30 | # you need to make sure to reconnect any threads in the `on_worker_boot` 31 | # block. 32 | # 33 | # preload_app! 34 | 35 | # The code in the `on_worker_boot` will be called if you are using 36 | # clustered mode by specifying a number of `workers`. After each worker 37 | # process is booted this block will be run, if you are using `preload_app!` 38 | # option you will want to use this block to reconnect to any threads 39 | # or connections that may have been created at application boot, Ruby 40 | # cannot share connections between processes. 41 | # 42 | # on_worker_boot do 43 | # ActiveRecord::Base.establish_connection if defined?(ActiveRecord) 44 | # end 45 | 46 | # Allow puma to be restarted by `rails restart` command. 47 | plugin :tmp_restart 48 | -------------------------------------------------------------------------------- /config/routes.rb: -------------------------------------------------------------------------------- 1 | RailsbridgeSite2013::Application.routes.draw do 2 | 3 | root to: 'static_pages#home' 4 | 5 | get '/about', to: 'static_pages#about', as: 'about' 6 | get '/about/team', to: 'static_pages#team', as: 'team' 7 | get '/about/sponsors', to: 'static_pages#sponsors', as: 'sponsors' 8 | get '/about/chapters', to: 'static_pages#chapters', as: 'chapters' 9 | get '/about/past-events', to: 'static_pages#past_events', as: 'past_events' 10 | get '/about/projects', to: 'static_pages#projects', as: 'projects' 11 | get '/about/brand', to: 'static_pages#brand', as: 'brand' 12 | 13 | get '/help', to: 'static_pages#help', as: 'help' 14 | get '/help/teach', to: 'static_pages#teach', as: 'teach' 15 | get '/help/teacher-advice', to: 'static_pages#teacher_advice', as: 'teacher_advice' 16 | get '/help/organize', to: 'static_pages#organize', as: 'organize' 17 | get '/help/host', to: 'static_pages#host', as: 'host' 18 | get '/help/donor-faq', to: 'static_pages#donor_faq', as: 'donor_faq' 19 | get '/help/interest-form', to: 'static_pages#interest_form', as: 'interest_form' 20 | get '/help/donate', to: 'static_pages#donate', as: 'donate' 21 | 22 | get '/learn', to: 'static_pages#learn', as: 'learn' 23 | get '/learn/resources', to: 'static_pages#learning_resources', as: 'learning_resources' 24 | get '/learn/faq', to: 'static_pages#learning_faq', as: 'learning_faq' 25 | get '/learn/events', to: 'static_pages#events', as: 'events' 26 | 27 | get '/sitemap', to: 'logistics#sitemap', as: 'sitemap' 28 | 29 | unless Rails.application.config.consider_all_requests_local 30 | all_verbs = [:get, :post, :patch, :put, :delete] 31 | match '/404', to: 'logistics#error_404', as: 'error_404', via: all_verbs 32 | match '/500', to: 'logistics#error_500', as: 'error_500', via: all_verbs 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /config/secrets.yml: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Your secret key is used for verifying the integrity of signed cookies. 4 | # If you change this key, all old signed cookies will become invalid! 5 | 6 | # Make sure the secret is at least 30 characters and all random, 7 | # no regular words or you'll be exposed to dictionary attacks. 8 | # You can use `rails secret` to generate a secure secret key. 9 | 10 | # Make sure the secrets in this file are kept private 11 | # if you're sharing your code publicly. 12 | 13 | development: 14 | secret_key_base: f694a0a6ae1d90edf2f9b4c771cefc84af383fd3acfc6a2e7fa906788f275f1e7a2fdd09306c7edf7cb0ac2bded1817a9312c55d867203b1b3bcc286f147bca4 15 | 16 | test: 17 | secret_key_base: 9377c8d4862f77aa4b4571409e22224869260efa97f678eb9245f3381e3b64d6aae53991f7a7db52e1573efc7d4057289543e69841b98f233c5e257f94860b75 18 | 19 | # Do not keep production secrets in the repository, 20 | # instead read values from the environment. 21 | production: 22 | secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 23 | -------------------------------------------------------------------------------- /config/sitemap.rb: -------------------------------------------------------------------------------- 1 | # Set the host name for URL creation 2 | SitemapGenerator::Sitemap.default_host = "http://www.railsbridge.org/" 3 | 4 | SitemapGenerator::Sitemap.create do 5 | 6 | def navigation_map 7 | ApplicationController.helpers.nav_links_by_group 8 | end 9 | 10 | def get_relative_path(named_route) 11 | relative_path = "#{named_route.to_s}_path" 12 | Rails.application.routes.url_helpers.send(relative_path.to_sym) 13 | end 14 | 15 | def change_frequency 16 | # TODO 17 | end 18 | 19 | def change_priority 20 | # TODO 21 | end 22 | 23 | def create_map 24 | navigation_map.each do |nav_group, links| 25 | links.each do |link_info| 26 | add(get_relative_path(link_info[1])) 27 | end 28 | end 29 | end 30 | 31 | create_map 32 | 33 | # Put links creation logic here. 34 | # 35 | # The root path '/' and sitemap index file are added automatically for you. 36 | # Links are added to the Sitemap in the order they are specified. 37 | # 38 | # Usage: add(path, options={}) 39 | # (default options are used if you don't specify) 40 | # 41 | # Defaults: :priority => 0.5, :changefreq => 'weekly', 42 | # :lastmod => Time.now, :host => default_host 43 | # 44 | # Examples: 45 | # 46 | # Add '/articles' 47 | # 48 | # add articles_path, :priority => 0.7, :changefreq => 'daily' 49 | # 50 | # Add all articles: 51 | # 52 | # Article.find_each do |article| 53 | # add article_path(article), :lastmod => article.updated_at 54 | # end 55 | end 56 | -------------------------------------------------------------------------------- /config/spring.rb: -------------------------------------------------------------------------------- 1 | %w( 2 | .ruby-version 3 | .rbenv-vars 4 | tmp/restart.txt 5 | tmp/caching-dev.txt 6 | ).each { |path| Spring.watch(path) } 7 | -------------------------------------------------------------------------------- /db/schema.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/db/schema.rb -------------------------------------------------------------------------------- /db/seeds.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/db/seeds.rb -------------------------------------------------------------------------------- /doc/README_FOR_APP: -------------------------------------------------------------------------------- 1 | Use this README file to introduce your application and point to useful places in the API for learning more. 2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. 3 | -------------------------------------------------------------------------------- /lib/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/lib/assets/.gitkeep -------------------------------------------------------------------------------- /lib/tasks/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/lib/tasks/.gitkeep -------------------------------------------------------------------------------- /log/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/log/.gitkeep -------------------------------------------------------------------------------- /public/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The change you wanted was rejected (422) 5 | 17 | 18 | 19 | 20 | 21 |
22 |

The change you wanted was rejected.

23 |

Maybe you tried to change something you didn't have access to.

24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/public/favicon.ico -------------------------------------------------------------------------------- /public/sitemap.xml.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/public/sitemap.xml.gz -------------------------------------------------------------------------------- /spec/controllers/logistics_controller_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe LogisticsController do 4 | 5 | describe "GET 'error_404'" do 6 | before do 7 | Rails.application.config.consider_all_requests_local = false 8 | RailsbridgeSite2013::Application.reload_routes! 9 | end 10 | 11 | it "returns http success" do 12 | request.stub(:local?) { true } 13 | visit '/404' 14 | response.should be_success 15 | end 16 | 17 | after do 18 | Rails.application.config.consider_all_requests_local = true 19 | RailsbridgeSite2013::Application.reload_routes! 20 | end 21 | end 22 | 23 | describe "GET 'sitemap'" do 24 | it "returns http success" do 25 | visit '/sitemap' 26 | response.should be_success 27 | end 28 | end 29 | 30 | end 31 | -------------------------------------------------------------------------------- /spec/helpers/application_helper_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe ApplicationHelper do 4 | 5 | describe "#page_title" do 6 | 7 | it "returns the base title with no parameters" do 8 | helper.page_title.should eql("RailsBridge") 9 | end 10 | 11 | it "returns base title with pipe delimited pages when passed a string array - one element" do 12 | helper.page_title(["Section Name"]).should eql("RailsBridge | Section Name") 13 | end 14 | 15 | it "returns base title with pipe delimited pages when passed a string array - two elements" do 16 | helper.page_title(["Section Name", "Page Name"]).should eql("RailsBridge | Section Name | Page Name") 17 | end 18 | 19 | end 20 | 21 | describe "#nav_link" do 22 | 23 | it "returns a list element and link" do 24 | helper.nav_link("Overview", :learn).should eql('
  • Overview
  • ') 25 | end 26 | 27 | it "returns a selected list element and link when is current page" do 28 | view.stub("current_page?").with(:learn).and_return(true) 29 | helper.nav_link("Overview", :learn).should eql('
  • Overview
  • ') 30 | end 31 | 32 | end 33 | 34 | end 35 | -------------------------------------------------------------------------------- /spec/requests/events_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe "rendering events list" do 4 | def default_event_attributes(date) 5 | { 6 | workshop: true, 7 | location: { 8 | name: 'City Hall', 9 | city: 'San Francisco', 10 | state: 'California' 11 | }, 12 | sessions: [ 13 | { 14 | name: 'Good Session', 15 | starts_at: "#{date.year}-01-13T18:00:00.000-08:00", 16 | ends_at: "#{date.year}-01-13T21:00:00.000-08:00" 17 | } 18 | ], 19 | organizers: [ 20 | 'Alpha Beta', 21 | 'Gamma Zeta' 22 | ], 23 | organization: 'RailsBridge' 24 | } 25 | end 26 | 27 | before do 28 | upcoming_events_body = [ 29 | default_event_attributes(1.year.from_now).merge( 30 | id: 3, 31 | title: 'CourtBridge', 32 | ) 33 | ].to_json 34 | 35 | stub_request(:get, "#{BRIDGETROLL_URL}/events.json?type=upcoming"). 36 | to_return(status: 200, body: upcoming_events_body) 37 | 38 | organization_events_body = [ 39 | default_event_attributes(2.years.ago).merge( 40 | id: 1, 41 | title: 'OlderBridge', 42 | ), 43 | default_event_attributes(1.year.ago).merge( 44 | id: 2, 45 | title: 'BygoneBridge', 46 | ) 47 | ].to_json 48 | 49 | stub_request(:get, "#{BRIDGETROLL_URL}/events.json?organization_id=1&type=past"). 50 | to_return(status: 200, body: organization_events_body) 51 | end 52 | 53 | describe "the home page" do 54 | it 'has a list of upcoming events' do 55 | visit '/' 56 | expect(page).to have_content('CourtBridge') 57 | end 58 | end 59 | 60 | describe "the events page" do 61 | it 'has a list of upcoming events' do 62 | visit '/learn/events' 63 | expect(page).to have_content('CourtBridge') 64 | end 65 | end 66 | 67 | describe "the home page" do 68 | it 'has a list of past events' do 69 | visit '/about/past-events' 70 | expect(page.all('tbody tr').length).to eq(2) 71 | end 72 | end 73 | end 74 | -------------------------------------------------------------------------------- /spec/requests/static_pages_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | def find_routes 4 | Rails.application.routes.routes.select do |route| 5 | route.defaults[:controller] == 'static_pages' 6 | end 7 | end 8 | 9 | describe "Static pages" do 10 | before do 11 | stub_request(:get, /#{BRIDGETROLL_URL}\/events.json.*/). 12 | to_return(status: 200, body: "[]") 13 | end 14 | 15 | it 'can render a bunch of static pages' do 16 | # sanity check that find_routes isn't returning nothing 17 | find_routes.length.should be > 10 18 | end 19 | 20 | find_routes.each do |route| 21 | route_string = route.path.spec.to_s.gsub(/\(.*?\)/, '') 22 | 23 | it "renders #{route_string} successfully" do 24 | visit route_string 25 | status_code.should be 200 26 | end 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | ENV["RAILS_ENV"] ||= 'test' 2 | require 'simplecov' 3 | SimpleCov.start 'rails' 4 | require File.expand_path("../../config/environment", __FILE__) 5 | require 'rspec/rails' 6 | require 'email_spec' 7 | require 'webmock/rspec' 8 | 9 | # Requires supporting ruby files with custom matchers and macros, etc, 10 | # in spec/support/ and its subdirectories. 11 | Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } 12 | 13 | RSpec.configure do |config| 14 | config.infer_spec_type_from_file_location! 15 | 16 | config.include(EmailSpec::Helpers) 17 | config.include(EmailSpec::Matchers) 18 | 19 | # If true, the base class of anonymous controllers will be inferred 20 | # automatically. This will be the default behavior in future versions of 21 | # rspec-rails. 22 | config.infer_base_class_for_anonymous_controllers = false 23 | 24 | # Run specs in random order to surface order dependencies. If you find an 25 | # order dependency and want to debug it, you can fix the order by providing 26 | # the seed, which is printed after each run. 27 | # --seed 1234 28 | config.order = "random" 29 | 30 | # Include path helpers 31 | config.include Rails.application.routes.url_helpers 32 | 33 | config.include Capybara::DSL 34 | 35 | config.expect_with :rspec do |expectations| 36 | expectations.syntax = [:should, :expect] 37 | end 38 | 39 | config.mock_with :rspec do |mocks| 40 | mocks.syntax = [:should, :expect] 41 | 42 | # Prevents you from mocking or stubbing a method that does not exist on 43 | # a real object. This is generally recommended. 44 | mocks.verify_partial_doubles = true 45 | end 46 | end 47 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/vendor/assets/javascripts/.gitkeep -------------------------------------------------------------------------------- /vendor/assets/stylesheets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/railsbridge/railsbridge_dot_org/db87a4f843180c714cdb72d1625eb6aebeafd0bf/vendor/assets/stylesheets/.gitkeep --------------------------------------------------------------------------------