While politicians are meant to represent the voters that gave them their vote, many voters don't feel properly represented. The main problem is limited or inconvenient access to the politicians' stances on different topics. Two websites combatting this lack of information and the possible disinterest are Wahl-O-Mat and Abgeordnetenwatch.
Wahl-O-Mat provides a broad and fast overview of a party's stance on different topics. After answering questions about relevant topics, the user is presented with a list of parties, sorted by the similarity between the user's and the party's answers. This way, the user can see which parties promise to work in his favor. But this is also the problem: It tells the voter what the parties promise, not what they actually vote for in polls.
Abgeordnetenwatch combats this issue by providing an overview of what a politician voted for in past polls. This increases accountability immensely. The drawback here is worse accessibility: All votes are compounded on the politicians' profiles, while it isn't easily possible to search for politicians based on their stances.
What it does
Trust-O-Mat aims to bridge these two approaches for an easy-to-use but still in-depth overview: The user answers questions about topics relevant to them and our web page uses these for politicians who voted accordingly in the past. This introduces bigger trust into politicians than just based on their promises.
In addition to the overview, we also introduce metrics characterizing the politicians' behavior. How stable are his opinions - does he often switch stances? How reliable are these stances - is the voting behavior actually based on the statements, or are they just empty promises? Is the politician true to his beliefs, or are his votes often influenced by his parties stance instead? These measurements are meant as rough guidelines for evaluating the politicians' trustworthiness, allowing voters to get informed without being influenced.
How we built it
We structured our application into three sections:
- The frontend, built with react and d3, which provides the webpage the user interacts with.
- The backend, also based on node.js, chooses politicians based on the user's stances and calculates metrics.
- The database, which is based MongoDB with a customized wrapper, stores the politicians' stances and votes.
Challenges we ran into
Everyone had to learn something new:
- Part of our frontend team had to learn how to use react first, an on top of this, we had to understand how to use async functions in combination with react.
- The backend team had to think of useful metrics and how to implement them, as well as designing a proper REST API.
- The database team never used MongoDB before, so this was quite a challenge as well.