Skip to content

Latest commit

 

History

History
135 lines (108 loc) · 6.19 KB

README.md

File metadata and controls

135 lines (108 loc) · 6.19 KB

Brigade Information

This repository hosts data about Code for America brigades and other civic tech organizations for the Code for America API.

How to add or edit your Brigade for the API

The organization list is a JSON file named organizations.json. Add or edit your organization's information in that file and submit your changes as a pull request.

A single organization's record looks like this:

{
    "name": "Beta NYC",
    "website": "http://www.beta.nyc",
    "city": "New York, NY",
    "location": {
      "city": "New York",
      "state": "New York",
      "country": "USA",
      "continent": "North America",
      "coordinates": {
        "latitude": "40.7144",
        "longitude": "-74.0060"
      }
    },
    "events_url": "http://www.meetup.com/BetaNYC/",
    "rss": "http://betanyc.tumblr.com/",
    "projects_list_url": "http://projects.betanyc.us/projects",
    "projects_tag": "beta-nyc",
    "latitude": "40.7144",
    "longitude": "-74.0060",
    "tags": [
      "Brigade",
      "Official"
    ],
    "social_profiles": {
        "twitter": "@BetaNYC",
        "facebook": "https://www.facebook.com/BetaNYC/"
    }
}

Official Schema

  • name (Required) - The name of your organization. (Cannot contain - / ? characters.)
  • website (Required) - The web address of your organization. Leave empty if none.
  • city (DEPRECATED) - The city of the organization. This field is deprecated in favor of location.
  • location (Optional) - An object with keys about the geography of your organization.
    • city
    • state - the state or province of your organization
    • country
    • continent
    • coordinates - in decimal degrees
      • latitude
      • longitude
  • tags (Required) - An array of descriptors for your group. Some commonly used tags are:
    • Brigade
    • Official
    • Code for America - Code for America Brigade
    • Code for America Partner Brigade - A separate 501(c)3 nonprofit that is an official Code for America Brigade.
    • Code for America Fiscally Sponsored Brigade - A Brigade that uses a non-Code for America Fiscal Sponsor.
    • Code for All - Code for All network member ("Governing Partner")
    • Code for All Affiliate - Code for All network Affiliate Partner
    • Fellowship - organization is running a fellowship program
    • Government
  • events_url - The URL of your event-scheduling page.
  • rss - The URL of a blog or its RSS feed. The API will look in the usual places for a feed URL if the link isn't direct. Non-blog RSS feeds will also be processed.
  • previous_names - An array of former names of the organization. This can be useful in maintaining URL redirects or noticing which Brigades have changed names over time.
  • projects_list_url - The URL of a GitHub organization or of a list of project URLs, formatted as described below.
  • projects_tag - The GitHub topic tag the Brigade recommends their projects use to associate themselves with the Brigade
  • latitude / longitude - Where your Brigade meets. It can be as specific or general as you want, and can be figured out using a tool like LatLong.net. Required if you want to appear on the Brigade or Code for All maps.
  • type (DEPRECATED) is a list of tags, comma separated. Use tags instead.
  • social_profiles is an object with the keys being the name of the social network and the value being the identifying address on that network. Specifically,
    • twitter - The Twitter handle including @.
    • facebook - The Facebook Page URL
    • linkedin - The LinkedIn Page URL
    • instagram - The instagram username including @.
    • youtube - The URL to a YouTube channel.

Before committing your change, please make sure that there are no formatting issues by running the bin/format-json script. (You will need to brew install jq moreutils for that script to run.)

Projects List

If you don't want to use a GitHub organization URL for your projects list, you can link to a custom CSV or JSON file.

The custom projects list should have the following columns:

  • name is the project's name (filled in by GitHub if left blank)
  • description is the project's description (filled in by GitHub if left blank)
  • link_url a link to the project's web page (filled in by GitHub if left blank)
  • code_url a link to the project's repository (only GitHub links are supported)

A CSV example:

name,description,link_url,code_url
South Bend Voices,"A redeploy of CityVoice for South Bend, IN.",http://www.southbendvoices.com/,https://github.com/codeforamerica/cityvoice

The projects list URL can be any flavor of csv. The easiest way is to make a Google Spreadsheet like my example and then select File > Publish it to the web.

If you are using the new Google Spreadsheets, add /export?format=csv to the end. https://docs.google.com/spreadsheets/d/<key>/export?format=csv

If you have the older Google Drive version change ?output=html to ?output=csv. https://docs.google.com/spreadsheet/pub?key=<key>?output=csv

Put that in the Brigade Information sheet and you're done.

The projects list URL can also be a JSON file, with a list of strings containing GitHub project URLs.

If you have any questions, start an issue on this repo.

Syncing Brigade list from Salesforce

At Code for America we use Salesforce as the primary source of Brigade information.

In order to sync from Salesforce you will need:

  • Python3
  • The requests, geopy modules

We recommend setting up a virtualenv with:

python3 -m venv env
source env/bin/activate
pip install geopy requests

Then, you can sync from Salesforce with this command:

bin/merge-from-salesforce <(bin/download-from-salesforce) organizations.json