I built a very interesting real-time voting and feedback system for CBC (Canadian Broadcasting Company) and their Power & Politics show.
This project was very different from my usual projects in several ways:
- It was primarily a mobile web project, rather than a native app
- It was built in Python — a language I had experience in, but which I had not used on a professional project before!
- It was deployed on Google App Engine which was completely unfamiliar to me, as I usually use AWS or roll my own self-hosted solution
These specific technology choices were informed by CBC’s existing platform, all of which was mobile web based and hosted on Google App Engine. This was just one new piece of their existing infrastructure.
- A multiple choice poll called the Ballot Box
- A sliding scale poll called the Reactor
- A live news feed of Top Stories coming from CBC’s RSS feed
- A live Twitter feed containing posts with the hashtag PnPCBC
The news feeds are pretty standatrd fare. What is really interesting about this project is what the voting functionality really does.
Results from polls are sent in real time to the control room at CBC where they can be aggregated and displayed on screen, during the live broadcast. Even more impressive, the on-screen results match the real-time results in the app, and update, live, as more people vote or change their vote.
The Reactor really takes advantage of that live updating, as it’s primary purpose is to show how opinions change over time — and in particular, over very short periods of time.
Imagine two pundits are discussing and debating an issue, and viewers can slide a slider left or right indicating which way they are leaning on the topic. These values are funneled up to the control room where they can be displayed on screen back to the viewers.
This is a really neat step forward in facilitating communication between broadcasters and their audience, and I’m proud to have been asked to build this groundbreaking app for CBC.
Last modified: April 3, 2019