Student Council Elections in the Age of COVID

On May 22, 2020, the 1,600 students of John Fraser Secondary School would have lined up in the atrium to cast their ballots for next year’s Student Activity Council (SAC) executives. In previous years, it was a crowded affair. This year, crowds are illegal.

Fraser Votes was initially conceived in late 2019 as part of the school’s effort to transition to digital infrastructure. JFSS had already rolled out digital timetables, obsoleting the thousands of printed timetables distributed at the start of every term. We created the system with our values in mind: democracy and student's voice.

As a novel student-built election management solution, there were challenges. Nevertheless, 44% of the student population successfully cast their digital vote — a 165% year-over-year increase.


Fraser Votes is a React/Gatsby-based webapp hosted on Google’s Firebase platform. Candidate information, voter rolls, and ballots were stored in Firestore. Google’s Canadian northamerica-northeast1 location allowed us to be compliant with local government data location policies.

Want to read this story later? Save it in Journal.

End-to-end PGP encryption was used to ensure data security

The most important aspect of every election is ensuring the security of voters. Ballots were encrypted locally and decrypted locally by an administrator. As key-holders are the only people able to read ballots, this proved to be more secure than paper ballots, where multiple students tally votes by hand.

Plausible and Sentry were used to monitor the election in real-time. We avoided using Firebase/Google Analytics due to privacy concerns. Plausible reported 1,400 unique visitors over the voting period and 48.3% of those voters casting their ballots.

Using Sentry for error monitoring proved extremely useful during the voting period. Our team pushed a number of small but significant hotfixes due to reported errors from Sentry.

Turnout and Promotion

Our goal was to hear the voice of students. The 2020 SAC election had the highest recorded turnout and it wasn’t even close. Fraser Votes recorded 717 ballots representing 43.8% of the student electorate. For context, the 2019 federal election had 66% voter turnout. However, Mississauga is known for a lack of civic engagement. The last municipal election had a 27% turnout.

The 2019 SAC election, held on paper, recorded 271 votes (17% turnout). Digital voting enabled 2.6 times as many students to have their voices heard. We achieved our goal and moved the bar for student voting from below the abysmal city trends towards the national civic participation level.

In a community with data-proven civic apathy, it is imperative to encourage the next generation to vote.

Sample promotional material used over the campaign period

Leading up to election day, we ran promotional campaigns on social media alongside the candidates and the council. We also had the school administration ask teachers to promote Fraser Votes on their respective online learning pages like Google Classroom and D2L. Instagram (14%) and Google (8%) were the two most common referrers reported to analytics. These numbers should be taken with a grain of salt; much of the promotional material used verbiage like “go to” leading to a disproportionate amount of non-referred users.

Unfortunately, some students complained that social media blasting was excessive. A balance must be met next year to encourage voting without turning away potential voters in frustration.

Surprises and Next Steps

The deployment of Fraser Votes went smoothly, especially considering that serious development started around six weeks before the election (once we realized COVID lockdowns meant we had to use Fraser Votes).

A minor issue we encountered was an incompatibility with IE11 resulting in a SyntaxError. This only affected eight users and we notified voters on social media to use other browsers. For the future, legacy browser compatibility could be more heavily considered.

We also encountered a weird issue with YouTube, where we hosted candidates’ personal statement videos. A minority of the videos were stuck at 144p and would not play in higher quality. This can be solved by reuploading the videos using a different user account but requires further research to identify the root cause for future elections.

Even though we saved paper by moving to digital ballots, if we are to be socially responsible, we have to understand the environmental impacts of datacentres and the internet. To offset our ~85 kg CO₂e impact, we purchased carbon offsets from Planetair to support reforestation efforts in Quebec, the same location as the Google datacentre we used.

The importance of democratic participation cannot be understated. We are proud to have been able to facilitate an opportunity for students to have their voices heard and experience civic participation. The coronavirus pandemic has led to drastic changes in the way schools operate, in many ways detrimental to students’ learning. But some changes, once in a while, are for good.

We hope that the progress made with this year’s election is the beginning of a trend towards civic engagement for John Fraser and the community at large.

Fraser Votes is a project of myself, David Li, and Jason. It’s open-source on GitHub and supported by the generous support of #RisingYouth, a project by TakingITGlobal and funded by the Canadian government. If you’d like to use Fraser Votes in your student body election, contact us at or on Instagram @fraservotes.

📝 Save this story in Journal.

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
James Ah Yong

James Ah Yong

some uni kid with too much time in his life.