Over the past two weeks I've been working with a great team of people helping to build VoteReport - an open public reporting system to be used during the 2008 US Election to track the situation as citizens cast their ballots. The simple goal is to make it easy for anyone to send in a report describing the wait time, overall rating and any complications that are impairing their ability to participate in the election. For more information check out http://twittervotereport.com.
Dave Troy has put together a solid backend that is aggregating together Twitter, SMS, voice, iPhone and Android native applications, and even YouTube. Others have built the iPhone specific applications. I've been working on the mapping and data sharing side of the project. The first goal was to provide a number of mechanisms to share the data that we're gathering with everyone. Additional mashups and visualizations are free to use the data streams to pull all the data that VoteReport itself has - so definitely go wild with your ideas. A quick breakdown of what's available:
- OpenSearch -
- This is the OpenSearch description document that outlines all of the feeds and various filters that you can use when getting to the data. Always check this as we'll update it with new parameters or data streams. In addition, the various responses discussed below include OpenSearch styling pagination so you can walk through the entire database of reports without having to drink right from the firehose. This also includes the OpenSearch-Time extension.
- KML -
- Getting the reports.kml will give a Network Link - this is useful for GoogleEarth and other KML clients to automatically update every 60 seconds with new reports. You can append
live=1to get the full KML document. I have included all the useful attributes in the
ExtendedDataelement of all the Placemarks. Each Placemark also has an id for easy reference.
- GeoRSS-Atom -
- Just want to subscribe to the feed in your RSS reader, this feed is useful for getting updates.
- GeoJSON -
- JSON is super nice for doing client-side mashups and visualization. This is what the VoteReport Map itself is using. It includes a lot of information for each report, including reporter, icon, location.
All of these feeds even can take a
dtstart= with an ISO-8601 date for getting reports after a certain time (and optionally
dtend= for getting time-bounds of reports). A useful geographic filter is to use
state= with the capitalized two-letter state code to just get reports within a state. So for example http://votereport.us/reports.atom?state=VA is a GeoRSS feed of reports in Virginia. As I mentioned, I did build a quick map that you can view at http://votereport.us/reports/map.
We're continuing to build it out with new features as more data comes in. You can easily embed the map in your site using (and optionally remove the
The difficulty with creating more visualizations is the lack of pre-election data. This system has been built to primarily capture a huge amount of valuable information for one day. We're not sure before hand what this data will look like, coverage or attributes. Typically visualizations are made by exploring and playing with the data to see what emerges. In this case, we're making estimates (and guiding via the tutorials) on what data we'd like. Therefore, the map itself has simple mechanisms for styling markers based on the user-supplied report. But the data is far to dispersed so far for something like a heatmap.
Fortunately, the team consists of a large number of public advocates that are spreading the word which should encourage more citizens to use the system and contribute both good and bad reports. Andy Carvin of NPR put together this NPR coverage, and we've also received coverage from Time, Huffington Post, New York Times, TechCrunch and even Craig Newmark. Check out the TVR press page for more coverage links.
And if you would like to help contribute to the project, check out the VoteReport Wiki. I imagine there will also be a number of post-election visualizations and analysis to come out of the reports.