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.
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!”.
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.
Sometimes, an agency releases data in a form that isn’t archived and/or isn’t machine-readable. You can improve the world by correcting that. For example, Aaron created a web scraper to save the mayor’s schedule, which was posted daily but not archived, and then made a small site to display that historical data. Or, Liz created a script to pull prison population data out of PDFs posted monthly. Here is a list of common problems to look for.
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).
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).
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).