Preface
I had a discussion with a colleague regarding the feasibility of creating an online quiz that would match users with their “ideal” political candidate in upcoming elections with minimal resources and a small team of developers and quick delivery. I argued that there was too much that wasn’t being accounted for — after all, you can’t develop an algorithm for something you don’t understand. Furthermore, the idea has already been executed by teams comprised of algorithm specialists, developers, and political science experts. Largely, the project, if made for a client, would be unnecessary and too costly to build correctly. Yet, building out the application would prove to be a great thought experiment.
The biggest obstacle to overcome is that we have no political science experts on hand to create the data; anyone whom claims such an expertise that we have access to (free of charge) is 100% a liar and unreliable. But, the data is out there, so the solution is going to be: doing the research to reverse engineer an existing algorithm — it’ll probably be one of the most time-consuming aspects of this project, but without the data, there is no project.
Getting The Data
iSideWith.com is one of the best known applications for what we’re doing, and it’s already done pretty well. The only things I really think need improvement are maybe a mobile-friendly layout and the navigation could be cleaned up a bit for consistency. So, if you run through the quiz on the current website, you get results for all of your answers. From those results, you can create a chart that helps plot your eventual point on the political spectrum. You also have to understand that you’re creating a spectrum that will run along (at least) two axes (i.e. Left Wing vs Right Wing). For the sake of simplicity and to expedite the process, we’ll limit our spectrum to two axes. Also, iSideWith’s results include your plot point along the spectrum along with plot points for each of the available candidates. This is how we’re going to fine tune our algorithm. Basing on the assumption that these guys have done their research, we’ll weight each question item to try and achieve a best-fit solution.
In order to figure out the algorithm, we’ll have to build out the following modules: Candidates, Candidate Quiz Results, Political Parties, Political Party Results, and Political Issues. Then we’ll need to fill in the data so that we can display all of the data together. We’re going to visually identify approximate best-fit.
Fine-Tuning
When we start the algorithm averaging out all the scores and moving the plot points in specific directions based on the data we collected, we’ll be able to see that the algorithm isn’t quite there yet. So we need to weight each item along both axes, since any given issue could affect more than one axis. By trial and error we can manipulate the data and refresh the results grid and see the plot points moving as we go along. You’re not going to hit a perfect mark (or maybe you’ll get lucky), but we can get a close fit — again, you will largely have to lean on the data that you’ve collected. The issues and exactly how they pertain to politics is incredibly nuanced and requires analysis from a real expert to better classify where they belong.
So, our major overhaul was just giving the website an updated look that is mobile-friendly an it looks great. We were able to successfully (more or less) reverse-engineer the algorithm used by iSideWith.com to help users match with their ideal candidates and political parties. Obviously, the algorithm could use fine-tuning from a political science expert, but the groundwork is there. In the end, I was both right and wrong — the project can be completed in a short amount of time with a small team, but in order to do so, you would have to do something borderline unethical (like “borrowing” someone else’s matching algorithm); there are just too many gaps that need to be filled and the resources of a small development team are finite. It can be done… just with caveats.
Project Features:
- Mobile-First Design / Responsive
- UI/UX Design
- HTML
- CSS
- Javascript, JQuery
- PHP
- Database & CMS integration
- Algorithm developed to match users to their ideal candidates
- Candidate Manager Module
- Quiz Results Manager Module
- Political Parties Module
- FAQ Module
- Glossary Module