Turning out short-notice voting tools in Django for a suddenly-online convention

Speaker: Kim van Wyk

Track: Web

Type: Talk

Room: Main Hall

Time: Oct 13 (Thu): 12:15

Duration: 0:45

The 2021 South African Lions convention, due to be held in-person in April 2021, was changed to an online event with about 2 months notice as a Covid-19 wave loomed. A Lions convention includes voting by a subset of attendees, both as a secret ballot and by show of hands during different parts of the proceedings. I conducted a non-exhaustive search for available software or services that could used to facilitate this kind of voting. As a non-profit organisation there was little budget for unexpected software expenditure, ruling out capable but expensive options. Other options required each voter to register on a website and follow a series of moderately complex configuration steps. These steps would ensure a completely secure vote but would be difficult for the less tech-savvy voters to get right without assistance, which at the time only I could have provided. I couldn't guarantee having the time to provide the needed assistance. The tools available focused on highly cryptographically secure voting and voter secrecy, which made them more complex than I needed.

I decided to leverage Django to write tooling that could allow secret balloting before the convention and to present options for voting on during the convention. I didn't need to meet the strict secrecy and anti-tampering complexity baked into the available tools - I in fact called the tooling secret(ish), in that voting patterns could be seen by a determined sysadmin, but not by anyone else. This was more than good enough for the convention's requirement.

This talk will present the 2 Django tools I developed, focusing on:

  • how Django can be used to rapidly get a no-frills site up and running
  • leveraging the Django admin backend to avoid having to write large parts of such systems
  • an approach to being secret enough while remaining practical and supportable by 1 IT volunteer with a full-time unrelated job (me)
  • being flexible enough to preload the questions that will require show-of-hands voting and allow new items to be added at short notice during the convention
  • Rapid deployment with Docker


Thinkst Canary