An outline of my plan for WhereTheyStand over the coming year
Since I launched WhereTheyStand in 2020, there has been very little done to the front-end of the site (what you see). There has been more work — but still a small amount — done to the operational back-end of the site (what you don't see). There has, however, been a large amount of groundwork done to bring new functionality and a fresh new look to the site, and I want to go over some of that here.
(The timeframe for Hansard and the new Vue.js client is uncertain, but I'd like to release them both at the same time within the next six months. If necessary, the Vue.js client can go live first without Hansard, but not the other way around.)
In mid-2021 I spent a significant amount of time on developing a mechanism to bring full Hansard transcripts to WhereTheyStand. Work on a full parser to convert Hansard into a JSON representation (Hansard will be stored in MongoDB, rather than the current SQL database) is underway with some kinks to be ironed out. The current scope is all Hansard from 2017 onwards to WhereTheyStand. Once the parser works for this time period, I'll look at going further back.
I want to provide a reading experience that provides significant enhancements to Parliament's current Hansard reader. There is no value in just reproducing the transcript, so Hansard will not be published on WhereTheyStand until I have implemented the features I want.
When an MP mentions another MP, a party, or a role (for instance, by referring to the 'Member for Botany' or the 'Minister of Education'), I want to resolve that reference to a person or party on WhereTheyStand to enable the reader to see more about that person. When an MP mentions a particular topic — perhaps a bill, or the name of a government agency — I want to highlight that, too.
I also want to include glossary definitions for terms that might be unfamiliar to many. If an MP mentions the Regulations Review Committee, I want the reader to be able to learn quickly what that is and see a list of every time it was mentioned.
In addition to in-line highlighting of entities, topics and terms, I also want to provide a great reading experience with:
Here's a very early screenshot showing how the Hansard reader in WhereTheyStand might look:
[ I'm aware these images don't display properly on mobile devices. This is something that will also be overhauled in an update to the site ]
I am not a designer. Developing WhereTheyStand has, for me, been a Python project that happened to require some HTML and CSS. That's resulted in what I believe is a clunky design that, in many places, does a poor job of communicating effectively. There is a distinct lack of iconography and often the design is centred around how the information is stored in the database, rather than around what the user needs to see (for instance, an MP's voting history is shown vote-by-vote rather than by grouping all votes for a given bill together).
As such, I'm redeveloping the site's entire front-end using Vue.js. The aim is for the whole site to be a single page application (with server side rendering the first time you load a page).
Here's an example of what you might expect the new layout to look like:
Here are some improvements that have already gone live
When I first launched the site I had intended to link in to the Facebook Ad Library to track advertising spending. This was in the context of New Zealand going through the 2020 General Election and advertising naturally being high. This is still on the feature timeline, but it's not a priority right now.
There is also the issue of expense reports and notes. Currently, MPs' expense reports are shown without their contextual notes. This has disappointed me for some time, as it does feel somewhat disingenuous to not tell the whole story when, for example, an MP apparently spends minus $9,000 on international travel in a given quarter. This will be a simple front-end fix, but the notes are not actually in the database, and so it will be a manual process to go back through previous expense disclosures and add the notes. I hope to have that done when the new Vue.js client launches.