Once we've switched to consuming our data from https://developers.democracyclub.org.uk/api/v1/ instead of https://wheredoivote.co.uk/api/ this opens up the ability for us to present information on elections and candidates as well as polling stations. This is the biggest job of this programme of work and needs the most discussion because there are a lot of different cases to consider and judgement calls we need to make.
Telling users which elections are happening can be useful information in itself. This could be the absolute MVP first iteration?
Some considerations:
If there is more than one future date with upcoming elections, we can limit ourselves to only considering the closest upcoming date with elections happening - we can ignore any other future dates
Candidate list may or may not be verified yet (candidates_verified flag)
It is quite common for more than one election to be taking place on the same day. For example, Directly Elected Mayors and Police and Crime Commissioners are generally elected on the same day as Local Councillors, so we need to deal with presenting >1 ballot/candidate list.
A variety of voting systems are in use in the UK (FPTP, Supplementary Vote, Single Transferable Vote and Closed-list Proportional Representation are all used for various election types)
Ballots can be cancelled (and may or may not be rescheduled)
MVP for candidate data is show name/party and link to WCIVF for more info. Once we've got that we can look at exposing more data via the API that we might want to present.
This application will be exclusively embedded in other people's websites, but presenting information about candidates may require us to present quite a large amount of text. For example:
In the European elections (closed-list PR) some regions had ~100 candidates on the ballot (but we want to squash them into party lists)
We need to think about how to present this well in a way that will look good, embed well and also scale well in those relatively extreme cases.
Making good decisions about how to present this information also dovetails with the topic of improving visual design ( #234 ).
Not all of our users want to present candidate information to their users (some of them want only a polling station finder), so part of the job here is to alter the build to allow us to build two distributions from the same source code: one which shows information on polling stations only and another which also includes data on candidates. Probably the easiest thing is to configure it with an env var so we can easily switch between versions for dev/testing purposes.
Perhaps this is best split this into the following sub-tasks:
Once we've switched to consuming our data from https://developers.democracyclub.org.uk/api/v1/ instead of https://wheredoivote.co.uk/api/ this opens up the ability for us to present information on elections and candidates as well as polling stations. This is the biggest job of this programme of work and needs the most discussion because there are a lot of different cases to consider and judgement calls we need to make.
Telling users which elections are happening can be useful information in itself. This could be the absolute MVP first iteration?
Some considerations:
candidates_verified
flag)Not all of our users want to present candidate information to their users (some of them want only a polling station finder), so part of the job here is to alter the build to allow us to build two distributions from the same source code: one which shows information on polling stations only and another which also includes data on candidates. Probably the easiest thing is to configure it with an env var so we can easily switch between versions for dev/testing purposes.
Perhaps this is best split this into the following sub-tasks: