usgo / gocongress

Annual US Go Congress Website
https://www.gocongress.org
MIT License
20 stars 17 forks source link

U.S. Go Congress

A maintainable web app for the U.S. Go Congress. Copyright (c) 2010-2021 American Go Association

Maintainability

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

  1. Prerequisites
    1. Linux (eg. Ubuntu 16.04+) or Mac OS 10.8+
    2. Proficiency with git and sql
    3. Read Getting Started with Rails
    4. Fork and clone this github repo
  2. Install the Ruby version specified in .ruby-version.
  3. Install PostgreSQL 9.4.4+
    1. e.g. brew install postgresql
    2. Practice connecting using the command-line client, psql
    3. Make sure you have a role that can create tables
  4. App dependencies
    1. Install a js runtime
    2. Install ImageMagick CLI
      • eg. brew install imagemagick
      • Make sure CLI tools are on your PATH with eg. which convert
    3. Install ruby gems using bundler
      1. gem install bundler
      2. bundle install
      3. If a gem fails to install, it may be missing native libraries
        1. nokogiri needs libxml2 and libxslt
        2. pg needs libpq-dev
  5. App configuration
    1. Configure rails to talk to your database
      1. cp config/database.example.yml config/database.yml
    2. cp .env.example .env (see Configuration below)
    3. If all is well, bin/rake -T should list rake tasks
  6. Run the App locally
    1. Run the script and answer the prompts: rails runner script/admin_tasks/create_user.rb
    2. Run the app: rails server
    3. Open the app in your browser: http://localhost:3000
    4. Sign in using the email and password you provided for your new user
    5. Do some developing!
  7. Run the tests
    1. bin/rails db:setup
    2. RAILS_ENV=test bin/rails db:seed
    3. bin/rake will run the tests. If they all pass, you're good to go.
  8. Submit your contribution
    1. Write a spec that describes your contribution
    2. Push your changes to your fork on github
    3. 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!