Poll Design Wizard
← Older revision
Revision as of 22:46, 29 September 2014
(6 intermediate revisions by the same user not shown)
Line 42:
Line 42:
#'''Configured''': An initial configuration has been entered, including vote eligibility criteria.
#'''Configured''': An initial configuration has been entered, including vote eligibility criteria.
#'''Creating list of eligible voters''': SecurePoll is comparing the vote eligibility criteria against the set of all users to create the list of eligible voters. This can take quite some time to run.
#'''Creating list of eligible voters''': SecurePoll is comparing the vote eligibility criteria against the set of all users to create the list of eligible voters. This can take quite some time to run.
−
#'''Ready to commence''': Once the list of eligible voters has been created, SecurePoll waits until the specified start date.
{{highlight|Note: at this point, it should still be possible to make changes - e.g., to delay the vote start by 1 day or something.}}
+
#'''Ready to commence''': Once the list of eligible voters has been created, SecurePoll waits until the specified start date.
#'''Poll deleted''' If, before the voting period has started, the poll was found to be set up incorrectly, election administrators may delete the poll from the interface and recreate it from scratch.
#'''Poll deleted''' If, before the voting period has started, the poll was found to be set up incorrectly, election administrators may delete the poll from the interface and recreate it from scratch.
#'''Voting period''': Voting has commenced. Voting runs from the specified start date for the specified number of days.
#'''Voting period''': Voting has commenced. Voting runs from the specified start date for the specified number of days.
Line 63:
Line 63:
# A list of previous, expired polls
# A list of previous, expired polls
# A big button saying "Create new poll"
# A big button saying "Create new poll"
−
{{highlight|the list of polls in each of those categories should also be publicly viewable, but the big button greyed out for anyone who is not a poll/election admin [[User:Risker|Risker]] ([[User talk:Risker|talk]]) 06:45, 8 June 2014 (UTC)|orange}}
Clicking the "Create new poll" button will take the user to the Poll Design Wizard (see "Poll Design Wizard", below).
Clicking the "Create new poll" button will take the user to the Poll Design Wizard (see "Poll Design Wizard", below).
−
Clicking on the links of any ''pending'' poll will take the user to the design wizard as well, but in this case it will be pre-populated with the current information (e.g., title, candidates, etc.). The admin will be able to edit the parameters of the poll and/or add new candidates.
Clicking on the links of any ''pending'' poll will take the user to the design wizard as well, but in this case it will be pre-populated with the current information (e.g., title, candidates, etc.). The admin will be able to edit the parameters of the poll and/or add new candidates.
Links to expired poll will display tallied results (if already tallied and published). If the poll has not been tallied, it will go to the (currently existing) scrutineer interface.
Links to expired poll will display tallied results (if already tallied and published). If the poll has not been tallied, it will go to the (currently existing) scrutineer interface.
−
{{highlight|So who, exactly, is the poll administrator who has the ability to create the poll? Does this need to be linked to a user rights group? [[User:Risker|Risker]] ([[User talk:Risker|talk]]) 06:43, 8 June 2014 (UTC)|orange}}
==== Poll Design Wizard ====
==== Poll Design Wizard ====
[[File:SecurePoll Wizard.png|thumb|400px|A mockup showing the SecurePoll design wizard screen]]
[[File:SecurePoll Wizard.png|thumb|400px|A mockup showing the SecurePoll design wizard screen]]
(Note that the mockup may not accurately reflect what will be in the final product as it was built by examining poll XML files, which may or may not reflect accurate data structures.)
(Note that the mockup may not accurately reflect what will be in the final product as it was built by examining poll XML files, which may or may not reflect accurate data structures.)
−
−
For the most part, the wizard is self-explanatory (or described in the mockup itself). Some notes:
For the most part, the wizard is self-explanatory (or described in the mockup itself). Some notes:
;Poll Run Dates: Rather than provide two date pickers ("start date" and "end date") which would require a additional error logic (e.g., "is end date before start date") and to reduce confusion ("is this date crossing the UTC dateline?"), a single "start date" picker is used with a pull down to select the ''number'' of days to run the poll.
;Poll Run Dates: Rather than provide two date pickers ("start date" and "end date") which would require a additional error logic (e.g., "is end date before start date") and to reduce confusion ("is this date crossing the UTC dateline?"), a single "start date" picker is used with a pull down to select the ''number'' of days to run the poll.
−
;Admins: The names of the admins are stored in the XML with pipe ("|") separation. Commas are indicated in the field; pipes may be preferred based on allowable MediaWiki usernames. Ideally, this would be a smarter interface (search for username, add to list) to reduce error. However, this interface (the Design Wizard) will only be used by a handful of people (probably less than 10) so a bit of "living dangerously" can be allowed, given the low amount this project has been resourced.
{{highlight| What would these admins have access too? Just the vote tallying/scrutinizing/translations of this election? Compared to the 'user rights' who can create polls? Do the people with the create poll user right have the ability to do all of the above admin stuff too? Or only if they are added to the list? Do these admins have the ability to change the poll config even without the local userright? [[User:Jalexander|Jalexander]] ([[User talk:Jalexander|talk]]) 21:27, 9 April 2014 (UTC)}} {{highlight|Is there a need for this user group? What function would it fulfill? [[User:Philippe (WMF)|Philippe (WMF)]] ([[User talk:Philippe (WMF)|talk]]) 21:51, 9 April 2014 (UTC)|pink}}
+
;Admins: The names of the
poll
admins are stored in the XML with pipe ("|") separation. Commas are indicated in the field; pipes may be preferred based on allowable MediaWiki usernames. Ideally, this would be a smarter interface (search for username, add to list) to reduce error. However, this interface (the Design Wizard) will only be used by a handful of people (probably less than 10) so a bit of "living dangerously" can be allowed, given the low amount this project has been resourced.
;Column Labels: The number and type of column labels are actually dependent on the ''Poll Type'' selected. These fields should swap out display based on the type of poll selected (the mockup assumes a three-point radio range poll). Column labels should be editable but start with a set of sane defaults.
;Column Labels: The number and type of column labels are actually dependent on the ''Poll Type'' selected. These fields should swap out display based on the type of poll selected (the mockup assumes a three-point radio range poll). Column labels should be editable but start with a set of sane defaults.
;Options: Ideally, we can allow for additional fields per option (e.g., "Real Name", "User Name", "Home Wiki", etc.). Given that the project has a low resource allocation, however, this is considered out-of-scope at this time. Clicking the "+ New Option" button will insert a new, blank option into the list. Blank options, when submitted, should be discarded.
;Options: Ideally, we can allow for additional fields per option (e.g., "Real Name", "User Name", "Home Wiki", etc.). Given that the project has a low resource allocation, however, this is considered out-of-scope at this time. Clicking the "+ New Option" button will insert a new, blank option into the list. Blank options, when submitted, should be discarded.
Line 90:
Line 85:
*# Write the poll to the database
*# Write the poll to the database
*# Generate applicable cryptography keys
*# Generate applicable cryptography keys
−
*# Display to the admin the correct private key that will unlock and tally the poll results. This is the key that is sent to the publishing official (a 3rd party) (Currently, this key is generated on the command line and then inserted into the XML).
{{highlight|Is this the 'one and only time' to get this key? [[User:Jalexander|Jalexander]] ([[User talk:Jalexander|talk]]) 21:27, 9 April 2014 (UTC)}}
+
*# Display to the admin the correct private key that will unlock and tally the poll results. This is the key that is sent to the publishing official (a 3rd party) (Currently, this key is generated on the command line and then inserted into the XML).
*# Create a composite log entry that:
*# Create a composite log entry that:
*## Indicates that the poll was created and by whom (single line)
*## Indicates that the poll was created and by whom (single line)
Line 97:
Line 92:
*# Write changes to the database, possibly adding or removing candidates.
*# Write changes to the database, possibly adding or removing candidates.
*# Create a composite log entry that:
*# Create a composite log entry that:
−
*## Indicates that the poll was changed
and by whom (single line) {{highlight|and
what was changed
[[User:Risker|Risker]] ([[User talk:Risker|talk]]) 06:37
,
8
June
2014
(
UTC
)
|orange}}
+
*## Indicates that the poll was changed
,
what was changed,
and
by
whom
(
single line
)
*## Has additional lines for each change that was made
*## Has additional lines for each change that was made
Line 117:
Line 112:
The election administrator must have the option to choose which of the criteria he wishes to use in his election.
The election administrator must have the option to choose which of the criteria he wishes to use in his election.
−
−
{{highlight|Important to note the difference between global/local here that is going to have to be taken into account basically everywhere. [[User:Jalexander|Jalexander]] ([[User talk:Jalexander|talk]]) 21:31, 9 April 2014 (UTC)}}
The logic for the criteria, if they are all used, is 1 ∧ 2 ∧ 3 ∧ 4 ∨ 5; if this formula evaluates to true for a particular user then they are eligible to vote, if it evaluates to false then they are not. This essentially means that in order to be eligible to vote, you must either meet all of the first four criteria ''or'' meet the fifth.
The logic for the criteria, if they are all used, is 1 ∧ 2 ∧ 3 ∧ 4 ∨ 5; if this formula evaluates to true for a particular user then they are eligible to vote, if it evaluates to false then they are not. This essentially means that in order to be eligible to vote, you must either meet all of the first four criteria ''or'' meet the fifth.