├── .gitignore ├── .ruby-version ├── 2016.md ├── 2017.md ├── 2018.md ├── 2019.md ├── 2020.md ├── Gemfile ├── README.md ├── _config.yml ├── _data ├── constants.yml └── organizers.yml ├── _includes ├── _global_js.html ├── github-avatar.html ├── github-block.html ├── header.html └── projects-yearbook.html ├── _layouts ├── base.html └── page.html ├── assets ├── css │ ├── animate.css │ ├── bootstrap-combined.min.css │ ├── bootstrap.min.css │ ├── color-chooser.css │ ├── custom.css │ ├── font-awesome.min.css │ ├── font-lineicons.css │ ├── index.html │ ├── jquery.fancybox.css │ ├── style-2018.css │ ├── style-berry.css │ ├── style-blue.css │ ├── style-green.css │ ├── style-orange.css │ ├── style-pink.css │ ├── style.css │ ├── syntax.css │ └── toastr.min.css ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── index.html │ ├── line-icons.eot │ ├── line-icons.svg │ ├── line-icons.ttf │ ├── line-icons.woff │ └── styles.css ├── ico │ ├── apple-touch-icon-114-precomposed.png │ ├── apple-touch-icon-144-precomposed.png │ ├── apple-touch-icon-57-precomposed.png │ ├── apple-touch-icon-72-precomposed.png │ ├── favicon.ico │ └── web-slack-icon.png ├── img │ ├── 2016photo.jpg │ ├── about-placeholder-iphone.jpg │ ├── about-placeholder-mbp.jpg │ ├── about-placeholder-starbucks.jpg │ ├── apple-touch-icon-114x114.jpg │ ├── apple-touch-icon-72x72.jpg │ ├── apple-touch-icon.jpg │ ├── fancybox │ │ ├── blank.gif │ │ ├── fancybox_loading.gif │ │ ├── fancybox_loading@2x.gif │ │ ├── fancybox_overlay.png │ │ ├── fancybox_sprite.png │ │ ├── fancybox_sprite@2x.png │ │ └── index.html │ ├── favicon.ico │ ├── favicon.png │ ├── gallery │ │ ├── chris_thumbnail.jpg │ │ ├── craig_thumbnail.jpg │ │ ├── index.html │ │ ├── jen_thumbnail.jpg │ │ ├── kalimar_thumbnail.jpg │ │ ├── polly_thumbnail.jpg │ │ ├── sean_thumbnail.jpg │ │ ├── teresa_thumbnail.jpg │ │ ├── thumb-1.jpg │ │ ├── thumb-2.jpg │ │ ├── thumb-3.jpg │ │ └── thumb-4.jpg │ ├── header-bg-1.jpg │ ├── header-bg.jpg │ ├── image.png │ ├── index.html │ ├── magnify-cur.cur │ ├── magnify-cur.png │ ├── pmarker.png │ ├── preloader.gif │ ├── r4g-map-pin.png │ ├── r4g.png │ ├── red-panda.png │ ├── register-bg.jpg │ ├── renee.png │ ├── sound-wave-trans.png │ ├── sound-wave.jpg │ ├── speaker │ │ ├── index.html │ │ ├── speaker-1.jpg │ │ ├── speaker-2.jpg │ │ ├── speaker-3.jpg │ │ └── speaker-4.jpg │ ├── sponsor │ │ ├── 1password.png │ │ ├── booster.png │ │ ├── claritylogoretina.png │ │ ├── customi.jpg │ │ ├── customink.png │ │ ├── digitalocean.png │ │ ├── distil.svg │ │ ├── excella.png │ │ ├── excella.svg │ │ ├── flatiron.png │ │ ├── framebridge.png │ │ ├── georgetown.png │ │ ├── github.png │ │ ├── godaddy.png │ │ ├── heroku.png │ │ ├── heroku2.png │ │ ├── honeybadger.svg │ │ ├── index.html │ │ ├── jibe.png │ │ ├── knightpoint.png │ │ ├── kps.png │ │ ├── linode.png │ │ ├── mapbox-logo-color.svg │ │ ├── mapbox.svg │ │ ├── mason.png │ │ ├── newrelic.png │ │ ├── optoro-logo.png │ │ ├── optoro-logo.svg │ │ ├── ordway.png │ │ ├── pardot.png │ │ ├── sevatec.png │ │ ├── sponsor-logo-0.jpg │ │ ├── sponsor-logo-1.jpg │ │ ├── sponsor-logo-10.jpg │ │ ├── sponsor-logo-2.jpg │ │ ├── sponsor-logo-3.jpg │ │ ├── sponsor-logo-4.jpg │ │ ├── sponsor-logo-5.jpg │ │ ├── sponsor-logo-6.jpg │ │ ├── sponsor-logo-7.jpg │ │ ├── sponsor-logo-8.jpg │ │ ├── sponsor-logo-9.jpg │ │ ├── stickermule.svg │ │ ├── stsi.png │ │ ├── taphere.png │ │ ├── vibes-single.png │ │ ├── vibes.svg │ │ ├── vibes_blue_rgb.svg │ │ ├── xogroup.jpeg │ │ ├── xogroup.png │ │ └── xogroupold.png │ └── stat-bg.jpg ├── index.html ├── js │ ├── bootstrap.min.js │ ├── color-chooser.js │ ├── form-validation.js │ ├── html5.js │ ├── index.html │ ├── jquery-1.11.0.min.js │ ├── jquery-2.1.0.min.js │ ├── jquery-2.1.0.min.map │ ├── jquery.appear.js │ ├── jquery.countTo.js │ ├── jquery.countdown.js │ ├── jquery.fancybox.js │ ├── jquery.js │ ├── jquery.mixitup.min.js │ ├── jquery.plugin.js │ ├── jquery.validate.js │ ├── moment.min.js │ ├── respond.min.js │ ├── scripts.js │ ├── spin.min.js │ ├── toastr.min.js │ ├── waypoints-sticky.min.js │ └── waypoints.min.js └── mailchimp │ ├── css │ ├── default.css │ └── error.gif │ ├── inc │ ├── MCAPI.class.php │ ├── error_log │ └── store-address.php │ └── js │ └── mailing-list.js ├── attend.md ├── coc.md ├── faq.md ├── help.md ├── helpwanted.html ├── icons-reference.html ├── images ├── captain.png ├── cfa_brigade_logo.png ├── cfa_logo_greyscale.png ├── code_across_banner.png ├── community.png ├── google_groups.png ├── image.png ├── meetup.jpg ├── noun_project_756_citizen.png ├── original │ ├── captain.png │ ├── cfa_brigade_logo.png │ ├── cfa_logo_greyscale.png │ ├── code_across_banner.png │ ├── community.png │ ├── google_groups.png │ ├── meetup.jpg │ ├── noun_project_756_citizen.png │ └── sunrise-top.jpg ├── smithsonian_parking.jpg ├── sunrise-top.jpg └── tidalbasin.jpg ├── index.html ├── partner.md ├── projects.html ├── sponsors.md ├── submit-project.md ├── team-leads.md └── yearbook.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | _site 3 | Gemfile.lock 4 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /2016.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | ### Ruby for Good 2016 6 | 7 | [Join us on Slack](https://rubyforgood.herokuapp.com/) before, during, and after the event for announcements and making friends. 8 | 9 | ###### Thursday June 16th 10 | 11 | * Arrive before 5:00 pm — most of the organizing team is planning on arriving at 10:00 am but feel free to beat us there! 12 | * 1:00 pm - 26 people on [FONZ](https://nationalzoo.si.edu/JoinFonz/join.cfm) tour of Smithsonian-Mason Institute (see below) — [reserve your spot](https://docs.google.com/spreadsheets/d/1gTi3wUj8MJLG637wdYBsasBrca53P7X-FFjXWw-SF2k/edit?usp=sharing). 13 | * 5:00 pm - Event kickoff and announcements 14 | * 5:30 pm - Team pitches, team assignments 15 | * 6:30 pm - Dinner, initial team discussion, setting up environments, cloning down repos, etc. 16 | * 8:30 pm? - Board games, computer games, socializing, and other random fun. 17 | 18 | ###### Friday June 17th 19 | 20 | * 8:00 am - Breakfast 21 | * 9:00 am - Work on projects 22 | * 10:00 am - 26 people on [FONZ](https://nationalzoo.si.edu/JoinFonz/join.cfm) tour of Smithsonian-Mason Institute (see below) — [reserve your spot](https://docs.google.com/spreadsheets/d/1gTi3wUj8MJLG637wdYBsasBrca53P7X-FFjXWw-SF2k/edit?usp=sharing). 23 | * 12:00 pm - Lunch 24 | * 1:00 pm - 26 people on [FONZ](https://nationalzoo.si.edu/JoinFonz/join.cfm) tour of Smithsonian-Mason Institute (see below) — [reserve your spot](https://docs.google.com/spreadsheets/d/1gTi3wUj8MJLG637wdYBsasBrca53P7X-FFjXWw-SF2k/edit?usp=sharing). 25 | * 1:00 pm - Work on projects 26 | * 5:00 pm - Dinner 27 | * 6:30pm - Werewolf, board games, socializing, fun! 28 | 29 | ###### Saturday June 18th 30 | 31 | * 8:00 am - Breakfast 32 | * 9:00 am - Work on projects 33 | * 12:00 pm - Lunch 34 | * 1:00 pm - Work on projects 35 | * 5:00 pm - Dinner 36 | * 6:30pm - Outdoorsy fun (bring a sweater, lawn chairs, and a sweet tooth). 37 | 38 | ###### Sunday June 19th 39 | 40 | * 8:00 am - Breakfast 41 | * 9:00 am - Work on projects 42 | * 12:00 pm - Lunch 43 | * 1:00 pm - Demos (if your project isn't finished, demo what you can!) 44 | 45 | ### Location 46 | 47 | George Mason University’s Smithsonian-Mason School of Conservation
48 | 1500 Remount Rd
49 | Front Royal, VA 22630 50 | 51 | The location is only accessible by car — we are helping to [coordinate carpooling](https://docs.google.com/forms/d/1aA0fJbbmxYW3lTqP6A7zLOnZbECzCd5d9f7L9ok_jLI/viewform?c=0&w=1). Please fill out the form if you need a ride or can offer a ride and Kalimar will do his best to match people up! Contact Kalimar at [kalimar@rubyforgood.org](mailto:kalimar@rubyforgood.org). 52 | 53 | If you arrive and the gate is locked, dial #90 at the phone at gate #2 for access. 54 | 55 | Once you enter through the gates, drive to the top of the hill (the Smithsonian Tower with yellow and blue sun will be on your right). Make a right after the Smithsonian tower, and parking is on the right. 56 | 57 | After arriving, head to the “Residences” building to check in. 58 | 59 | ### FONZ Tours 60 | 61 | The [Friends of the National Zoo (FONZ)](https://nationalzoo.si.edu/JoinFonz/join.cfm) is giving us a personalized, not-open-to-the-public tour of the Smithsonian Conservation Biology Institute (SCBI) grounds and animal habitats so we can learn about red pandas, bison, and other friendly creatures, their homes, and the research being done on-site. We have three tours lined up as indicated above. Only 26 people are allowed for each tour and tours last between 1.5 and 2 hours. Be sure to [reserve your spot](https://docs.google.com/spreadsheets/d/1gTi3wUj8MJLG637wdYBsasBrca53P7X-FFjXWw-SF2k/edit?usp=sharing) on one of the tours. 62 | 63 | ### What to Bring 64 | 65 | Bring yourself, your laptop, a power source, some clothes and your favorite board games. Maybe some sunscreen if the weather’s nice. If you anticipate skipping group meals, bring some munchies. If you’re a light sleeper, bring earplugs. All the basics are provided (linens, pillows, beds, towels, etc.). We have a fun outdoor activity planned for one evening so camping chairs, a sweater and maybe some bug spray are highly recommended. 66 | -------------------------------------------------------------------------------- /2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | ### Ruby for Good 2017 6 | 7 | [Join us on Slack](https://rubyforgood.herokuapp.com/) before, during, and after the event for announcements and making friends. 8 | 9 | ###### Thursday May 18th 10 | 11 | * Arrive before 5:00 pm — most of the organizing team is planning on arriving early and be sure to come before 1:00pm if you intend to attend the [FONZ](https://nationalzoo.si.edu/JoinFonz/join.cfm) tour of Smithsonian-Mason Institute! 12 | * 5:00 pm - Event kickoff and announcements 13 | * 5:30 pm - Team pitches, team assignments, dinner with your team, initial team discussion 14 | * 6:30 pm - Finish setting up environments, cloning down repos, etc. 15 | * 8:30 pm or earlier if teams have everything ready to go for Friday - Board games, computer games, socializing, and other random fun. 16 | 17 | ###### Friday May 19th 18 | 19 | * 8:00 am - Breakfast 20 | * 9:00 am - Work on projects 21 | * 10:00 am - 26 people on [FONZ](https://nationalzoo.si.edu/JoinFonz/join.cfm) tour of Smithsonian-Mason Institute (see below) 22 | * 11:30 pm - Lunch 23 | * 1:00 pm - 26 people on [FONZ](https://nationalzoo.si.edu/JoinFonz/join.cfm) tour of Smithsonian-Mason Institute (see below) 24 | * 1:00 pm - Work on projects 25 | * 5:00 pm - Dinner 26 | * 6:30 pm - Werewolf, board games, socializing, fun! 27 | 28 | ###### Saturday May 20th 29 | 30 | * 8:00 am - Breakfast 31 | * 9:00 am - Work on projects 32 | * 12:00 pm - Lunch 33 | * 1:00 pm - Work on projects 34 | * 5:00 pm - Dinner 35 | * 6:30 - More games, socializing and fun! 36 | 37 | ###### Sunday May 21st 38 | 39 | * 8:00 am - Breakfast 40 | * 9:00 am - Work on projects 41 | * 12:00 pm - Lunch 42 | * 1:00 pm - Demos (if your project isn't finished, demo what you can!) 43 | 44 | ### Location 45 | 46 | George Mason University's Smithsonian-Mason School of Conservation
47 | 1500 Remount Rd
48 | Front Royal, VA 22630 49 | 50 | The location is only accessible by car — we are helping to [coordinate carpooling](https://docs.google.com/forms/d/1aA0fJbbmxYW3lTqP6A7zLOnZbECzCd5d9f7L9ok_jLI/viewform?c=0&w=1). Please fill out the form if you need a ride or can offer a ride and Kalimar will do his best to match people up! Contact Kalimar at [kalimar@rubyforgood.org](mailto:kalimar@rubyforgood.org). 51 | 52 | If you arrive and the gate is locked, dial #90 at the phone at gate #2 for access. 53 | 54 | Once you enter through the gates, drive to the top of the hill (the Smithsonian Tower with yellow and blue sun will be on your right). Make a right after the Smithsonian tower, and parking is on the right. 55 | 56 | After arriving, head to the "Residences" building to check in. 57 | 58 | See a helpful [annotated satellite photo](/images/images/smithsonian_parking.jpg) or a link on [Google Maps](https://goo.gl/maps/ei3HcuBW1ZT2). 59 | 60 | ### FONZ Tours 61 | 62 | The [Friends of the National Zoo (FONZ)](https://nationalzoo.si.edu/JoinFonz/join.cfm) is giving us a personalized, not-open-to-the-public tour of the Smithsonian Conservation Biology Institute (SCBI) grounds and animal habitats so we can learn about red pandas, bison, and other friendly creatures, their homes, and the research being done on-site. 63 | 64 | ### What to Bring 65 | 66 | Bring yourself, your laptop, a power source, some clothes and your favorite board games. Maybe some sunscreen if the weather's nice. If you anticipate skipping group meals, bring some munchies. If you're a light sleeper, bring earplugs. All the basics are provided (linens, pillows, beds, towels, etc.). We have a fun outdoor activity planned for one evening so camping chairs, a sweater and maybe some bug spray are highly recommended. 67 | -------------------------------------------------------------------------------- /2018.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | ### Ruby for Good 2018 6 | 7 | [Join us on Slack](https://rubyforgood.herokuapp.com/) before, during, and after the event for announcements and making friends. 8 | 9 | ##### Attendee Agenda 10 | 11 | ##### Thursday June 7th 12 | 13 | * 4:00 pm - Visit with team leads, familiarize yourself with each project’s nonprofit and their mission, ask about particular projects, get a sense of technical requirements. Consider this an opportunity to go into a little more depth with projects before you choose to commit to one in particular. This portion is optional, but you may find it helpful in making your decision! 14 | * 5:00 pm - Event kickoff and announcements 15 | * 5:30 pm - Team pitches, team selection, initial team discussion 16 | * 6:00 pm - Dinner with your team (and others!) 17 | * 6:30 pm – Teams set up environments, clone down repos, etc. 18 | * 8:30 pm or earlier if teams have everything ready to go for Friday - Board games, computer games, socializing, and other random fun. 19 | 20 | ##### Friday June 8th 21 | 22 | * 8:00 am - Breakfast 23 | * 9:00 am - Work on projects 24 | * 11:30 pm - Lunch 25 | * 1:00 pm - Work on projects 26 | * 5:00 pm – PHOTOS (entire group, individual teams, and fridayhug) 27 | * 5:30 pm - Dinner 28 | * 6:30 pm - Werewolf, board games, socializing, fun! 29 | 30 | ##### Saturday June 9th 31 | 32 | * 8:00 am - Breakfast 33 | * 9:00 am - Work on projects 34 | * 12:00 pm - Lunch 35 | * 1:00 pm - Work on projects 36 | * 5:00 pm - Dinner 37 | * 6:30 pm - Career fair -- talk to our sponsors about positions at the awesome companies! 38 | * 7:00 - More games, socializing and fun! 39 | 40 | ##### Sunday June 10th 41 | 42 | * 8:00 am - Breakfast 43 | * 9:00 am - Work on projects 44 | * 12:00 pm - Lunch 45 | * 1:00 pm - Demos (if your project isn’t finished, demo what you can!) 46 | 47 | ### Location 48 | 49 | Georgetown University
50 | 37th and O Streets, N.W.
51 | Washington D.C. 20057 52 | 53 | Take a look at [this map](http://pompeii.gmu.edu/lgP6v.png) as it annotates the various locations where we'll be. 54 | 55 | ### What to Bring 56 | 57 | Bring yourself, your laptop, a power source, some clothes and your favorite board games. Maybe some sunscreen if the weather's nice. If you anticipate skipping group meals, bring some munchies. If you're a light sleeper, bring earplugs. All the basics are provided (linens, pillows, beds, towels, etc.). 58 | -------------------------------------------------------------------------------- /2019.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | ### Ruby for Good 2019 6 | 7 | [Join us on Slack](https://rubyforgood.herokuapp.com/) before, during, and after the event for announcements and making friends. 8 | 9 | ##### Attendee Agenda 10 | 11 | ##### Thursday July 25th 12 | 13 | * 4:00 pm - Visit with team leads, familiarize yourself with each project’s nonprofit and their mission, ask about particular projects, get a sense of technical requirements. Consider this an opportunity to go into a little more depth with projects before you choose to commit to one in particular. This portion is optional, but you may find it helpful in making your decision! 14 | * 5:00 pm - Event kickoff and announcements 15 | * 5:30 pm - Team pitches, team selection, initial team discussion 16 | * 5:30 pm - Dinner with your team (and others!) 17 | * 6:30 pm – Teams set up environments, clone down repos, etc. 18 | * 8:30 pm or earlier if teams have everything ready to go for Friday - Board games, computer games, socializing, and other random fun. 19 | 20 | ##### Friday July 26th 21 | 22 | * 8:00 am - Breakfast 23 | * 9:00 am - Work on projects 24 | * 12:00 pm - Lunch 25 | * 1:00 pm - Work on projects 26 | * 5:00 pm - Dinner 27 | * 6:00 pm - Werewolf, board games, socializing, fun! 28 | 29 | ##### Saturday July 27th 30 | 31 | * 8:00 am - Breakfast 32 | * 9:00 am - Work on projects 33 | * 12:00 pm - Lunch 34 | * 1:00 pm - Work on projects 35 | * 4:30 pm – PHOTOS (entire group, individual teams, and fridayhug) 36 | * 5:00 pm - Dinner 37 | * 6:30 pm - Career fair -- talk to our sponsors about positions at the awesome companies! 38 | * 7:00 - More games, socializing and fun! 39 | 40 | ##### Sunday July 28th 41 | 42 | * 8:00 am - Breakfast 43 | * 9:00 am - Work on projects 44 | * 12:00 pm - Lunch 45 | * 1:00 pm - Demos (if your project isn’t finished, demo what you can!) 46 | 47 | ### Location 48 | 49 | George Mason University
50 | 4400 University Drive
51 | Fairfax, VA 22030 52 | 53 | ### What to Bring 54 | 55 | Bring yourself, your laptop, a power source, some clothes and your favorite board games. Maybe some sunscreen if the weather's nice. If you anticipate skipping group meals, bring some munchies. If you're a light sleeper, bring earplugs. All the basics are provided (linens, pillows, beds, towels, etc.). 56 | -------------------------------------------------------------------------------- /2020.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | ### Ruby for Good 2020 6 | 7 | [Join us on Slack](https://rubyforgood.herokuapp.com/) before, during, and after the event for announcements and making friends. The schedule below is in Eastern Daylight Time (EDT). 8 | 9 | ##### Attendee Agenda 10 | 11 | ##### Saturday, September 5th 12 | 13 | * 10:00am - 12:00pm: Project Coding 14 | * 12:00pm - 2:00pm: Facilitated Social Event 15 | * 2:00pm - 4:00pm: Project Coding 16 | * 4:00pm - 6:00pm: Facilitated Social Event 17 | * 6:00pm - onward: Games, Socializing 18 | 19 | ##### Sunday, September 6th 20 | 21 | * 10:00am - 12:00pm: Project Coding 22 | * 12:00pm - 2:00pm: Facilitated Social Event 23 | * 2:00pm - 4:00pm: Project Coding 24 | * 4:00pm - 6:00pm: Facilitated Social Event 25 | * 6:00pm - onward: Games, Socializing 26 | 27 | ##### Saturday, September 12th 28 | 29 | * 10:00am - 12:00pm: Project Coding 30 | * 12:00pm - 2:00pm: Facilitated Social Event 31 | * 2:00pm - 4:00pm: Project Coding 32 | * 4:00pm - 6:00pm: Facilitated Social Event 33 | * 6:00pm - onward: Games, Socializing 34 | 35 | ##### Sunday, September 13th 36 | 37 | * 10:00am - 1:00pm: Prepare for demos 38 | * 1:00pm - onward: Demos (if your project isn’t finished, demo what you can!) 39 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'github-pages' 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # rubyforgood.org 2 | 3 | This repository holds [rubyforgood.org](http://rubyforgood.org), a site built on [GitHub Pages](https://pages.github.com/). 4 | 5 | ## Running Locally for Development 6 | 7 | First, install dependencies with bundler: 8 | 9 | ``` 10 | bundle install 11 | ``` 12 | 13 | Then, run the site with `jekyll`: 14 | 15 | ``` 16 | jekyll serve 17 | ``` 18 | 19 | The site will be available at [http://localhost:4000](http://localhost:4000). 20 | 21 | ## Project Information 22 | 23 | Project information for Yearbook, Projects and the Help Wanted board is kept in the repo 24 | [meta](https://github.com/rubyforgood/meta). Submit a pull request in that repo 25 | to change project listings. 26 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | highlighter: rouge 2 | gems: 3 | - jekyll-redirect-from 4 | -------------------------------------------------------------------------------- /_data/constants.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | dates: 4 | start: Sept. 5th 5 | end: Sept. 6th 6 | year: "2020" 7 | start2: Sept. 12th 8 | end2: Sept. 13th 9 | year2: "2020" 10 | address: "Online" 11 | suggest_project: 'https://airtable.com/shrC6VjWgka26a6eh' 12 | contact_email: "info@rubyforgood.org" 13 | cost: $60 14 | apply_scholarship: 'https://docs.google.com/forms/d/1M3PJepMOZcqUcIN81Ju7YEeXpQKhYWnSWnmgeZTX33w/viewform#start=openform' -------------------------------------------------------------------------------- /_data/organizers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Sean Marcia 4 | title: Founder 5 | about: Came up with Ruby for Good, and it would not be possible without his hard work. 6 | twitter: seanmarcia 7 | github: SeanMarcia 8 | img: assets/img/gallery/sean_thumbnail.jpg 9 | - name: Polly Schandorf 10 | title: Go-Getter 11 | img: assets/img/gallery/polly_thumbnail.jpg 12 | about: Loves building a great and supportive community, and playing games. Definitely not a villager. 13 | github: pollygee 14 | twitter: N3rdyTeacher 15 | # - name: Jen Pengelly 16 | # title: Empathizer 17 | # img: assets/img/gallery/jen_thumbnail.jpg 18 | # about: Loves organizing things and getting people together, solving cool problems, and making good food. 19 | # github: jenpen 20 | # twitter: jenpengelly 21 | - name: Craig Zaccaro 22 | title: Organizer 23 | img: assets/img/gallery/craig_thumbnail.jpg 24 | about: Loves building useful stuff and contributing to the community. 25 | github: CraigJZ 26 | twitter: craigzaccaro 27 | -------------------------------------------------------------------------------- /_includes/_global_js.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% for js_name in page.extra_js %}{% endfor %} 5 | 6 | 18 | 19 | 33 | 34 | {% if page.deeplink == true %} 35 | 55 | {% endif %} 56 | -------------------------------------------------------------------------------- /_includes/github-avatar.html: -------------------------------------------------------------------------------- 1 | 2 | {{ include.username }} 3 | 4 | -------------------------------------------------------------------------------- /_includes/github-block.html: -------------------------------------------------------------------------------- 1 |
2 | View Project on GitHub 3 | 4 | {% assign team = include.team | split:"|" %} 5 | 6 | {: .github-avatars .pull-left} 7 | {% for member in team %} 8 | - {% include github-avatar.html username=member %} 9 | {% endfor %} 10 | 11 |
12 |
13 | -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 | 42 | -------------------------------------------------------------------------------- /_includes/projects-yearbook.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 |
23 | 24 |
25 | 26 |
27 | 28 | 70 | -------------------------------------------------------------------------------- /_layouts/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ruby for Good - Making the world gooder 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | {% for css_name in page.extra_css %}{% endfor %} 30 | 31 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | {{ content }} 42 | 43 | 44 | 45 | 46 |
47 | 48 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | {% for js_name in page.extra_js %}{% endfor %} 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | --- 4 | 5 | {% include header.html %} 6 | 7 | 14 | 15 | 16 |
17 |
18 |
19 |

© {{ site.time | date: '%Y' }} - Ruby for Good

20 |
21 |
22 | 23 | -------------------------------------------------------------------------------- /assets/css/color-chooser.css: -------------------------------------------------------------------------------- 1 | /*** Ventcamp v1.0 custom styles *** 2 | * 3 | * 4 | * Predefined colors for quick change: 5 | * 6 | * Pink - #dd3e98 7 | * Green - #57c2be 8 | * Blue - #2da9ff 9 | * Orange - #ff4919 10 | * 11 | *************************************/ 12 | 13 | #style-switcher {left:-225px;position: fixed;top: 200px;display: block;width: 225px;background:rgba(0, 0, 0, 0.9); color:#fff; border: 0px solid #f0f0f0;padding: 10px 20px 20px 20px;z-index: 90000;} 14 | #style-switcher ul {margin-bottom: 8px;width: 100%;list-style: none; padding-left:0;} 15 | #style-switcher .style-toggle {margin-left:-5px;position: absolute;display: block;width: 50px;height: 50px;text-align: center;line-height: 50px;top: 25px;right: -50px; background:rgba(0, 0, 0, 0.9); color:#fff;} 16 | #style-switcher .style-toggle:hover {color:#ff4919 !important;} 17 | #style-switcher a.color {padding: 15px 15px;background: #555555; color: #ffffff;float: left;margin-right: 5px;font-size: 12px;text-transform: uppercase;line-height: normal;display: block;} 18 | 19 | #style-switcher a.color.pink {background:#dd3e98;} 20 | #style-switcher a.color.berry {background:#e97a6d;} 21 | #style-switcher a.color.green {background:#57c2be;} 22 | #style-switcher a.color.blue {background:#2da9ff;} 23 | #style-switcher a.color.orange {background:#ff7200;} -------------------------------------------------------------------------------- /assets/css/custom.css: -------------------------------------------------------------------------------- 1 | .navigation-bar-header-spacer { 2 | height: 50px; 3 | } 4 | 5 | .navigation-bar-header { 6 | z-index: 9; 7 | } 8 | 9 | .navigation-spacing { 10 | padding-top: 50px; 11 | } 12 | 13 | #hero .hero-content { 14 | top: 50%; 15 | margin-top: 0; 16 | transform: translateY(-50%); 17 | } 18 | 19 | #hero .hero-bottom { 20 | position: absolute; 21 | bottom: 75px; 22 | left: 50%; 23 | transform: translateX(-50%); 24 | } 25 | 26 | .hero-big-em { 27 | color: rgba(0,0,0,0.1); 28 | } 29 | 30 | #loader { 31 | width: 50px; 32 | height: 50px; 33 | top: 50%; 34 | left: 50%; 35 | transform: translate(-50%, -50%); 36 | } 37 | 38 | #schedule .panel .panel-title h4 { 39 | font-size: 27px; 40 | display: block; 41 | padding: 10px 0px 5px 0px; 42 | margin: 0px; 43 | color: #e96958; 44 | } 45 | 46 | .img-speaker { 47 | max-width: 142px; 48 | } 49 | 50 | .sponsor-link { 51 | margin-bottom: 15px; 52 | } 53 | 54 | .sponsor-link-text { 55 | font-weight: 300; 56 | color: white; 57 | font-size: 16px; 58 | 59 | } 60 | 61 | .sponsor-link-text:hover { 62 | color: white; 63 | text-decoration: underline; 64 | } 65 | 66 | .sponsor-levels ul { 67 | padding-left: 0; 68 | margin-bottom: 20px; 69 | } 70 | 71 | .sponsor-levels h6 { 72 | margin-bottom: 5px; 73 | } 74 | 75 | .sponsor-levels .btn-wrapper { 76 | margin-bottom: 20px; 77 | } 78 | 79 | .sponsor-levels li { 80 | margin-bottom: 7px; 81 | font-weight: 300; 82 | } 83 | 84 | .github-block a.btn { 85 | margin: 0 20px 20px 0; 86 | } 87 | 88 | .github-avatars { 89 | padding: 0; 90 | margin: 0 0 20px 0; 91 | list-style-type: none; 92 | } 93 | 94 | .github-avatars p { 95 | margin: 0; 96 | } 97 | 98 | .github-avatars img { 99 | width: 55px; 100 | height: 55px; 101 | border-radius: 50%; 102 | border: 1px rgba(0,0,0,0.1) solid; 103 | } 104 | 105 | .github-avatars li { 106 | display: inline-block; 107 | position: relative; 108 | } 109 | 110 | .github-avatars li:first-of-type { 111 | margin-right: 30px; 112 | } 113 | 114 | .github-avatars li:first-of-type:after { 115 | content: "→"; 116 | position: absolute; 117 | top: 0; 118 | right: -25px; 119 | font-size: 20px; 120 | line-height: 55px; 121 | } 122 | 123 | .github-avatars li:only-of-type:after { 124 | display: none; 125 | } 126 | 127 | .github-avatars-leaderless { 128 | padding: 0; 129 | margin: 0 0 20px 0; 130 | list-style-type: none; 131 | } 132 | 133 | .github-avatars-leaderless p { 134 | margin: 0; 135 | } 136 | 137 | .github-avatars-leaderless img { 138 | width: 55px; 139 | height: 55px; 140 | border-radius: 50%; 141 | border: 1px rgba(0,0,0,0.1) solid; 142 | } 143 | 144 | .github-avatars-leaderless li { 145 | display: inline-block; 146 | position: relative; 147 | } 148 | 149 | .navigation-bar > li.open > ul.dropdown-menu a { color: #e96958; width: 100% } 150 | 151 | #ribbon { 152 | font-size: 12px; 153 | z-index: 100000; 154 | position: absolute; 155 | top: 0; 156 | background-color: #e96958; 157 | color: white; 158 | padding: 3px 10px 5px 10px; 159 | text-align: center; 160 | top: 25px; 161 | left: -70px; 162 | -webkit-transform: rotate(-45deg); 163 | -moz-transform: rotate(-45deg); 164 | -ms-transform: rotate(-45deg); 165 | -o-transform: rotate(-45deg); 166 | transform: rotate(-45deg); 167 | width: 200px; 168 | box-shadow: 0 0 5px 3px rgba(0,0,0,0.15); 169 | border: thin dashed white; 170 | } 171 | 172 | -------------------------------------------------------------------------------- /assets/css/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/css/jquery.fancybox.css: -------------------------------------------------------------------------------- 1 | /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ 2 | .fancybox-wrap, 3 | .fancybox-skin, 4 | .fancybox-outer, 5 | .fancybox-inner, 6 | .fancybox-image, 7 | .fancybox-wrap iframe, 8 | .fancybox-wrap object, 9 | .fancybox-nav, 10 | .fancybox-nav span, 11 | .fancybox-tmp 12 | { 13 | padding: 0; 14 | margin: 0; 15 | border: 0; 16 | outline: none; 17 | vertical-align: top; 18 | } 19 | 20 | .fancybox-wrap { 21 | position: absolute; 22 | top: 0; 23 | left: 0; 24 | z-index: 8020; 25 | } 26 | 27 | .fancybox-skin { 28 | position: relative; 29 | background: #f9f9f9; 30 | color: #444; 31 | text-shadow: none; 32 | -webkit-border-radius: 4px; 33 | -moz-border-radius: 4px; 34 | border-radius: 4px; 35 | } 36 | 37 | .fancybox-opened { 38 | z-index: 8030; 39 | } 40 | 41 | .fancybox-opened .fancybox-skin { 42 | -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 43 | -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 44 | box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 45 | } 46 | 47 | .fancybox-outer, .fancybox-inner { 48 | position: relative; 49 | } 50 | 51 | .fancybox-inner { 52 | overflow: hidden; 53 | } 54 | 55 | .fancybox-type-iframe .fancybox-inner { 56 | -webkit-overflow-scrolling: touch; 57 | } 58 | 59 | .fancybox-error { 60 | color: #444; 61 | font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 62 | margin: 0; 63 | padding: 15px; 64 | white-space: nowrap; 65 | } 66 | 67 | .fancybox-image, .fancybox-iframe { 68 | display: block; 69 | width: 100%; 70 | height: 100%; 71 | } 72 | 73 | .fancybox-image { 74 | max-width: 100%; 75 | max-height: 100%; 76 | } 77 | 78 | #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { 79 | background-image: url('../img/fancybox/fancybox_sprite.png'); 80 | } 81 | 82 | #fancybox-loading { 83 | position: fixed; 84 | top: 50%; 85 | left: 50%; 86 | margin-top: -22px; 87 | margin-left: -22px; 88 | background-position: 0 -108px; 89 | opacity: 0.8; 90 | cursor: pointer; 91 | z-index: 8060; 92 | } 93 | 94 | #fancybox-loading div { 95 | width: 44px; 96 | height: 44px; 97 | background: url('../img/fancybox/fancybox_loading.gif') center center no-repeat; 98 | } 99 | 100 | .fancybox-close { 101 | position: absolute; 102 | top: -18px; 103 | right: -18px; 104 | width: 36px; 105 | height: 36px; 106 | cursor: pointer; 107 | z-index: 8040; 108 | } 109 | 110 | .fancybox-nav { 111 | position: absolute; 112 | top: 0; 113 | width: 40%; 114 | height: 100%; 115 | cursor: pointer; 116 | text-decoration: none; 117 | background: transparent url('../img/fancybox/blank.gif'); /* helps IE */ 118 | -webkit-tap-highlight-color: rgba(0,0,0,0); 119 | z-index: 8040; 120 | } 121 | 122 | .fancybox-prev { 123 | left: 0; 124 | } 125 | 126 | .fancybox-next { 127 | right: 0; 128 | } 129 | 130 | .fancybox-nav span { 131 | position: absolute; 132 | top: 50%; 133 | width: 36px; 134 | height: 34px; 135 | margin-top: -18px; 136 | cursor: pointer; 137 | z-index: 8040; 138 | visibility: hidden; 139 | } 140 | 141 | .fancybox-prev span { 142 | left: 10px; 143 | background-position: 0 -36px; 144 | } 145 | 146 | .fancybox-next span { 147 | right: 10px; 148 | background-position: 0 -72px; 149 | } 150 | 151 | .fancybox-nav:hover span { 152 | visibility: visible; 153 | } 154 | 155 | .fancybox-tmp { 156 | position: absolute; 157 | top: -99999px; 158 | left: -99999px; 159 | visibility: hidden; 160 | max-width: 99999px; 161 | max-height: 99999px; 162 | overflow: visible !important; 163 | } 164 | 165 | /* Overlay helper */ 166 | 167 | .fancybox-lock { 168 | overflow: hidden !important; 169 | width: auto; 170 | } 171 | 172 | .fancybox-lock body { 173 | overflow: hidden !important; 174 | } 175 | 176 | .fancybox-lock-test { 177 | overflow-y: hidden !important; 178 | } 179 | 180 | .fancybox-overlay { 181 | position: absolute; 182 | top: 0; 183 | left: 0; 184 | overflow: hidden; 185 | display: none; 186 | z-index: 8010; 187 | background: url('../img/fancybox/fancybox_overlay.png'); 188 | } 189 | 190 | .fancybox-overlay-fixed { 191 | position: fixed; 192 | bottom: 0; 193 | right: 0; 194 | } 195 | 196 | .fancybox-lock .fancybox-overlay { 197 | overflow: auto; 198 | overflow-y: scroll; 199 | } 200 | 201 | /* Title helper */ 202 | 203 | .fancybox-title { 204 | visibility: hidden; 205 | font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 206 | position: relative; 207 | text-shadow: none; 208 | z-index: 8050; 209 | } 210 | 211 | .fancybox-opened .fancybox-title { 212 | visibility: visible; 213 | } 214 | 215 | .fancybox-title-float-wrap { 216 | position: absolute; 217 | bottom: 0; 218 | right: 50%; 219 | margin-bottom: -35px; 220 | z-index: 8050; 221 | text-align: center; 222 | } 223 | 224 | .fancybox-title-float-wrap .child { 225 | display: inline-block; 226 | margin-right: -100%; 227 | padding: 2px 20px; 228 | background: transparent; /* Fallback for web browsers that doesn't support RGBa */ 229 | background: rgba(0, 0, 0, 0.8); 230 | -webkit-border-radius: 15px; 231 | -moz-border-radius: 15px; 232 | border-radius: 15px; 233 | text-shadow: 0 1px 2px #222; 234 | color: #FFF; 235 | font-weight: bold; 236 | line-height: 24px; 237 | white-space: nowrap; 238 | } 239 | 240 | .fancybox-title-outside-wrap { 241 | position: relative; 242 | margin-top: 10px; 243 | color: #fff; 244 | } 245 | 246 | .fancybox-title-inside-wrap { 247 | padding-top: 10px; 248 | } 249 | 250 | .fancybox-title-over-wrap { 251 | position: absolute; 252 | bottom: 0; 253 | left: 0; 254 | color: #fff; 255 | padding: 10px; 256 | background: #000; 257 | background: rgba(0, 0, 0, .8); 258 | } 259 | 260 | /*Retina graphics!*/ 261 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5), 262 | only screen and (min--moz-device-pixel-ratio: 1.5), 263 | only screen and (min-device-pixel-ratio: 1.5){ 264 | 265 | #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { 266 | background-image: url('../img/fancybox/fancybox_sprite@2x.png'); 267 | background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ 268 | } 269 | 270 | #fancybox-loading div { 271 | background-image: url('../img/fancybox/fancybox_loading@2x.gif'); 272 | background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ 273 | } 274 | } -------------------------------------------------------------------------------- /assets/css/syntax.css: -------------------------------------------------------------------------------- 1 | .highlight { background: #ffffff; } 2 | .highlight .c { color: #999988; font-style: italic } /* Comment */ 3 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 4 | .highlight .k { font-weight: bold } /* Keyword */ 5 | .highlight .o { font-weight: bold } /* Operator */ 6 | .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ 7 | .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ 8 | .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ 9 | .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ 10 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 11 | .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 14 | .highlight .gh { color: #999999 } /* Generic.Heading */ 15 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 16 | .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ 17 | .highlight .go { color: #888888 } /* Generic.Output */ 18 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 19 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 20 | .highlight .gu { color: #aaaaaa } /* Generic.Subheading */ 21 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 22 | .highlight .kc { font-weight: bold } /* Keyword.Constant */ 23 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */ 24 | .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ 25 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ 27 | .highlight .m { color: #009999 } /* Literal.Number */ 28 | .highlight .s { color: #d14 } /* Literal.String */ 29 | .highlight .na { color: #008080 } /* Name.Attribute */ 30 | .highlight .nb { color: #0086B3 } /* Name.Builtin */ 31 | .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #008080 } /* Name.Constant */ 33 | .highlight .ni { color: #800080 } /* Name.Entity */ 34 | .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ 35 | .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ 36 | .highlight .nn { color: #555555 } /* Name.Namespace */ 37 | .highlight .nt { color: #000080 } /* Name.Tag */ 38 | .highlight .nv { color: #008080 } /* Name.Variable */ 39 | .highlight .ow { font-weight: bold } /* Operator.Word */ 40 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 41 | .highlight .mf { color: #009999 } /* Literal.Number.Float */ 42 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */ 43 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */ 44 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */ 45 | .highlight .sb { color: #d14 } /* Literal.String.Backtick */ 46 | .highlight .sc { color: #d14 } /* Literal.String.Char */ 47 | .highlight .sd { color: #d14 } /* Literal.String.Doc */ 48 | .highlight .s2 { color: #d14 } /* Literal.String.Double */ 49 | .highlight .se { color: #d14 } /* Literal.String.Escape */ 50 | .highlight .sh { color: #d14 } /* Literal.String.Heredoc */ 51 | .highlight .si { color: #d14 } /* Literal.String.Interpol */ 52 | .highlight .sx { color: #d14 } /* Literal.String.Other */ 53 | .highlight .sr { color: #009926 } /* Literal.String.Regex */ 54 | .highlight .s1 { color: #d14 } /* Literal.String.Single */ 55 | .highlight .ss { color: #990073 } /* Literal.String.Symbol */ 56 | .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ 57 | .highlight .vc { color: #008080 } /* Name.Variable.Class */ 58 | .highlight .vg { color: #008080 } /* Name.Variable.Global */ 59 | .highlight .vi { color: #008080 } /* Name.Variable.Instance */ 60 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ 61 | -------------------------------------------------------------------------------- /assets/css/toastr.min.css: -------------------------------------------------------------------------------- 1 | .toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:bold;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=")!important}#toast-container>.toast-error{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=")!important}#toast-container>.toast-success{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==")!important}#toast-container>.toast-warning{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=")!important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px)and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px)and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}} -------------------------------------------------------------------------------- /assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /assets/fonts/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/fonts/line-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/line-icons.eot -------------------------------------------------------------------------------- /assets/fonts/line-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/line-icons.ttf -------------------------------------------------------------------------------- /assets/fonts/line-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/fonts/line-icons.woff -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-114-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/ico/apple-touch-icon-114-precomposed.png -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-144-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/ico/apple-touch-icon-144-precomposed.png -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-57-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/ico/apple-touch-icon-57-precomposed.png -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-72-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/ico/apple-touch-icon-72-precomposed.png -------------------------------------------------------------------------------- /assets/ico/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/ico/favicon.ico -------------------------------------------------------------------------------- /assets/ico/web-slack-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/ico/web-slack-icon.png -------------------------------------------------------------------------------- /assets/img/2016photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/2016photo.jpg -------------------------------------------------------------------------------- /assets/img/about-placeholder-iphone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/about-placeholder-iphone.jpg -------------------------------------------------------------------------------- /assets/img/about-placeholder-mbp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/about-placeholder-mbp.jpg -------------------------------------------------------------------------------- /assets/img/about-placeholder-starbucks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/about-placeholder-starbucks.jpg -------------------------------------------------------------------------------- /assets/img/apple-touch-icon-114x114.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/apple-touch-icon-114x114.jpg -------------------------------------------------------------------------------- /assets/img/apple-touch-icon-72x72.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/apple-touch-icon-72x72.jpg -------------------------------------------------------------------------------- /assets/img/apple-touch-icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/apple-touch-icon.jpg -------------------------------------------------------------------------------- /assets/img/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/fancybox/blank.gif -------------------------------------------------------------------------------- /assets/img/fancybox/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/fancybox/fancybox_loading.gif -------------------------------------------------------------------------------- /assets/img/fancybox/fancybox_loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/fancybox/fancybox_loading@2x.gif -------------------------------------------------------------------------------- /assets/img/fancybox/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/fancybox/fancybox_overlay.png -------------------------------------------------------------------------------- /assets/img/fancybox/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/fancybox/fancybox_sprite.png -------------------------------------------------------------------------------- /assets/img/fancybox/fancybox_sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/fancybox/fancybox_sprite@2x.png -------------------------------------------------------------------------------- /assets/img/fancybox/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/favicon.ico -------------------------------------------------------------------------------- /assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/favicon.png -------------------------------------------------------------------------------- /assets/img/gallery/chris_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/chris_thumbnail.jpg -------------------------------------------------------------------------------- /assets/img/gallery/craig_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/craig_thumbnail.jpg -------------------------------------------------------------------------------- /assets/img/gallery/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/gallery/jen_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/jen_thumbnail.jpg -------------------------------------------------------------------------------- /assets/img/gallery/kalimar_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/kalimar_thumbnail.jpg -------------------------------------------------------------------------------- /assets/img/gallery/polly_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/polly_thumbnail.jpg -------------------------------------------------------------------------------- /assets/img/gallery/sean_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/sean_thumbnail.jpg -------------------------------------------------------------------------------- /assets/img/gallery/teresa_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/teresa_thumbnail.jpg -------------------------------------------------------------------------------- /assets/img/gallery/thumb-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/thumb-1.jpg -------------------------------------------------------------------------------- /assets/img/gallery/thumb-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/thumb-2.jpg -------------------------------------------------------------------------------- /assets/img/gallery/thumb-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/thumb-3.jpg -------------------------------------------------------------------------------- /assets/img/gallery/thumb-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/gallery/thumb-4.jpg -------------------------------------------------------------------------------- /assets/img/header-bg-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/header-bg-1.jpg -------------------------------------------------------------------------------- /assets/img/header-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/header-bg.jpg -------------------------------------------------------------------------------- /assets/img/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/image.png -------------------------------------------------------------------------------- /assets/img/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/magnify-cur.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/magnify-cur.cur -------------------------------------------------------------------------------- /assets/img/magnify-cur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/magnify-cur.png -------------------------------------------------------------------------------- /assets/img/pmarker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/pmarker.png -------------------------------------------------------------------------------- /assets/img/preloader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/preloader.gif -------------------------------------------------------------------------------- /assets/img/r4g-map-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/r4g-map-pin.png -------------------------------------------------------------------------------- /assets/img/r4g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/r4g.png -------------------------------------------------------------------------------- /assets/img/red-panda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/red-panda.png -------------------------------------------------------------------------------- /assets/img/register-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/register-bg.jpg -------------------------------------------------------------------------------- /assets/img/renee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/renee.png -------------------------------------------------------------------------------- /assets/img/sound-wave-trans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sound-wave-trans.png -------------------------------------------------------------------------------- /assets/img/sound-wave.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sound-wave.jpg -------------------------------------------------------------------------------- /assets/img/speaker/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/speaker/speaker-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/speaker/speaker-1.jpg -------------------------------------------------------------------------------- /assets/img/speaker/speaker-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/speaker/speaker-2.jpg -------------------------------------------------------------------------------- /assets/img/speaker/speaker-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/speaker/speaker-3.jpg -------------------------------------------------------------------------------- /assets/img/speaker/speaker-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/speaker/speaker-4.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/1password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/1password.png -------------------------------------------------------------------------------- /assets/img/sponsor/booster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/booster.png -------------------------------------------------------------------------------- /assets/img/sponsor/claritylogoretina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/claritylogoretina.png -------------------------------------------------------------------------------- /assets/img/sponsor/customi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/customi.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/customink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/customink.png -------------------------------------------------------------------------------- /assets/img/sponsor/digitalocean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/digitalocean.png -------------------------------------------------------------------------------- /assets/img/sponsor/distil.svg: -------------------------------------------------------------------------------- 1 | logo -------------------------------------------------------------------------------- /assets/img/sponsor/excella.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/excella.png -------------------------------------------------------------------------------- /assets/img/sponsor/excella.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | 16 | 22 | 24 | 31 | 34 | 35 | 36 | 37 | 39 | 44 | 45 | 48 | 50 | 53 | 56 | 57 | 58 | 61 | 62 | -------------------------------------------------------------------------------- /assets/img/sponsor/flatiron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/flatiron.png -------------------------------------------------------------------------------- /assets/img/sponsor/framebridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/framebridge.png -------------------------------------------------------------------------------- /assets/img/sponsor/georgetown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/georgetown.png -------------------------------------------------------------------------------- /assets/img/sponsor/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/github.png -------------------------------------------------------------------------------- /assets/img/sponsor/godaddy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/godaddy.png -------------------------------------------------------------------------------- /assets/img/sponsor/heroku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/heroku.png -------------------------------------------------------------------------------- /assets/img/sponsor/heroku2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/heroku2.png -------------------------------------------------------------------------------- /assets/img/sponsor/honeybadger.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 38 | 39 | 40 | 45 | 46 | 47 | 52 | 53 | 54 | 60 | 61 | 62 | 67 | 68 | 69 | 74 | 75 | 76 | 79 | 80 | 81 | 82 | 83 | 85 | 87 | 88 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /assets/img/sponsor/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/img/sponsor/jibe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/jibe.png -------------------------------------------------------------------------------- /assets/img/sponsor/knightpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/knightpoint.png -------------------------------------------------------------------------------- /assets/img/sponsor/kps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/kps.png -------------------------------------------------------------------------------- /assets/img/sponsor/linode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/linode.png -------------------------------------------------------------------------------- /assets/img/sponsor/mapbox-logo-color.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | Mapbox_Logo_08 9 | 10 | 11 | 15 | 17 | 21 | 25 | 30 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /assets/img/sponsor/mapbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | Mapbox_Logo_08 9 | 10 | 11 | 15 | 17 | 21 | 25 | 30 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /assets/img/sponsor/mason.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/mason.png -------------------------------------------------------------------------------- /assets/img/sponsor/newrelic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/newrelic.png -------------------------------------------------------------------------------- /assets/img/sponsor/optoro-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/optoro-logo.png -------------------------------------------------------------------------------- /assets/img/sponsor/optoro-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | optoro-wm-final-wg 11 | 26 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /assets/img/sponsor/ordway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/ordway.png -------------------------------------------------------------------------------- /assets/img/sponsor/pardot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/pardot.png -------------------------------------------------------------------------------- /assets/img/sponsor/sevatec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sevatec.png -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-0.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-1.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-10.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-2.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-3.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-4.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-5.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-6.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-7.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-8.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/sponsor-logo-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/sponsor-logo-9.jpg -------------------------------------------------------------------------------- /assets/img/sponsor/stickermule.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 14 | 15 | 19 | 21 | 22 | 25 | 26 | 29 | 31 | 58 | 61 | 63 | 64 | 67 | 68 | -------------------------------------------------------------------------------- /assets/img/sponsor/stsi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/stsi.png -------------------------------------------------------------------------------- /assets/img/sponsor/taphere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/taphere.png -------------------------------------------------------------------------------- /assets/img/sponsor/vibes-single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/vibes-single.png -------------------------------------------------------------------------------- /assets/img/sponsor/vibes.svg: -------------------------------------------------------------------------------- 1 | Vibes_logo (1) 2 | -------------------------------------------------------------------------------- /assets/img/sponsor/vibes_blue_rgb.svg: -------------------------------------------------------------------------------- 1 | Asset 1 -------------------------------------------------------------------------------- /assets/img/sponsor/xogroup.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/xogroup.jpeg -------------------------------------------------------------------------------- /assets/img/sponsor/xogroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/xogroup.png -------------------------------------------------------------------------------- /assets/img/sponsor/xogroupold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/sponsor/xogroupold.png -------------------------------------------------------------------------------- /assets/img/stat-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/img/stat-bg.jpg -------------------------------------------------------------------------------- /assets/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/js/color-chooser.js: -------------------------------------------------------------------------------- 1 | 2 | jQuery("#style-switcher a.color").click(function() { 3 | 4 | jQuery("#mainstyle").attr("href",'assets/css/'+jQuery(this).attr('title')+'.css'); 5 | 6 | var color = jQuery(this).data('color'); 7 | var cnt = 0; 8 | 9 | return false; 10 | }); 11 | 12 | jQuery(".style-toggle").click(function(){ 13 | var switcher = jQuery('#style-switcher'); 14 | if (switcher.hasClass('style-active')){ 15 | switcher.animate({marginLeft:'0'}, 300, 'linear'); 16 | } else { 17 | switcher.animate({marginLeft:'225'}, 300, 'linear'); 18 | } 19 | switcher.toggleClass('style-active'); 20 | return false; 21 | }); 22 | 23 | var width = jQuery(window).width(); 24 | if (width < 768){jQuery('#awwwards').css('display', 'none');} 25 | -------------------------------------------------------------------------------- /assets/js/form-validation.js: -------------------------------------------------------------------------------- 1 | // Form validation - register form 2 | toastr.options = {"positionClass": "toast-top-full-width"}; 3 | $('.form-register').validate({ 4 | messages: { 5 | fullname: "Please enter your fullname", 6 | password: { 7 | required: "Please provide a password", 8 | minlength: "Your password must be at least 5 characters long" 9 | }, 10 | confirmPassword: { 11 | required: "Please provide a password", 12 | minlength: "Your password must be at least 5 characters long", 13 | equalTo: "Please enter the same password as above" 14 | }, 15 | email: "Please enter a valid email address" 16 | }, 17 | submitHandler: function(form) { 18 | var $this = $(form); 19 | $.ajax({ 20 | url: $this.attr('action'), 21 | type: 'POST', 22 | data: $this.serialize(), 23 | }) 24 | .done(function(msg) { 25 | if( msg == 'ok' ) { 26 | toastr.success('Thank you for signing up. Our manager will contact you soon!'); 27 | $this[0].reset(); 28 | } else { 29 | toastr.error('An error occured. Please try again later.'); 30 | } 31 | }) 32 | .fail(function() { 33 | toastr.error('An error occured. Please try again later.'); 34 | }); 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /assets/js/html5.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); 8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d 2 | -------------------------------------------------------------------------------- /assets/js/jquery.appear.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery.appear 3 | * https://github.com/bas2k/jquery.appear/ 4 | * http://code.google.com/p/jquery-appear/ 5 | * http://bas2k.ru/ 6 | * 7 | * Copyright (c) 2009 Michael Hixson 8 | * Copyright (c) 2012-2014 Alexander Brovikov 9 | * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) 10 | */ 11 | (function($) { 12 | $.fn.appear = function(fn, options) { 13 | 14 | var settings = $.extend({ 15 | 16 | //arbitrary data to pass to fn 17 | data: undefined, 18 | 19 | //call fn only on the first appear? 20 | one: true, 21 | 22 | // X & Y accuracy 23 | accX: 0, 24 | accY: 0 25 | 26 | }, options); 27 | 28 | return this.each(function() { 29 | 30 | var t = $(this); 31 | 32 | //whether the element is currently visible 33 | t.appeared = false; 34 | 35 | if (!fn) { 36 | 37 | //trigger the custom event 38 | t.trigger('appear', settings.data); 39 | return; 40 | } 41 | 42 | var w = $(window); 43 | 44 | //fires the appear event when appropriate 45 | var check = function() { 46 | 47 | //is the element hidden? 48 | if (!t.is(':visible')) { 49 | 50 | //it became hidden 51 | t.appeared = false; 52 | return; 53 | } 54 | 55 | //is the element inside the visible window? 56 | var a = w.scrollLeft(); 57 | var b = w.scrollTop(); 58 | var o = t.offset(); 59 | var x = o.left; 60 | var y = o.top; 61 | 62 | var ax = settings.accX; 63 | var ay = settings.accY; 64 | var th = t.height(); 65 | var wh = w.height(); 66 | var tw = t.width(); 67 | var ww = w.width(); 68 | 69 | if (y + th + ay >= b && 70 | y <= b + wh + ay && 71 | x + tw + ax >= a && 72 | x <= a + ww + ax) { 73 | 74 | //trigger the custom event 75 | if (!t.appeared) t.trigger('appear', settings.data); 76 | 77 | } else { 78 | 79 | //it scrolled out of view 80 | t.appeared = false; 81 | } 82 | }; 83 | 84 | //create a modified fn with some additional logic 85 | var modifiedFn = function() { 86 | 87 | //mark the element as visible 88 | t.appeared = true; 89 | 90 | //is this supposed to happen only once? 91 | if (settings.one) { 92 | 93 | //remove the check 94 | w.unbind('scroll', check); 95 | var i = $.inArray(check, $.fn.appear.checks); 96 | if (i >= 0) $.fn.appear.checks.splice(i, 1); 97 | } 98 | 99 | //trigger the original fn 100 | fn.apply(this, arguments); 101 | }; 102 | 103 | //bind the modified fn to the element 104 | if (settings.one) t.one('appear', settings.data, modifiedFn); 105 | else t.bind('appear', settings.data, modifiedFn); 106 | 107 | //check whenever the window scrolls 108 | w.scroll(check); 109 | 110 | //check whenever the dom changes 111 | $.fn.appear.checks.push(check); 112 | 113 | //check now 114 | (check)(); 115 | }); 116 | }; 117 | 118 | //keep a queue of appearance checks 119 | $.extend($.fn.appear, { 120 | 121 | checks: [], 122 | timeout: null, 123 | 124 | //process the queue 125 | checkAll: function() { 126 | var length = $.fn.appear.checks.length; 127 | if (length > 0) while (length--) ($.fn.appear.checks[length])(); 128 | }, 129 | 130 | //check the queue asynchronously 131 | run: function() { 132 | if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout); 133 | $.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20); 134 | } 135 | }); 136 | 137 | //run checks when these methods are called 138 | $.each(['append', 'prepend', 'after', 'before', 'attr', 139 | 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 140 | 'remove', 'css', 'show', 'hide'], function(i, n) { 141 | var old = $.fn[n]; 142 | if (old) { 143 | $.fn[n] = function() { 144 | var r = old.apply(this, arguments); 145 | $.fn.appear.run(); 146 | return r; 147 | } 148 | } 149 | }); 150 | 151 | })(jQuery); 152 | -------------------------------------------------------------------------------- /assets/js/jquery.countTo.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | $.fn.countTo = function (options) { 3 | options = options || {}; 4 | 5 | return $(this).each(function () { 6 | // set options for current element 7 | var settings = $.extend({}, $.fn.countTo.defaults, { 8 | from: $(this).data('from'), 9 | to: $(this).data('to'), 10 | speed: $(this).data('speed'), 11 | refreshInterval: $(this).data('refresh-interval'), 12 | decimals: $(this).data('decimals') 13 | }, options); 14 | 15 | // how many times to update the value, and how much to increment the value on each update 16 | var loops = Math.ceil(settings.speed / settings.refreshInterval), 17 | increment = (settings.to - settings.from) / loops; 18 | 19 | // references & variables that will change with each update 20 | var self = this, 21 | $self = $(this), 22 | loopCount = 0, 23 | value = settings.from, 24 | data = $self.data('countTo') || {}; 25 | 26 | $self.data('countTo', data); 27 | 28 | // if an existing interval can be found, clear it first 29 | if (data.interval) { 30 | clearInterval(data.interval); 31 | } 32 | data.interval = setInterval(updateTimer, settings.refreshInterval); 33 | 34 | // initialize the element with the starting value 35 | render(value); 36 | 37 | function updateTimer() { 38 | value += increment; 39 | loopCount++; 40 | 41 | render(value); 42 | 43 | if (typeof(settings.onUpdate) == 'function') { 44 | settings.onUpdate.call(self, value); 45 | } 46 | 47 | if (loopCount >= loops) { 48 | // remove the interval 49 | $self.removeData('countTo'); 50 | clearInterval(data.interval); 51 | value = settings.to; 52 | 53 | if (typeof(settings.onComplete) == 'function') { 54 | settings.onComplete.call(self, value); 55 | } 56 | } 57 | } 58 | 59 | function render(value) { 60 | var formattedValue = settings.formatter.call(self, value, settings); 61 | $self.text(formattedValue); 62 | } 63 | }); 64 | }; 65 | 66 | $.fn.countTo.defaults = { 67 | from: 0, // the number the element should start at 68 | to: 0, // the number the element should end at 69 | speed: 1000, // how long it should take to count between the target numbers 70 | refreshInterval: 100, // how often the element should be updated 71 | decimals: 0, // the number of decimal places to show 72 | formatter: formatter, // handler for formatting the value before rendering 73 | onUpdate: null, // callback method for every time the element is updated 74 | onComplete: null // callback method for when the element finishes updating 75 | }; 76 | 77 | function formatter(value, settings) { 78 | return value.toFixed(settings.decimals); 79 | } 80 | }(jQuery)); -------------------------------------------------------------------------------- /assets/js/respond.min.js: -------------------------------------------------------------------------------- 1 | /*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl 2 | * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT 3 | * */ 4 | 5 | !function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b 500) { 35 | app.el["back-to-top"].fadeIn(); 36 | } else { 37 | app.el["back-to-top"].fadeOut(); 38 | } 39 | }); 40 | 41 | // scroll body to 0px on click 42 | app.el["back-to-top"].click(function() { 43 | app.el["html-body"].animate( 44 | { 45 | scrollTop: 0 46 | }, 47 | 1500 48 | ); 49 | return false; 50 | }); 51 | 52 | $("#mobileheader").html($("#header").html()); 53 | 54 | // fix toggling dropdown inside dropdown 55 | // when click on dropdown link inside mobile menu, bootstrap will toggle both, submenu and parent menu 56 | // this fix will toggle only submenu 57 | $('#mobileheader li.dropdown [data-toggle="dropdown"]').on( 58 | "click", 59 | function(e) { 60 | e.stopPropagation(); 61 | e.preventDefault(); 62 | $(this) 63 | .closest("li") 64 | .toggleClass("open"); 65 | } 66 | ); 67 | 68 | function heroInit() { 69 | var hero = jQuery("#hero"), 70 | winHeight = jQuery(window).height(), 71 | heroHeight = winHeight; 72 | 73 | hero.css({ height: heroHeight + "px" }); 74 | } 75 | 76 | jQuery(window).on("resize", heroInit); 77 | jQuery(document).on("ready", heroInit); 78 | 79 | $(".animated").appear( 80 | function() { 81 | var element = $(this); 82 | var animation = element.data("animation"); 83 | var animationDelay = element.data("delay"); 84 | if (animationDelay) { 85 | setTimeout(function() { 86 | element.addClass(animation + " visible"); 87 | element.removeClass("hiding"); 88 | if (element.hasClass("counter")) { 89 | element.find(".value").countTo(); 90 | } 91 | }, animationDelay); 92 | } else { 93 | element.addClass(animation + " visible"); 94 | element.removeClass("hiding"); 95 | if (element.hasClass("counter")) { 96 | element.find(".value").countTo(); 97 | } 98 | } 99 | }, 100 | { accY: -150 } 101 | ); 102 | 103 | $("#header").waypoint("sticky", { 104 | wrapper: '
', 105 | stuckClass: "sticky" 106 | }); 107 | 108 | $(".fancybox").fancybox(); 109 | }); 110 | 111 | mapboxgl.accessToken = 112 | "pk.eyJ1Ijoia2FsaW1hciIsImEiOiJjamZwZjI3eG4xMWcwMnFwZXlmeWlpZjYxIn0.x4tB7Pictd1bEOFDtBUolQ"; 113 | 114 | var map = new mapboxgl.Map({ 115 | container: "canvas-map", 116 | style: "mapbox://styles/kalimar/cjfjpo6ioa9vg2slg1pjbxt78", 117 | center: [-77.307345, 38.831382], 118 | zoom: 16 119 | }); 120 | 121 | let navControl = new mapboxgl.NavigationControl(); 122 | map.addControl(navControl, "top-right"); 123 | 124 | map.on("load", function() { 125 | map.loadImage("assets/img/r4g-map-pin.png", function(error, image) { 126 | if (error) throw error; 127 | map.addImage("rfg-pin", image); 128 | map.addLayer({ 129 | id: "poi", 130 | type: "symbol", 131 | source: { 132 | type: "geojson", 133 | data: { 134 | type: "FeatureCollection", 135 | features: [ 136 | { 137 | type: "Feature", 138 | geometry: { 139 | type: "Point", 140 | coordinates: [-77.072, 38.90782] 141 | } 142 | } 143 | ] 144 | } 145 | }, 146 | layout: { 147 | "icon-image": "rfg-pin", 148 | "icon-size": { 149 | stops: [[6, 0.05], [22, 0.5]] 150 | }, 151 | "icon-offset": [15, 15] 152 | } 153 | }); 154 | }); 155 | }); 156 | })(); 157 | -------------------------------------------------------------------------------- /assets/js/spin.min.js: -------------------------------------------------------------------------------- 1 | // http://spin.js.org/#v2.3.2 2 | !function(a,b){"object"==typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return m[e]||(k.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",k.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;if(b=b.charAt(0).toUpperCase()+b.slice(1),void 0!==e[b])return b;for(d=0;d',c)}k.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.scale*d.width,left:d.scale*d.radius,top:-d.scale*d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.scale*(d.length+d.width),k=2*d.scale*j,l=-(d.width+d.length)*d.scale*2+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k×<\/button>",newestOnTop:!0}}function h(n){e&&e(n)}function u(r){function l(t){if(!n(":focus",e).length||t)return e[u.hideMethod]({duration:u.hideDuration,easing:u.hideEasing,complete:function(){c(e);u.onHidden&&u.onHidden();s.state="hidden";s.endTime=new Date;h(s)}})}function b(){(u.timeOut>0||u.extendedTimeOut>0)&&(y=setTimeout(l,u.extendedTimeOut))}function k(){clearTimeout(y);e.stop(!0,!0)[u.showMethod]({duration:u.showDuration,easing:u.showEasing})}var u=i(),v=r.iconClass||u.iconClass;typeof r.optionsOverride!="undefined"&&(u=n.extend(u,r.optionsOverride),v=r.optionsOverride.iconClass||v);o++;t=f(u);var y=null,e=n("
"),p=n("
"),w=n("
"),a=n(u.closeHtml),s={toastId:o,state:"visible",startTime:new Date,options:u,map:r};return r.iconClass&&e.addClass(u.toastClass).addClass(v),r.title&&(p.append(r.title).addClass(u.titleClass),e.append(p)),r.message&&(w.append(r.message).addClass(u.messageClass),e.append(w)),u.closeButton&&(a.addClass("toast-close-button"),e.prepend(a)),e.hide(),u.newestOnTop?t.prepend(e):t.append(e),e[u.showMethod]({duration:u.showDuration,easing:u.showEasing,complete:u.onShown}),u.timeOut>0&&(y=setTimeout(l,u.timeOut)),e.hover(k,b),!u.onclick&&u.tapToDismiss&&e.click(l),u.closeButton&&a&&a.click(function(n){n.stopPropogation();l(!0)}),u.onclick&&e.click(function(){u.onclick();l()}),h(s),u.debug&&console&&console.log(s),e}function f(r){return(r||(r=i()),t=n("#"+r.containerId),t.length)?t:(t=n("
").attr("id",r.containerId).addClass(r.positionClass),t.appendTo(n(r.target)),t)}function i(){return n.extend({},b(),s.options)}function c(n){(t||(t=f()),n.is(":visible"))||(n.remove(),n=null,t.children().length===0&&t.remove())}var t,e,o=0,r={error:"error",info:"info",success:"success",warning:"warning"},s={clear:w,error:l,getContainer:f,info:a,options:{},subscribe:v,success:y,version:"2.0.0",warning:p};return s}()})})(typeof define=="function"&&define.amd?define:function(n,t){typeof module!="undefined"&&module.exports?module.exports=t(require(n[0])):window.toastr=t(window.jQuery)}); 2 | //@ sourceMappingURL=toastr.min.js.map -------------------------------------------------------------------------------- /assets/js/waypoints-sticky.min.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.6.2 2 | /* 3 | Sticky Elements Shortcut for jQuery Waypoints - v2.0.4 4 | Copyright (c) 2011-2014 Caleb Troughton 5 | Dual licensed under the MIT license and GPL license. 6 | https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt 7 | */ 8 | (function(){(function(t,n){if(typeof define==="function"&&define.amd){return define(["jquery","waypoints"],n)}else{return n(t.jQuery)}})(this,function(t){var n,s;n={wrapper:'
',stuckClass:"stuck"};s=function(t,n){t.wrap(n.wrapper);return t.parent()};t.waypoints("extendFn","sticky",function(e){var i,r,a;r=t.extend({},t.fn.waypoint.defaults,n,e);i=s(this,r);a=r.handler;r.handler=function(n){var s,e;s=t(this).children(":first");e=n==="down"||n==="right";s.toggleClass(r.stuckClass,e);i.height(e?s.outerHeight():"");if(a!=null){return a.call(this,n)}};i.waypoint(r);return this.data("stuckClass",r.stuckClass)});return t.waypoints("extendFn","unsticky",function(){this.parent().waypoint("destroy");this.unwrap();return this.removeClass(this.data("stuckClass"))})})}).call(this); -------------------------------------------------------------------------------- /assets/js/waypoints.min.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.6.2 2 | /* 3 | jQuery Waypoints - v2.0.4 4 | Copyright (c) 2011-2014 Caleb Troughton 5 | Dual licensed under the MIT license and GPL license. 6 | https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt 7 | */ 8 | (function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e=0;s={horizontal:{},vertical:{}};f=1;c={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};this.element[u]=this.id;c[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||a)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(a&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete c[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=this.element[w])!=null?o:[];i.push(this.id);this.element[w]=i}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=t[w];if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=c[i[0][u]];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke.call(this,"disable")},enable:function(){return d._invoke.call(this,"enable")},destroy:function(){return d._invoke.call(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=c[n(t)[0][u]];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this); -------------------------------------------------------------------------------- /assets/mailchimp/css/default.css: -------------------------------------------------------------------------------- 1 | /* MAILCHIMP STYLES */ 2 | 3 | .error_message, .notice_message, .success_message { display: block;height: 22px;line-height: 14px; font-size: 11pt; padding: 3px 10px 3px 0px; margin-top:5px;} 4 | 5 | .error_message {/*background: url('error.gif') no-repeat 10px center;*/ background: 0 !important; color: #fe1515; text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5);} 6 | .error_message {color: #fff; } 7 | .success_message {color: #12BE0B; } 8 | -------------------------------------------------------------------------------- /assets/mailchimp/css/error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/assets/mailchimp/css/error.gif -------------------------------------------------------------------------------- /assets/mailchimp/inc/store-address.php: -------------------------------------------------------------------------------- 1 | listSubscribe($list_id, $_GET['email'], '') === true) { // It worked! return 'Success! Check your email to confirm sign up.'; }else{ // An error ocurred, return error message return 'Error: ' . $api->errorMessage; } } // If being called via ajax, autorun the function if($_GET['ajax']){ echo storeAddress(); } ?> 3 | -------------------------------------------------------------------------------- /assets/mailchimp/js/mailing-list.js: -------------------------------------------------------------------------------- 1 | /*/////////////////////////////////////////////////////////////////////// Ported to jquery from prototype by Joel Lisenby (joel.lisenby@gmail.com) http://joellisenby.com original prototype code by Aarron Walter (aarron@buildingfindablewebsites.com) http://buildingfindablewebsites.com Distrbuted under Creative Commons license http://creativecommons.org/licenses/by-sa/3.0/us/ ///////////////////////////////////////////////////////////////////////*/ jQuery(document).ready(function() { jQuery('#subscribe').submit(function() { // update user interface jQuery('#response').html('Adding email address...'); // Prepare query string and send AJAX request jQuery.ajax({ url: 'assets/mailchimp/inc/store-address.php', data: 'ajax=true&email=' + escape(jQuery('#NewsletterEmail').val()), success: function(msg) { if (msg.indexOf("Success") !=-1) { jQuery('#response').html('Success! You are now subscribed to our newsletter!'); } else { jQuery('#response').html('' + msg + ''); } } }); return false; }); }); -------------------------------------------------------------------------------- /attend.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | ### Attending Ruby for Good 5 | 6 | Ruby for Good is an annual event based out of the DC-metro area where Ruby programmers from all over the globe get together to build projects that help our communities. In 2020 the event will be moving online and be spread over two weekends. Join us this year just for the fun of giving back! 7 | 8 | ###### How Does Ruby for Good Work? 9 | 10 | The organizers of Ruby for Good work year round contacting and working with non-profits to find projects that are both within the scope of Ruby for Good and helpful to non-profit organizations and individuals. 11 | 12 | This is an event for people of *all* skill levels so even if you are new, don't let that prevent you from contributing! Attendees self-select into projects that are meaningful to them and the fun begins! Most projects have a need for a variety of skills including both developers, designers, and product and project managers. You don't HAVE to be a Ruby programmer but it does help. We're more than happy to welcome programmers of other languages, especially if you're interested in learning some Ruby. :) 13 | 14 | ###### That Sounds Awesome, Tell Me More! 15 | 16 | [Here is the schedule for 2020.](/2020.html) 17 | 18 | 19 | ###### Attendees of previous Ruby for Good events have shared their experiences, read more here: 20 | 21 | * [CustomInk Staff Attends Ruby for Good Event in 2016](http://technology.customink.com/blog/2016/06/23/ruby-for-good-2016/) 22 | * [How to Inspire Community in Programming](https://blog.codeship.com/how-to-inspire-community-in-programming/) 23 | * [A Curious Loop Attendee Discusses the 2016 RfG Event](https://acuriousloop.wordpress.com/2016/06/21/ruby-for-good/) 24 | 25 | * [Ruby for Good Team Accomplishment Slideshow in 2014](http://slides.com/jasonwieringa/rubyforgood#/) 26 | 27 | * [Leading a Team at Ruby for Good](http://www.blrice.net/blog/2015/08/10/leading-a-team-at-ruby-for-good/) 28 | * [Attending a Ruby for Good event in 2015](http://technology.customink.com/blog/2015/08/05/ruby-for-good/) 29 | 30 | * [Lessons Learned at Ruby for Good Event](http://www.blrice.net/blog/2014/08/09/lessons-learned-at-ruby-for-good/) 31 | 32 | ###### Interested in Leading a Team? 33 | 34 | During registration we'll ask if you'd like to lead a team - say yes! We'll be in touch with potential projects. We'll brief you on expectations and put you in touch with your non-profit so you can work with them in advance of the event to set up project requirements, milestones and initial set up so you can hit the ground running with your team at Ruby for Good. Setup includes creating a github repo under the Ruby for Good github, filing issues and making some technology suggestions. If you want to know what it will be like to lead a team this year, [read our team lead guide](/team-leads.html). For an in-depth look at what it's like to lead a team, check out Brandon Rice's [blog](http://www.blrice.net/blog/2015/08/10/leading-a-team-at-ruby-for-good/). If you're not sure and want to talk about it with an organizer? Drop us a [note](mailto:{{ site.data.constants.contact_email }}). 35 | 36 | Also — if you have a project in mind that you’d like to lead, [suggest a project]({{site.data.constants.suggest_project}}) to work on! 37 | 38 | ###### Registering 39 | 40 | Public registration for our 2020 Fall Event is now closed! 41 | 42 | 47 | 48 | Please read our [Code of Conduct](/coc.html) prior to attending. 49 | -------------------------------------------------------------------------------- /coc.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | # Code of conduct 6 | 7 | Like the technical community as a whole, the Ruby for Good team and community is made up of a mixture of professionals and volunteers from all over the world, working on every aspect of the mission - including mentorship, teaching, and connecting people. 8 | 9 | Diversity is one of our huge strengths, but it can also lead to communication issues and unhappiness. To that end, we have a few ground rules that we ask people to adhere to when they're participating within this community and project. These rules apply equally to founders, mentors and those seeking help and guidance. 10 | 11 | This isn't an exhaustive list of things that you can't do. Rather, take it in the spirit in which it's intended - a guide to make it easier to enrich all of us and the technical communities in which we participate. 12 | 13 | This code of conduct applies to all spaces managed by the Ruby for Good team or at George Mason University. This includes IRC, Slack, the mailing lists, the issue tracker, Ruby for Good events, and any other forums created by the project team which the community uses for communication. 14 | 15 | Be welcoming, friendly, and patient. Be considerate. Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language. 16 | 17 | Be respectful. Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. Members of the Ruby for Good community should be respectful when dealing with other members as well as with people outside the Ruby for Good community. 18 | 19 | Be careful in the words that you choose. We are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. This includes, but is not limited to: 20 | 21 | - Violent threats or language directed against another person. 22 | - Sexist, racist, or otherwise discriminatory jokes and language. 23 | - Posting sexually explicit or violent material. 24 | - Posting (or threatening to post) other people's personally identifying information ("doxing"). 25 | - Personal insults, especially those using racist or sexist terms. 26 | - Unwelcome sexual attention. 27 | - Advocating for, or encouraging, any of the above behavior. 28 | - Repeated harassment of others. In general, if someone asks you to stop, then stop. 29 | - If you believe someone is violating the code of conduct, we ask that you report it by reaching out to an organizer. You may also report by emailing [Polly Schandorf](mailto:polly@rubyforgood.org), [Sean Marcia](mailto:sean@rubyforgood.org), [Gia Coelho](mailto:gia@rubyforgood.org) or [Craig Zaccaro](mailto:craig@rubyforgood.org). Any email received will be kept confidential. 30 | 31 | When we disagree, try to understand why. Disagreements, both social and technical, happen all the time and Ruby is no exception. It is important that we resolve disagreements and differing views constructively. Remember that we're different. The strength of Ruby comes from its varied community, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn't mean that they're wrong. Don't forget that it is human to err and blaming each other doesn't get us anywhere, rather offer to help resolving issues and to help learn from mistakes. 32 | 33 | If a participant engages in harassing behavior, the organizers may take any action they deem appropriate, including warning the offender or expulsion from the event with no refund. The organizers and volunteers will be introduced at the beginning of the event. 34 | 35 | Ruby for Good organizers will be happy to help participants contact GMU police or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the event. We value you and your attendance. 36 | 37 | We're people trying to make the world better. 38 | 39 | _For our Code of Conduct we have based ours on the excellent one made by the Django Project._ 40 | -------------------------------------------------------------------------------- /help.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Support Ruby for Good 3 | redirect_to: 4 | - https://www.customink.com/fundraising/rfg-2018 5 | --- 6 | -------------------------------------------------------------------------------- /helpwanted.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: Help Wanted 3 | layout: page 4 | extra_js: 5 | - https://rawgit.com/rubyforgood/meta/master/projects.js 6 | --- 7 | 8 |
9 |
10 |
11 |

Help Wanted

12 |
13 |

These issues have been marked by projects on GitHub as ones where help is particularly appreciated. You may be the right person for the job!

14 |
15 |
16 |
17 |
18 | 19 |
20 |
21 |
22 | 23 |
24 |
25 |
26 |
27 |
28 |

29 |
30 | 31 |

32 |

33 | 34 | 35 | View on Github 36 | 37 |

38 |

Comments:

39 |
40 |
41 |
42 |
43 |
44 | 45 | 70 | -------------------------------------------------------------------------------- /images/captain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/captain.png -------------------------------------------------------------------------------- /images/cfa_brigade_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/cfa_brigade_logo.png -------------------------------------------------------------------------------- /images/cfa_logo_greyscale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/cfa_logo_greyscale.png -------------------------------------------------------------------------------- /images/code_across_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/code_across_banner.png -------------------------------------------------------------------------------- /images/community.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/community.png -------------------------------------------------------------------------------- /images/google_groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/google_groups.png -------------------------------------------------------------------------------- /images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/image.png -------------------------------------------------------------------------------- /images/meetup.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/meetup.jpg -------------------------------------------------------------------------------- /images/noun_project_756_citizen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/noun_project_756_citizen.png -------------------------------------------------------------------------------- /images/original/captain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/captain.png -------------------------------------------------------------------------------- /images/original/cfa_brigade_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/cfa_brigade_logo.png -------------------------------------------------------------------------------- /images/original/cfa_logo_greyscale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/cfa_logo_greyscale.png -------------------------------------------------------------------------------- /images/original/code_across_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/code_across_banner.png -------------------------------------------------------------------------------- /images/original/community.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/community.png -------------------------------------------------------------------------------- /images/original/google_groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/google_groups.png -------------------------------------------------------------------------------- /images/original/meetup.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/meetup.jpg -------------------------------------------------------------------------------- /images/original/noun_project_756_citizen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/noun_project_756_citizen.png -------------------------------------------------------------------------------- /images/original/sunrise-top.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/original/sunrise-top.jpg -------------------------------------------------------------------------------- /images/smithsonian_parking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/smithsonian_parking.jpg -------------------------------------------------------------------------------- /images/sunrise-top.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/sunrise-top.jpg -------------------------------------------------------------------------------- /images/tidalbasin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyforgood/rubyforgood.org--old/0ab3122c7219d2ec56ad7ebf6bd70f82330c0bd1/images/tidalbasin.jpg -------------------------------------------------------------------------------- /partner.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 7 |
8 | ### Partner With Us 9 | [Suggest a project we can build for your organization.](https://airtable.com/shrC6VjWgka26a6eh) 10 | 11 | We build software solutions to help your organization achieve its mission! We bring technologists together to build projects toward effecting large-scale social impact. Inefficient and expensive software solutions are an impediment to efficiency. We want to help develop software solutions, so you can focus on your mission.  12 |
13 | 14 |   15 | 16 |
17 |
18 |

19 |
Projects We Build
20 |
21 | We excel at figuring out what your biggest pain points are and what kind of tedious repetitive tasks you do. Then we set about automating those tasks so your time can better be spent elsewhere. Our expertise is primarily with building web applications. This means that the kind of projects that we excel at are those that require the recording and sharing of information, collaboration, web-based databases and coordination tools. 22 | 23 | These can seem a little vague, especially to non-technically oriented people, but if you are having difficulty sharing, storing or accessing data for your organization, we might be able to help. 24 | We can and have built other kinds of software and this is only to give you an idea. We'll definitely find a way to help! 25 |
26 | 27 |
28 |
29 |

30 |
Problems We Solve
31 |
32 | 1. Are you recording data with pen/paper and later transferring that data to a computer? 33 | 2. Do you pass word/excel/text files around with collaborators to share information? 34 | 3. Are you using software for a project now that wasn't built for the kind of work you are doing (“making it work” even though it’s super painful)? 35 | 4. Do you take data entered somewhere, manually manipulate it and send it on elsewhere? 36 | 5. Do you have databases that require different access levels? For example, a volunteer can record and enter data, a principal researcher can then lock it and prevent further volunteer edits and only allow researchers to edit to protect data integrity, reviewers can see but not edit data, and so on. 37 | 6. Do you use desktop programs to record information so you are locked into doing it from a certain location but it would be more convenient to have it web based so you can see/edit from anywhere? 38 |
39 | 40 |
41 |
42 |
43 |

44 |
Cost
45 |
46 | The project development is free! We do this to help the people who are making the world a better place. For the past three years we have also been very fortunate to have received sponsorships from hosting companies to host the projects. 47 | 48 | However, there is no guarantee these sponsorships will continue. You may need to find hosting for the project once it is built. We will work with you to find the most affordable solution for your project or to integrate it with your current hosting. 49 |
50 | 51 |
52 |
53 |
54 |

55 |
Your Involvement
56 |
57 | In order to build you the best software possible we need your participation so we can understand your needs. We require you to commit to at least two meetings with the person leading your team in the lead up to the event. 58 | 59 | You will also need to be available at least once during the event, ideally each day. Your team will coordinate the times. This is necessary because the team building your software will inevitably run into design decisions that will require your input in order to resolve and keep the project moving forward. 60 |
61 | 62 |
63 |
64 |
65 |

66 |
Testimonial
67 |
68 | Listen to what one of our amazing partner organizations from 2017 had to say: 69 | 70 |
71 | In addition to the PDX Diaper Bank, we have ongoing projects that we contribute to throughout the rest of the year. 72 | 73 | [View a list of other active, ongoing projects.](/projects.html) 74 |
75 | 76 |
77 |
78 |
79 |

80 |
Schedule
81 |
82 | About 5-6 weeks before the event we'll find someone suitable to lead a team to build your software and put them in touch with you. 83 | 84 | They will meet and drill down with you and what you really need. They will confirm requirements with you and then present them to the team that will be working on your software at our event. 85 | 86 | They will meet virtually (Skype, Google Hangouts, etc.) with you during the event to introduce the team and to clarify any questions. 87 | Within one month of the event's completion we will deliver the software to you. 88 |
89 | 90 |
91 |
92 |
93 |

94 |
Submit Your Project Idea
95 |
96 | After you submit your project, we'll follow up with a conversation. We'll get in touch and determine how we can best help you. It may turn out that your best solution is to use something already out there and we'll help you with that. 97 | 98 |
99 | Submit Your Project 100 |
101 |
102 | Or [email us](mailto:{{ site.data.constants.contact_email }}) with questions. 103 |
104 | -------------------------------------------------------------------------------- /projects.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Projects 4 | extra_css: 5 | - syntax.css 6 | extra_js: 7 | - assets/js/moment.min.js 8 | - assets/js/jquery.mixitup.min.js 9 | - assets/js/spin.min.js 10 | - https://rawgit.com/rubyforgood/meta/master/projects.js 11 | --- 12 | 13 |
14 |
15 |
16 |

Our Projects

17 |

Projects in 2018 will be focused on issues facing our communities.

18 |

To find issues that are keyboard-ready, check out our Help Wanted page.

19 |
20 |
21 |
22 |
23 |
Filter by:
24 |
25 | 28 | 29 |
30 | 31 |
32 |
33 | 36 | 45 |
46 |
47 |
48 |
49 |
50 |
51 | 52 |
53 |
54 |
55 | 56 |
57 |
58 |
59 |
60 |

61 | 62 |
63 |
64 |
65 |
66 |

github repository

67 |

68 |
69 |

Born

70 |

Lines of Code

71 |
72 |
73 |
74 |
Get Involved
75 |

76 |

77 | 78 | rubyforgood/ 79 |

80 | 84 | 88 |
89 | CI Reports 90 |
91 |
92 |
93 |

Language(s)

94 |
95 | 96 |

97 | 98 |

99 |
100 |
101 |
102 |
103 |
104 | 105 | 314 | -------------------------------------------------------------------------------- /sponsors.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | ### Sponsors 6 | 7 | The Ruby for Good coding event is a one of a kind event for developers, designers, product managers, and people of diverse skill sets and levels. It is exclusively volunteer driven and your support would be incredibly meaningful, enabling us to continue providing technology solutions to nonprofit organizations in need, that are serving vital missions in their local communities.  8 | 9 | ###### Why Sponsor? 10 | 11 | By the very nature of our conference, our attendees are some of the most passionate, connected, and involved in the Ruby community. For companies looking to hire this is an excellent opportunity to meet and interact professionally and socially with prospective candidates. By sponsoring you are showing your commitment to your community, open source, and the Ruby community. Plus, we are a 501(c)3 non-profit! 12 | 13 | 84 | 85 | 121 | -------------------------------------------------------------------------------- /submit-project.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | 6 | -------------------------------------------------------------------------------- /team-leads.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | --- 4 | 5 | ### Team Lead Guide 6 | So, you’re considering leading a team for Ruby for Good 2020. You’re probably wondering what that entails! We’ve assembled some info on 1) what you can expect, 2) what we’ll expect from you, and 3) how to actually go about signing up. 7 | 8 | Summary: Being a Ruby for Good Team Lead means making a 10-week commitment to lead and deliver an open source project: 6 weeks prepping before the event, and 4 weeks of follow up after the event. 9 | 10 | #### What Does It Mean To Lead A Team? 11 | 12 | As a team lead you will be connecting with a nonprofit partner organization doing critical work in the community, to deliver a software solution in support of their mission. This entails everything from meeting with the stakeholders, gathering requirements, translating those requirements, providing initial architecting, planning out project milestones, communicating with Ruby for Good organizers, pitching your project to Ruby for Good attendees, leading your team at the event and then seeing the project through to completion. 13 | 14 | We will be updating this page soon for 2020's online Ruby for Good event. In the meantime, here is the team lead schedule from last year. 15 | 16 | #### What we expect from team leads: 17 | 18 | ###### 2019 19 | 20 | ###### Week 1 (June 17-23) 21 | * Attend an all-hands google hangout for 2019 team leads 22 | * After your organizer writes an introduction email, reach out to stakeholder via email to introduce yourself 23 | * Research your organization and familiarize yourself with their business problems. Begin to understand the organization and their needs. 24 | 25 | ###### Week 2 (June 24-30) 26 | * Connect face-to-face with stakeholder—skype or google hangout is okay; meeting in person when possible is even better! Meet ‘n greet, have a conversation about the technical capability of the organization, the project they had in mind, specific project requirements, nice-to-haves, both yours and the organization’s expectations, etc. 27 | * Connect with your organizer to provide update on project status 28 | 29 | ###### Week 3 (July 1-7) 30 | * Communicate with your stakeholder to drill down on project requirements, as necessary. If not needed, reach out to them anyway and let them know you’re continuing to think about their project. 31 | * Connect with your organizer to provide update on project status 32 | 33 | ###### Week 4 (July 8-14) 34 | * Connect face-to-face with stakeholder for SECOND time, tell them where you are in solving their business problem. 35 | * Brainstorm newbie tasks for your project. 36 | * Connect with your organizer to provide update on project status. 37 | 38 | ###### Week 5 (July 15-21) 39 | * Create a readme in the rubyforgood github repo we have created for your project. This readme should give information about the organization and what we will be building for them. A good example readme can be seen [here](https://github.com/rubyforgood/habitat_humanity/). 40 | * Attend all-hands google hangout for 2019 team leads – a final check in to get your questions answered before the official event happens in one week. 41 | * Connect with your organizer to provide update on project status, as necessary. 42 | 43 | ###### Week 6 (July 22-28) 44 | * Attend a team lead and stakeholder bbq on July 24th. 45 | * Ruby for Good 2019 – July 25-28 46 | * Pitch your project to Ruby for Good attendees on opening night (5pm sharp): provide a brief intro to the organization, to the project, ask for specific technical skills if needed, communicate your team’s goals if you feel strongly about it (examples: deploy by end of event, emphasize team learning, master new gems, mandate pairing for all coding, explore new front end technologies, etc.) 47 | * Set team goals with your team. See above for inspiration. 48 | * Lead the team during the event. 49 | 50 | ###### Week 7 (July 29-Aug 4) 51 | * Make plan to deploy with organizer. 52 | * Note that about 20% of our projects finish during the event—and we’re happy about that. We don’t want you or your team burning yourselves out. Ruby for Good is as much about building community as it is about doing good. If you work late into the evenings, you miss out on playing board games and werewolf and we want to see your face during these social times! 53 | 54 | ###### Week 8-10 (Aug 5-25) 55 | * Connect with your organizer to update them on status. 56 | * Deploy; project will be finished and delivered. 57 | * Receive feedback on your mad team leading skillz. 58 | 59 | ##### What team leads can expect from us? 60 | * We will ensure that the partner organization will work with you and be available for questions at the event. 61 | * We will make introductions between you and the partner organization. 62 | * It sucks to be at a roadblock so the organizer overseeing your project will provide multiple methods of contact and will commit to responding to any request within a day. 63 | * During the event we will be available to help in any way you many need it. 64 | * After your project is delivered we will collect and give you meaningful feedback from the organization, your team and the organizers. We all want to grow and improve and we’ll provide actionable feedback to help you. 65 | * We will take over maintenance of the application after it has been delivered. You are completely welcome to stick with it and continue managing the project if you'd like. 66 | 67 | ##### What skills do you need to lead a team? 68 | * Organization. Do you like making to-do lists and keeping track of what has been finished? Perfect! There are a lot of details and moving parts and it pays to be organized. 69 | * Decision making. Developers have lots and lots of opinions and we love to debate. I think we’ve all seen the rabbit hole we can fall down when people start discussing things like vim vs emacs, angular v react and so on. The team lead needs to be able to make decisions and keep the project moving forward. 70 | * Communication. You will need to translate what the org needs to your team. This also means that when your team is deciding how to build the app you can effectively communicate the stakeholders needs if you need to reign in your team and prevent over-engineering what otherwise would be a simple solution. 71 | * Empathy. We all participate because we are interested in making the world a better place. If we start with that belief we realize that some problems come because people care too much. 72 | 73 | **You may have noticed that we didn't list technical skills. The truth is that generally if you've been doing development for a year you likely have the ability needed to lead a team. We'd love for you to get in touch about a project. Don't worry if you think you're missing some of the required skills. We're about learning and are happy to help and work with you to figure out a way to make it happen. Maybe that means a co-lead or appointing a technical decision maker on your team. If you want to lead a team, we're committed to figuring out a strategy to make it work!** 74 | 75 | **You should definitely reach out to past team leads and ask their experience. It is a lot of fun, great for the resume and extremely rewarding. [A past team lead wrote this excellent write-up of the experience.](http://www.blrice.net/blog/2015/08/10/leading-a-team-at-ruby-for-good/)** 76 | 77 | ##### Interested in Leading a Team? 78 | Send us an email at [{{ site.data.constants.contact_email }}](mailto:{{ site.data.constants.contact_email }}) 79 | 80 | -------------------------------------------------------------------------------- /yearbook.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Yearbook 4 | extra_js: 5 | - https://rawgit.com/rubyforgood/meta/master/projects.js 6 | --- 7 | 8 | ### Projects 9 | 10 | Here’s a list of the organizations and projects we’ve been able to help over the past years making the world a gooder place — if you have a great idea for a future project, let us know and suggest a project. 11 | 12 | #### 2017 13 | 14 | In 2017, the Ruby for Good event was held in Front Royal, Virgina at [George Mason University’s Smithsonian-Mason School of Conservation](http://smconservation.gmu.edu/). 15 | 16 | {% include projects-yearbook.html year="2017" %} 17 | 18 | #### 2016 19 | 20 | In 2016, the Ruby for Good event was held in Front Royal, Virgina at [George Mason University’s Smithsonian-Mason School of Conservation](http://smconservation.gmu.edu/). 21 | 22 | ##### Portland Diaper Bank 23 | 24 | There are 150,000 children living in poverty in Oregon whose parents often have to make the difficult choice of choosing between feeding their children and putting diapers on them. The great people at the Portland Diaper Bank are helping and need our help to do the great work that they do! [More about the Portland Diaper Bank](http://www.pdxdiaperbank.org/). 25 | 26 | The application we developed was to replace the existing inventory system to provide better data on their operations. The intake process is volunteer-driven but very time-consuming, and the hours spent doing intake of donations is time they can't spend doing other work. The organization had requested intake methods other than hand-counting, such as barcode scanning or using a scale to weight large volume of loose product. We were able to get barcode intake functioning, and have plans to work in some kind of rudimentary scale-assistant as well. 27 | 28 | {% include github-block.html 29 | href="https://github.com/rubyforgood/pdx_diaper" 30 | team="armahillo|cattywampus|tmobaird|katiesteiner|cmmovius|cubadomingo|chrisboredom|shehanr|D-matz" 31 | %} 32 | 33 | ##### Smithsonian Studying the Scimitar Oryx 34 | 35 | Let's be honest, we all want to do great things. What is better than being part of a group that is helping to bring a species that is extinct in the wild back? There are captive populations of the oryx on ranches in Texas that researchers need some help with. They need a centralized database to keep track of the oryx, things like numbers, breeding history (can't let them get inbred), and so on. Once a stable gene pool and other information can be established, researchers are hoping to re-introduce them into the wild! 36 | 37 | {% include github-block.html 38 | href="https://github.com/rubyforgood/scimitar_oryx" 39 | team="nht007|pachacamac|cmar|duaimei|SuperJones|jcavena|rpchurchill|mkmckenzie|jeremywrnr|dpulliam" 40 | %} 41 | 42 | ##### Smithsonian Logging the Loggerhead 43 | 44 | There is only one Shrike native to North America and it is a surprisingly important part of the ecosystem. While they were once extremely common throughout the eastern US and Canada, no other bird species has seen their populations reduced as much since the 1960s. The Conservation Centers for Species Survival needs an application to serve as a central repository for researchers in Canada, the US and Mexico to log their research. How amazing would it be to be part of research that may prevent this amazing animal from going extinct? 45 | 46 | {% include github-block.html 47 | href="https://github.com/rubyforgood/loggerhead_shrike" 48 | team="jjlangholtz|michaelbyrd|holytoastr|marshmalien|jkeam|mobjohnson|ahirschberg" 49 | %} 50 | 51 | ##### Smithsonian Red Pandas 52 | 53 | The red panda researchers are currently using a mish-mash of methods for recording notes and pictures on the state of the red pandas. They need something centralized and accessible by other people. They'd also ideally like the application to work well on tablets since when they are out with the red pandas they use tablets to record their notes. 54 | 55 | {% include github-block.html 56 | href="https://github.com/rubyforgood/panda_app" 57 | team="rmalecky|bhaibel|tpinecone|jgaskins|nathanielksmith|andrewpurcell|christinaforney|" 58 | %} 59 | 60 | ##### Working Landscapes 61 | 62 | The amazing people at the Virginia Working Landscapes have done all the heavy lifting creating wildlife surveys, and now need somewhere to house their information. Virginia Working Landscapes works with partner land-owners throughout the state in numerous watershed zones and organizes teams of citizen scientists to record wetland data. This data is invaluable for state conservation efforts but the current process Virginia Working Landscapes uses to collect and collate that data is slowing down important research. They need an application to record their findings, keep their data organized, and simplify generating accurate reports. 63 | 64 | {% include github-block.html 65 | href="https://github.com/rubyforgood/working_landscapes" 66 | team="h-m-m|maxtedford|exbinary|bglusman|danielpclark|scherenack|cflipse" 67 | %} 68 | 69 | ##### NOLA Habitat Humanity 70 | 71 | As software developers we have it pretty good and and housing isn't a concern for us. Unfortunately, not everyone is as lucky, especially the people of New Orleans. Despite hurricane Katrina happening about a decade ago, there are still a lot of displaced people in temporary residences who need somewhere to call home. The amazing people at habitat for humanity are trying to fix this with their work in New Orleans 9th ward (one of the hardest hit areas by Katrina) and with a recent grant they received their work is only going to move quicker. The problem is, one of the requirements of the grant is a stricter recording and reporting process of their 300 or so daily volunteers which is where we come in! Let's help them with the great work they are doing by making this process faster so they have more time to rebuilding people's lives. 72 | 73 | {% include github-block.html 74 | href="https://github.com/rubyforgood/habitat_humanity" 75 | team="bjmllr|robbkidd|pat|scooter-dangle|Brantron|jenpen|jdsayle" 76 | %} 77 | 78 | ##### Share Your Christmas 79 | 80 | It is an unfortunate reality that not every child has presents under their Christmas tree. The amazing people at the Durham Volunteer Center have a program, Share your Christmas, that matches needy children up with people able to ensure they have something special under their tree. They need a new app to facilitate their process of matching donors and receivers. Ideally they would also like to have it generic enough to also work for thanksgiving (turkeys) and the start of the school year (backpacks full of school supplies for kids.) Even though their current process is extremely terrible, other cities have expressed interest in this so this group will potentially be helping kids from all over the country! 81 | 82 | {% include github-block.html 83 | href="https://github.com/rubyforgood/share_christmas" 84 | team="craig-riecke|AEgan|nolds9|ajohnson052|jaydorsey|vegajdr|Josecc" 85 | %} 86 | 87 | ##### Manjia 88 | 89 | Manjia was born out of disappointment over the amount of food waste created each year that goes unrecovered. We know there are people in desperate need of food donations and that there are also a lot of people with a surplus of food. We believe that by providing a simple way for people from those two groups to be connected it will significantly reduce the amount of food wasted. As sustainability becomes more and more a topic of conversation we hope that food recycling can be discussed as one of the easiest ways to improve the lives of those in need while at the same time lessening our impact on the world by reducing landfill waste. 90 | 91 | 95 | 96 | --- 97 | 98 | #### 2015 99 | 100 | In 2015, Ruby for Good was held at the Fairfax Campus of George Mason University. 101 | 102 | ##### Humane Society of Fairfax County 103 | 104 | {% include github-block.html 105 | href="https://github.com/rubyforgood/hsfc" 106 | team="adamlwalker|maebeale|dgarnder|jjlangholtz|valeriecodes|ldewald|madtypist|michaelbyrd|Ameria|htakeguchi|pamtaro|edwardpark" 107 | %} 108 | 109 | ##### The Purple Door 110 | 111 | Purple Door Coffee is a specialty espresso bar and coffee shop in Denver, Colorado that employs teens and young adults who have been homeless and want to leave homelessness behind. Their mission is to reclaim and sustain the lives of homeless youth and young adults through supportive and meaningful employment. 112 | 113 | {% include github-block.html 114 | href="https://github.com/rubyforgood/purple_door-1" 115 | team="saturnflyer|elight|crrdev01|jcavena|mallorybucell|jgujgu|CraigJZ|jayroh|gxespino|mlpinit|GeekOnCoffee" 116 | %} 117 | 118 | ##### Growhaus 119 | 120 | A statistics recording and tracking application made for the folks at The Growhaus. 121 | 122 | The GrowHaus is a nonprofit indoor farm in Denver's Elyria-Swansea neighborhood. Our vision is to catalyze a neighborhood-based food system in our community that is healthy, equitable, and resident-driven. 123 | 124 | {% include github-block.html 125 | href="https://github.com/rubyforgood/growhaus_stats" 126 | team="nevern02|indiesquidge|adunkman|bengm|nonegiven444|waffle-iron|fearthegoat" 127 | %} 128 | 129 | ##### All Income Foods 130 | 131 | An app that lists places that accept food stamps. 132 | 133 | {% include github-block.html 134 | href="https://github.com/rubyforgood/AllIncomeFoods" 135 | team="shrtlist|jwieringa|jerseycoder|abannert|ysiadf|mabundo|onezerojeremy|zph|kwals|rmalecky|tommarkallen|davix" 136 | %} 137 | 138 | ##### RSpec 139 | 140 | Contributing to the RSpec testing framework. 141 | 142 | {% include github-block.html 143 | href="https://github.com/rspec/rspec" 144 | team="cupakromer" 145 | %} 146 | 147 | --- 148 | 149 | #### 2014 150 | 151 | In 2014, Ruby for Good was held at the Fairfax Campus of George Mason University. 152 | 153 | ##### Kutoa 154 | 155 | Help the sole developer of the non-profit Kutoa.org. They are looking for help figuring out how best to test with Rails and Rspec and hope to get a solid foundation. 156 | 157 | Kutoa is an innovative giving movement that is uniting people around the world to give to a common cause. Give your $1/month and get a vote what project all of our money should support. Every dollar matters! 158 | 159 | {% include github-block.html 160 | href="#privaterepo#" 161 | team="rcarter|armahillo" 162 | %} 163 | 164 | ##### Pathway Homes 165 | 166 | Pathway Homes is a charitable organization providing non-time-limited housing and supportive services to adults with serious mental illness and other co-occurring disabilities in Northern Virginia. Founded in 1980, Pathways currently serves more than 400 adults with serious mental illness in community-based homes in Northern Virginia. 167 | 168 | {% include github-block.html 169 | href="https://github.com/rubyforgood/pathway-homes" 170 | %} 171 | 172 | ##### Trail Reporter 173 | 174 | App for crowdsourcing hiking trail hazards and conditions. 175 | 176 | {% include github-block.html 177 | href="https://github.com/rubyforgood/trail_reporter" 178 | team="syoder|alloy-d|briandamaged|maryhipp|michaelbyrd|joellastraley" 179 | %} 180 | --------------------------------------------------------------------------------