U.S. Go Congress
A maintainable web app for the U.S. Go Congress.
Copyright (c) 2010-2021 American Go Association
Support
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.
Contribute
- 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
.
- 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
- App dependencies
- Install a js runtime
- Install ImageMagick CLI
- eg.
brew install imagemagick
- Make sure CLI tools are on your PATH with eg.
which convert
- Install ruby gems using bundler
gem install bundler
bundle install
- If a gem fails to install, it may be missing native libraries
- nokogiri needs libxml2 and libxslt
- pg needs libpq-dev
- 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
- 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 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
- Write a spec that describes your contribution
- Push your changes to your fork on github
- Submit a pull request
Configuration
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.
Email
Sent by Rails
See doc/smtp.md
Received by gocongress.org staff
Email for accounts in the gocongress.org domain is managed through
Google Apps. nate.eagle@usgo.org has access to manage these accounts.
Thanks
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