projects

FraserVotes

2024

A secure online voting platform built for John Fraser Secondary School's 2024 student council elections, replacing paper ballots with kiosks run by volunteers. It ran live on May 24th, 2024, collecting around 600 ballots.

Cardboard voting booths with Chromebooks set up in a school hallway on election day

How ballots stay secret

Every ballot is encrypted with PGP before it is written to the database. The private key never reaches the server, so decryption happens locally on an administrator's machine when counting begins. A ballot in storage cannot be tied back to the student who cast it.

What it does

  • Responsive voter interface for casting a ballot
  • Voting portal authentication restricted to volunteers: prevent voting outside a kiosk
  • Admin dashboard showing turnout and who has voted (but never who they voted for)
  • Local ballot counting, gated on administrator authentication
  • Controls for opening and closing the voting period

Next.js · React · TypeScript · Bun · Apollo GraphQL · MongoDB · Firebase Auth