What started as an academic project has morphed into something special: a new methodology that allows developers to efficiently process city data while making it accessible to any modern Web application.
In 2007, Dr. Dwight Mullen founded The State of Black Asheville as an undergraduate research effort at the University of North Carolina Asheville. Over the next 10 years, students utilized public data to compare outcomes by race and gender in the areas of education, housing, health care, criminal justice and economics.
This research represented the most comprehensive effort to quantify the significant issues of racial equity that have existed in Asheville for decades. The data quickly became part of important policy discussions in the city and was the catalyst for Buncombe County’s innovative Isaac Coleman Economic Community Investment program.
When Dr. Mullen prepared to retire from the university in 2017, however, the project faced an uncertain future. As a former student of Dr. Mullen, I was eager to help, and we had already started planning a new website when the Code for America Community Fellowship program was announced. This program is designed to bring community and government partners together to tackle big issues facing cities across the country.
We saw the Community Fellowship program as an opportunity to provide additional support during the project’s evolution from an undergraduate research effort to a larger, community-driven resource. Furthermore, the Community Fellowship requires a government partner to sign on to the project; this allowed the Fellowship Team to build a strong, formal relationship with the city of Asheville’s Departments of Equity and Inclusion and Information Technology.
Our Community Fellowship team in Asheville joins groups from Honolulu, Austin, and San Jose in piloting a new model to bring principles of civic technology and 21st-century government to communities across the country. This new approach provides direct support to volunteers from the Code for America network to scale up efforts in their own communities, while providing the structure to build formal partnerships between technologists, community advocates, and government entities.
Code for America has already inspired a large volunteer movement through their Brigade network — bringing people together through the shared vision that “government can work for the people, by the people, in the digital age.” The Community Fellowship program is designed to leverage the existing relationships and local knowledge these groups possess to spur innovative projects to help vulnerable populations. It also gives volunteers an idea of what it’s like to really work in government, and gives government an idea of what it’s like to have civic technologists on staff.
Our local brigade, Code for Asheville, has been actively involved with the city’s open data efforts, starting with an Open Data Policy in October 2015 that has facilitated the release of over 200 data sets on Asheville’s Open Data Portal. In 2018, following the leak of body-cam footage showing an incident of police brutality, Code for Asheville led a community-driven petition effort calling for greater transparency around data sets related to public safety.
We’ve also produced several apps that are powered by open data provided by the city, including AVL Park and AVL Crime, so we knew quite a bit about the city’s existing data sets and the effort required to put that information in a format that can be easily utilized by our community.
For the State of Black Asheville project, we developed a vision of accessing public data in new and innovative ways, but quickly realized we had a few challenges to overcome. Most city data starts in structured query language (SQL) databases, and SQL is a great tool for the job of aggregation and statistical analysis — exactly what we need to show useful charts. Open data application programming interfaces (APIs), however, don’t typically support these aggregation operations of grouping and filtering data. Instead they provide row-level information such as the details on a single permit, call for service, or a traffic stop.
One technology had the tools we needed for the required data processing, and the other had the tools necessary for a dynamic Web application. We had to figure out a technical approach to handle this “missing piece” in the way open data is provided to the public today.
Our Community Fellowship provided the perfect framework to work together with our government partners on a solution. We worked with the city’s IT team to produce a read-only replica of its existing Postgres server. This was a win in itself — for the first time, anyone can use existing SQL tools to look at city data!
Asheville had already developed an app, SimpliCity, which consumed their public data using modern Web technologies like React and GraphQL. We realized that our needs on the State of Black Asheville website were similar — interface with city data and visualize it in a way that makes sense to community members. Additionally, all of Asheville’s code was already published on GitHub.
We decided to take an approach that is surprisingly rare in civic technology: rather than trying to build a “better mousetrap,” we actually built off of the city’s existing repository. We decided to build our visualization library in React, and to interface with Asheville’s data using a GraphQL server forked from its own version for SimpliCity.
We built a generic “statistics” endpoint on the city’s GraphQL structure to provide us with a flexible method to query any city data set, allowing us to utilize an SQL-style syntax to perform aggregation and filters to produce the exact analysis we need in a dynamic manner. We had found our bridge that would allow developers to efficiently process city data while making it accessible to any modern Web application.
Shortly after, Asheville identified an internal project with a similar need: an easy way to access statistics related to permitting trends in the city. So, we finally got to do something very exciting: submit a pull request back to the city so that they could deploy our enhancements. The close working relationship created by the Community Fellowship allowed us to identify a common need, and this example of code-level collaboration will provide benefits to everyone involved.
Asheville saves valuable staff time by eliminating the need to develop the data feeds critical to performance metrics and operational dashboards. The Community Fellowship team benefits by having their modifications merged into a repository that is maintained by city work plans and deployed to their existing infrastructure.
The Asheville IT department does a great job of committing to open source, modern technologies, and they publish most of their work onto GitHub to encourage community contributions. The Code for America Community Fellowship has allowed us to develop some successful strategies for civic tech collaboration, and we’re learning some important lessons along the way.
For government to build truly collaborative efforts around open source software, it is essential that we go beyond simply sharing code and start to build working relationships around challenges that are common to both government and community efforts. By working together on shared technology, we can start to unlock the true potential of civic technology and 21st-century government.