This repository hosts data about Code for America brigades and other civic tech organizations for the Code for America 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/"
}
}
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 oflocation
.location
(Optional) - An object with keys about the geography of your organization.city
state
- the state or province of your organizationcountry
continent
coordinates
- in decimal degreeslatitude
longitude
tags
(Required) - An array of descriptors for your group. Some commonly used tags are:Brigade
Official
Code for America
- Code for America BrigadeCode 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 PartnerFellowship
- organization is running a fellowship programGovernment
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 Brigadelatitude
/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. Usetags
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 URLlinkedin
- The LinkedIn Page URLinstagram
- 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.)
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.
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