A web-app intended to be used by canvassers campaigning for a 'Yes' vote in the second independence referendum.
The web-app will be delivered to canvassers out knocking doors primarily through an HTML5/React single-page app designed to work on a mobile phone; it's possible that someone else may do an Android of iPhone native app to address the same back end but at present I have no plans for this.
There must also be an administrative interface through which privileged users can set the system up and authorise canvassers, and a 'followup' interface through which issue-expert specialist canvassers can address particular electors' queries.
See
https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/488478/Bulk_Data_Transfer_-_additional_validation_valid_from_12_November_2015.pdf,
section 3
A valid postcode.
All users
All users of the canvasser app Able to read and add canvassing data in a limited
radius around their current position.
Organisers of canvassing teams Able to see and modify data on the canvassers in
the team(s) they organise; able to add canvassers to their team; able to update canvassers in
their team, including resetting passwords and locking accounts; able to see canvass data over
the whole area in which their team operates.
People expert on particular issues. Able to read followup requests, and the electors to which they
relate; able to access (read/write) the issues wiki; able to write followuop action records.
Users entitled to see an overview of the canvassing data collected. Able to read canvassing data over the whole map, including historical
data.
Users responsible for determining what issues should be current at any time.
Able to set current issues; able to add issues.
Able to read and update canvasser records, team membership records, team
organisership records, issue expertise records; able to add and update reference data
generally.
All electors known to the system; electors are people believed to be entitled to vote in the current campaign.
All genders which may be assigned to electors.
All dwellings within addresses in the system; a dwelling is a
house, flat or appartment in which electors live. Every address should have
at least one dwelling; essentially, an address maps onto a street door and
dwellings map onto what's behind that door. So a tenement or a block of flats
would be one address with many dwellings.
Addresses of all buildings which contain dwellings.
Locality indexing; see issue #44. Note that this property should be generated
automatically from the latitude and longitude:
(+
(* 10000 ;; left-shift the latitude component four digits
(integer
(* latitude 1000)))
(- ;; invert the sign of the longitude component, since
;; we're interested in localities West of Greenwich.
(integer
(* longitude 1000))))
We'll use a trigger to insert this. I don't think it will ever appear in the user
interface; it's an implementation detail, not of interest to users.
All visits made by canvassers to dwellings in which opinions were recorded.
But only in their immediate area.
Authorities which may authenticate canvassers to the system.
#
Issues believed to be of interest to electors, about which they may have questions.
Intentions of electors to vote for options elicited in visits.
Auto-generated abstract primary key
The locality at which the intention was recorded; used where an elector does not consent to
have polling intention stored against them. This is a locality as described in
The locality at which the intention was recorded; used where an elector does not consent to
have polling intention stored against them. This is a locality as described in
Primary users of the system: those actually interviewing electors.
But only their own record
But only canvassers in their own team.
All canvassers
But should only be able to edit their own record.
Requests for a followup with an issue expert
A role (essentially, the same as a group, but application layer rather than database layer) of which a user may be a member.
But only their own group(s)
All groups
Electoral districts: TODO: Shape (polygon) information will need to be added, for use in maps.
Actions taken on followup requests.
But only for electors in their immediate vicinity
Options in the election or referendum being canvassed on