Snake Eyes Voting System Requirements

= 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 =
 * Create a Test environment to allow for functional testing of Voting System X components
 * 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
 * System sets a poll as closed at midnight on the poll close date
 * System will not accept votes after a poll has closed. System does not inform to voter of this.
 * System disables all unused voting form keys when the poll closes.
 * All front end business logic will be replicated in the business logic code

= Voter Features =
 * 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