Snake Eyes Voting System Requirements

From Pirate Party Australia Wiki
Jump to navigation Jump to search

Admin

  • Web page to create and control of a poll
    • Security Locked to Poll Admin only
    • Create poll
    • Set poll start date
    • Set poll end date
    • Add and modify poll motions
    • Add and modify poll voting
  • Web pages to control poll participants
    • Security Locked to Poll Admin only
    • Add new participant
    • Bulk upload of participant
      • Possibly a web form which will accept a CSV list
    • Display existing participants
    • Delete existing participants
    • Full audit trail for participant information changes to be kept
      • Possibly as a history table.
      • Need to note date, time, userid, and a copy of current data before it is changed when a row is deleted or updated in the participant table.
      • Possibly using a trigger on the participant table.
  • Audit view of participants - full history of participant information
    • Possibly as a join of participants and participants history tables sorted by participant name showing audit information including who changed the data and when
    • At a minimum a straight dump-and-display is needed. Being able to filter the display would be useful.

Architecture and Features

Required

  • System needs to have a Test' environment and a Production environment
  1. Allows for functional testing of Snake Eyes Voting System components
  2. Allows for running polls in Production without possibility of polluting with Test data
  3. Preferably in such a way that functional testing can be done completely separate from the production environment
  4. Preferably in such a way that multiple people can access the established environments
  • Poll Control
  1. A poll must have a set closing date set when the poll is opened
  2. System sets a poll as closed at midnight on the poll close date
  3. System will not accept votes after a poll has closed. System does not inform to voter of this.
  4. System disables all unused voting form keys when the poll closes.
  • User Interface
  1. All front end business logic will be replicated in the business logic code
  2. Secure input method for voting page
  3. Secure admin pages
  4. Secure access to anonymous form of voting data for scrutineers
  • Data Storage
  1. All poll data to be stored in a secure database
  2. No direct access allowed to data except via secure channels
  • Data Validation
  1. Validation of voter email addresses (check that email addresses are real and exist)
  2. Verification of voter email addresses (ping users to confirm email address is real)
  • Poll Administrator access
  1. Add Poll Manager
  2. End Poll Manager
    1. Noting that the Poll Manager role data is not deleted. Mark as ended. Keep data for life of system.
  • Delete Poll Data
  1. Data to be kept for x years before it can be deleted.
  2. Only a Poll Manager can delete poll data
  • Poll Statistics
  1. Number of voters invited to vote
  2. Number of votes received
  3. Poll open date
  4. Poll close date
  5. Poll motions

Optional

  • System to detect voters who have have not voted and two days before the poll closes the system sends a reminder to those tardy voters

Voter Features

Required

  • System will send an email to each voter containing a URL specific for the voter for a specific poll
  • Voter interface will be a web page that is accessible in a modern browser
  • Front end shall assist the user as much as possible where multiple options are allowed and where specific types of input are required

Optional

  • JavaScript in the front end to assist the voter in using the voting form
  • Tooltips and the like in HTML to provide information and help for the voter