BritishCavingAssoc / BCAonline

BCA Online
Mozilla Public License 2.0
0 stars 1 forks source link

Produce Ballot Spreadsheet #28

Open DavidCooke opened 5 years ago

DavidCooke commented 5 years ago

The ballot spreadsheet records a unique ballot id for each member and other information. It is used to run a secure secret ballot.

Every current voting member is given an unique alternate 9 digit number that is then exported along with name, house (group or individual), email, postal address to a spreadsheet.

The ballot id gives access to a voting page on the website setup for the purpose.

The spreadsheet must be kept very secure since it is the only copy of the alternate numbers. They are not stored in the database in case the database is hacked.

The spreadsheet is used to send out the ballot papers by email where possible otherwise by post. This is done by the Sending Officer (SO).

A copy of the spreadsheet with the contact detail deleted is given to the Returning Officer (RO). The RO job is to mange the returned ballots and count them. The spreadsheet will be imported into the voting website software.

The RO must be completely independent of the SO to guarantee a secret ballot.

Most commercial mailing lists (mailchimp, phplists) prevent sending more than one email to the same address. This is a problem where partners or families are sharing the same email address. The solution is to concatenate the name and ballot token fields of multiple occurrences of the same email address to form a single email record. The downside is that one person might steal the ballot tokens of the partner/family but that is unlikely. If it is an issue they shouldn't share email addresses. Add an email occurrence count to each record to identify those that have been concatenated.

Add a facility to mark users who have an email address that is bouncing. They will be included in the postal ballot.

DavidCooke commented 5 years ago

Most commercial mailing lists (mailchimp, phplists) prevent sending more than one email to the same address. This is a problem where partners or families are sharing the same email address. For the ballot we need to be able to send a separate token for each individual so therefore need to send a different emails to the same email address within the same mailshot.

Possible solutions are:

  1. To separate out partners into a second mailshot, child 1 into a third, etc.
  2. Another solution is to use plus addressing. See https://en.wikipedia.org/wiki/Email_address#Subaddressing. This will only work if the remote email system supports +addressing (needs to be tested). Emails would be sent to person+1@example.com, person+2@example.com, etc. So add a column to the output spreadsheet that will count up by one for each occurrence of a particular email address. This can be used to separate out the mailshots or create the +addresses.
DavidCooke commented 5 years ago

Re comment 25/7/19. Plus addressing is not widely enough implemented by email services for this to be a solution.

DavidCooke commented 5 years ago

Constituent Bodies (CCB) & Regional Councils (RCC) have been overlooked in the members selected. They have a vote. The should be included.

DavidCooke commented 5 years ago

The admin_email_ok flag needs to be checked. This is for users where we have had their email address supplied by a club but they have indicated that they do not want to receive admin emails.

DavidCooke commented 5 years ago

Concatenate the name and ballot token fields of multiple occurrences of the same email address to form a single email record. The current method of identifying the occurrence number of each multiple user is difficult to process. It requires the data to be split and sent as multiple mailshots, one per occurrence. Having a single record with all the information is simpler. The downside is that one person might steal the ballot tokens of the partner/family but that is unlikely. If it is an issue they shouldn't share email addresses.

DavidCooke commented 5 years ago

Add option to mark user emails as bouncing. Those users to be moved into the postal ballot.

The email status fields was added in issue #41