Documents

Guides

Tools

Hello, Civic Hacking World!

If you’re looking to give civic hacking a try, but don’t know where to start, we have some suggestions for you. First, check out our list of projects to see what’s active, or what could use your help. If you have questions, join our Slack and ask.

Learn About GitHub

Much of our work takes place on GitHub. If you’re not familiar with it, you may want to take some time to get up to speed. 18F has created a useful guide to GitHub and using the OSX Terminal. The guide is focused on contributing to the 18F website, but the Code for DC website is structured the same way. See if you can submit a pull request to the Code for DC website. If you can’t find anything to add or change, there’s a file called graffiti.md to add whatever you want, like “Hello, World!”.

Open Some Data

Get Data Released

Check out DC’s data repository or our own community data portal to see what’s available. Ideally, DC should provide all of the data identified as “high-value”. If you find something that’s missing, or out-of-date, contact the appropriate agency to politely let them know that they should release it. This might take some time and persistence, but you might also find that an agency is friendlier and more responsive than you could have imagined.

If you’re unable to get the agency to release the data, it may be time to submit a FOIA request. DC provides a FOIA portal for doing exactly that. However, you can also use MuckRock to handle all of the heavy lifting for you.

For web scraping, some popular tools include Beautiful Soup for Python or Nokigiri for Node. For PDF extraction, Tabula can be a good place to start.

Visualize Some Data, or Make It Actionable

If you’ve found a dataset, but aren’t sure what to do with it, it can be fun to play around for it and find the stories within the data. Consider how to make that data more interesting and informative to the general public. For example, Chris visualized the distribution of funding for “at-risk” students in DC (code here). Chris also created a site to check your odds of finding a bike at a Bikeshare dock (code here).

If you’re interested in visualizations, D3 is a popular way to make a beautiful one using Javascript.

Make a Website Easier to Use

Sometimes, an agency provides an awesome service that’s difficult to access. In some cases, you can help that by creating an easier-to-use interface. For example, Emanuel created a really simple tool to request that DC plant a tree at a certain address (code here).

Map Something

Create a Twitter Bot

Building a Twitter bot is easier than you think, and it can be a great way to improve the visibility of some data while learning a bit of code. For example, Emanuel created a bot that tweets out new additions to the DC Library’s catalog (code here).

You can find frameworks for Python, Ruby, and Node to make this easier for you.

Code for America is a non-partisan, non-political organization working to create low-risk settings for innovation between citizens and government. Learn more about Code for America's mission and its Fellowship, Brigade, Accelerator, Peer Network and Code for All programs.