For the past couple of months, I’ve been working on Electowidget. Electowidget is a plugin for MediaWiki designed to make it possible to conduct Internet polls and elections using many different voting systems, including the Schulze method, Instant Runoff Voting, Approval voting, and even plain old Plurality.
Electowidget isn’t designed for secure public elections. Rather, it’s designed for the types of informal polls and elections that currently happen on wikis today. It’s also designed as a tool to help election theorists provide comparitive examples of how a given result will be tabulated comparing multiple different systems.
All data is stored on wiki pages, in JSON format, and some parts of the system currently require you to get your hands dirty editing JSON. My next step is to hide as much of the JSON away from the end user as possible, so that editing raw JSON
isn’t necessary. One nice bit about JSON is that it’s a very machine-friendly format, so I don’t anticipate that step being too tough to accomplish.
The ultimate goal is to make a library that can plugged into most any CMS or other PHP application. A lot of the functionality is already such that this is possible.
This work is seemingly unrelated to my work on Spectaclar (user management project), but there is a tie-in. I’ve done some initial work on a CMS-independence layer which can be helpful in porting plugins to different CMS systems. I haven’t decided yet just how far I’ll take this, but I keep this idea in the back of my mind whenever I’m in that part of the code.
Anyway, I hope people find this useful. I anticipate it’ll be useful for at least some of the things I’m doing, so I suppose that’s good enough for me.