Skip to content

Latest commit

 

History

History
39 lines (27 loc) · 2.25 KB

README.md

File metadata and controls

39 lines (27 loc) · 2.25 KB

FraserVotes 2024

A secure online voting platform for student council elections. This was used for John Fraser SS's SAC elections in 2024. The web app is intended to be used on a "kiosk" device in a voting station, substituting a regular ballot.

Key Points

  • PGP encryption for all ballots
  • Local decryption of ballots, keeping your private key secure as it stays on your computer
  • Fully mobile responsive
  • Stack: React/Next.js, Typescript, Bun, MongoDB, GraphQL/Apollo Server, Firebase Authentication

Photos

Deployment on Election Day

20240524_124153

User Interface

Check-in page for volunteers Check-in page, which allows volunteers to open a ballot for a student voter using their own volunteer key (4 random words) and the voter's student number


Ballot page for voters Ballot page, where students can input their choices for the next year's student council

Admin Pages

Overview page for admins Overview page, displaying how many people have voted, as well as a list for who has/hasn't voted (NOTE: ballots are not associated to student numbers, so there is no way of finding a voter's ballot)


Ballot count page for admins Ballot count page, where the counting process can be started for all ballots. This action can only be completed if voting is closed, and requires the voting administrator's private key. As mentioned before, the counting happens locally, and your private key does not leave your computer.


Settings page for admins Settings page, where admins can start/stop voting, change the public key, and reset all data on the platform. Note that the last two actions can only be completed if voting is closed.

Copyright

This project is under the GNU General Public License, version 3. More info is available in LICENSE