Voting System High Level Requirements

= Goal: "Online Voting for PPAU" =

Historically voting systems have placed specific controls and conditions upon voting participants and the recording and counting of votes to ensure that the voting system is reliable, auditable and reusable. With the introduction of the Internet and the advances made in technology supporting online security it is now possible to execute the same functions online as occur in the physical world. The Voting System a the first step towards true digital democracy providing the means for the PPAU to vote on party issues regardless of their physical location and status.

= High Level Requirements = System must be able to support multiple polls. Notification method for voters is email.

Roles

 * Poll manager: Manages polls. Can create new polls, open a poll, close a poll. Can view any system data. Can modify poll related and voter related data.
 * Voter: Votes for items in polls
 * System: Non-user functions written in code. Sends notifications to voters, receives voter response and records voting information.
 * System Administrator: Users responsible for ensuring that system code, infrastructure and services are operational and running per specifications.

Security

 * Only the poll manager can read information stored by the voting system.
 * Only the poll manager can create, modify, open or close a poll.
 * Only the system can write voting information which is received via email.
 * System must prevent any single voter from voting twice.
 * System must prevent non-voters from voting.
 * Once a poll has been closed the poll data can not be modified.
 * Changes to user data must be logged.

Data

 * System must store minimal key data about voters.
 * System must be cable of running multiple polls.
 * A poll may have one or more Constitutional motions.
 * A poll may have one or more Platform motions.
 * A motion must be able to contain HTML.