Electronic Election Application Test.
I have created a new website function to allow electronic voting for BCGA elections.
This tool allows all members to vote on various executive positions (and eventually referendum questions) and may be used for contests also.
When we started to determine the requirements for the application, some 'must haves' were outlined, and the complexity of the application became apparent as it was being developed and lot of scenarios presented themselves for consideration.
1) Privacy. Your actual vote data is private, the only link between you and your vote is the fact that you voted. The details of your vote are encrypted in a way that there is no way to associate your vote, to you unless you have the password you entered when you created your vote.
2) Auditing. When you vote, you enter a password that is encrypted and saved with your vote record. This is a 1-way encryption, using a 256 bit RIJNDAEL encryption. Only the original voter can re-enter their password to see if it matches their original password used to vote. This password is used to create an encrypted hash of your vote data that is stored with your vote. If you log on, and 'check your vote' you must reenter your password, your ID is decrypted, and your votes are re-hashed and checked against the original vote hash, if it does not match, it means someone modified the database, and you would inform the admin. We also hash our own encrypted version of a vote so we can validate the vote data has not changed.
3) Multiple Position Voting. A candidate may decide to run in more than one position. If that person is elected in a 'higher' position then they may not be voted in any following position. If a position has candidates that 'could be elected' in previous positions you are offered a 'ranking' of your choices. This way you do not lose a vote, you pick your first choice, second choice, third choice etc. The system will cast your vote for the next 'available' candidates in the order of your preference.
4) Acclamation. If there is only 1 person running for the position, they automatically win that vote.
5) Multiple Seats. In the directorship there are multiple seats available. In this case you rank your choices and the system will cast your vote for your top available candidates.
The software is not fully complete.
Functions that work:
Election Set up
Not done yet:
I have set up an election test with test candidates to collect some test data, and insure the logic to collect and tally votes works as it should On the left menu you will see 'BCGA Election' Please click on the link and vote for the 'General Election Test'.
Any feedback would be greatly appreciated.
I may need to delete the election data occasionally to fix functions, if the system shows that you 'can vote' for any particular election, you may go ahead.
I will also Tally them, and show the results so you may see that function, as well as implement the referendum question voting, again experiment. Try to vote twice etc.
Please provide feedback in this forum.