David Eads & the Chicago Tribune Election Center Site

On April 1st, David Eads from the Chicago Tribune’s Tribapps Team presented their Election Center Site at the Chicago OpenGov Hack Night. You can see all of Eads’ slides here.


David Eads is developer at the Chicago Tribune’s TribApps Team and is also one of the founding members of FreeGeekChicago.  (Smart Chicago recently hired FreeGeekChicago to build our new Crime and Punishment in Chicago site.) Eads introduces his role below:

The Chicago Tribune Election Center Site was created to be a one-stop shop for all the election news in the Chicagoland region.  Eads describes the intent of the project below.

The Election Center has a number of features including a news river, and results of the election pinned to the top of the page. Eads goes over more of the features here.

One of the recurring themes that Eads talks about is making the app simple to maintain and be used by the newsroom. As such, Eads makes the statement that databases suck. Instead of using databases, the site pulls the information from the more manageable Google Spreadsheet.

Before, elections results came through on the AP wire. This year, Thompson-Reuters released a new election results API that the Tribune used to power the site.

Election night always brings out surprises. One of which was the story of Isaac “Ike” Carothers who was convicted of public corruption charges and released from federal prison less than two years ago. He was on the ballet on primary night. (He lost)

To put together the backend, the team used a number of tools.

  • Django 1.6 framework
  • PostgreSQL 9.3 database with hstore extension and django-hstore
  • Pillow for candidate image processing
  • p2p-python custom CMS integration library
  • Tarbell for Google spreadsheet access

Eads explains below:

And for the front end:

  • Reuters Election API (accessed directly from client scripts)
  • jQuery, of course
  • Bootstrap for styling
  • Typeahead.js for search
  • Backbone and Underscore for application architecture
  • Moment.js for date processing

One of the goals of the deployment, was to elimante the need to use the server as much as possible. To do this, the team Django Medusa to generate pages and used Amazon S3 for hosting.

The Trib Apps team also developed print integration into the application. This led to a few misadventures that Eads discusses below.

Eads also talked about what’s next for the Tribune Apps team.

And had time to answer a few questions from the audience.

You can learn more about the Tribapps team from on their blog.