DEV Community

Cover image for Student Council Elections in the Age of COVID

Student Council Elections in the Age of COVID

retrocraft profile image James Ah Yong Originally published at Medium ・4 min read

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 website mockup

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.

Vote securely with Fraser Votes

The most important aspect of every election is ensuring the security of voters. End-to-end PGP encryption was used to ensure data security. Ballots were encrypted in-browser by voters and decrypted in-browser 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

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.

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 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.

GitHub logo Fraser-Votes / client

Fraser Votes web app.

Fraser Votes

Gatsby Build and Firebase Deploy

Web app to facilitate Student Elections. More secure than American voting machines!


  • PGP Encrypted Voting
  • Customize electable positions with drag + drop courtesty of react-beautiful-dnd
  • Candidate management (add, remove, and edit candidates with ease)
  • Custom dashboard with key analytics
  • Ballots are counted locally, your private key never touches our servers once!
  • Scalable and extensible: Fraser Votes uses Firebase Firestore
  • Fully mobile responsive

I originally published this article on Medium.

Discussion (0)

Editor guide