A maintainable web app for the U.S. Go Congress. Copyright (c) 2010-2021 American Go Association
Nate Eagle is the current U.S. Go Congress webmaster. You can email him or create an issue here with any questions, concerns, or feedback. Contributions to the site are welcome and encouraged: if you know some Ruby, JavaScript, or even just HTML/CSS, creating a pull request is a great way to become part of the team.
- Prerequisites
- Linux (eg. Ubuntu 16.04+) or Mac OS 10.8+
- Proficiency with git and sql
- Read Getting Started with Rails
- Fork and clone this github repo
- Install the Ruby version specified in
.ruby-version
.- Use rbenv or compile from source
- Install PostgreSQL 9.4.4+
- e.g.
brew install postgresql
- Practice connecting using the command-line client,
psql
- Make sure you have a role that can create tables
- e.g.
- App dependencies
- Install a js runtime
- macs come with JavaScriptCore (part of webkit)
- linux or mac: node (
apt-get nodejs
)
- Install ImageMagick CLI
- eg.
brew install imagemagick
- Make sure CLI tools are on your PATH with eg.
which convert
- eg.
- Install ruby gems using bundler
- Install a js runtime
- App configuration
- Configure rails to talk to your database
cp config/database.example.yml config/database.yml
cp .env.example .env
(see Configuration below)- If all is well,
bin/rake -T
should list rake tasks
- Configure rails to talk to your database
- Run the App locally
- Run the script and answer the prompts:
rails runner script/admin_tasks/create_user.rb
- Run the app:
rails server
- Open the app in your browser:
http://localhost:3000
- Sign in using the email and password you provided for your new user
- Do some developing!
- Run the script and answer the prompts:
- Run the tests
bin/rails db:setup
RAILS_ENV=test bin/rails db:seed
bin/rake
will run the tests. If they all pass, you're good to go.
- Submit your contribution
ENV
variables are stored in a .env
file, which is git-ignored.
Most of these variables don't belong in source control because they
are secret. Others vary by deployment level. This file will be
loaded by the dotenv
gem.
For local development, cp .env.example .env
to get started.
For stage
and production
use heroku config.
See doc/smtp.md
Email for accounts in the gocongress.org domain is managed through Google Apps. [email protected] has access to manage these accounts.
Special thanks to Lisa Scott, who helped invent, and tirelessly tested, the first year's site in 2011. Special thanks to Jared Beck, who provided mentoring and assistance for the 2014 site. Special thanks to Tim Hoel and Jared Beck who both provided mentoring and assistance for the 2015 site. Special thanks to Rex Cristal, for taking over maintenance of the site from 2015 – 2019!
- 2022: Jared Bek, Nate Eagle, Eric Wainwright
- 2021: Jared Beck, Michael Hiiva, Nate Eagle, Steve Colburn
- 2020: Rex Cristal, Lisa Scott
- 2019: Gregory Steltenpohl, Nate Eagle, Steve Colburn, Lisa Scott, Dave Weimer
- 2018: Nate Eagle, Joel Cahalan, Steve Colburn, Andrew Jackson
- 2017: Andrew Jackson, Jared Beck, Steve Colburn, Lisa Scott, Ted Terpstra, Les Lanphear
- 2016: Rex Cristal, Walther Chen, Sun Chun
- 2015: Tim Hoel, Jared Beck, Andrew Jackson, Josh Larson, Steve Colburn, Rex Cristal
- 2014: Jared Beck, Andrew Jackson, Matthew Hershberger, Chris Kirschner, Steve Colburn, Rex Cristal
- 2013: Chris Kirschner, Judy Debel
- 2012: Arlene Bridges, Bob Bacon, Steve Colburn
- 2011: Lisa Scott, Alf Mikula, Brian David, Andrew Jackson, Steve Colburn