The committees of University societies are elected. Societies also need a convenient way to vote on motions. Running elections ethically and anonymously can be a challenge, so we have created an app to do this.

What it does

This app allows anyone to run an election for a position or motion. A unique code is distributed by the society to the electorate, who then can use either the mobile app or web interface to cast their vote. The app allows choice in the voting type, between a binary vote, binary vote with abstain, and soon there will be AV as well as STV.

How we built it

The backend is build using javascript, which collects the data in a Firestore database and tallies the anonymous votes. The android app was built using android studio with Firebase libraries to send data anonymously to the database. The voting admin uses Google, Facebook and GitHub authentication.

Challenges we ran into

By far the largest challenge was dealing with Firestore’s very limited documentation, which mostly consists of examples of implementation that often lack context. This made implementing the database very difficult, especially reading the data from the android app.

Accomplishments that we're proud of

What we learned

Firebase is closely regarded secret, whose documentation is a mystery. Nevertheless we learnt how authenticate anonymously and how to write from android to Firebase. We also gained better understanding of git version control within a team environment, using GitKraken.

What's next for

The next step for the web app will be to implement the AV and STV voting logic. For the android app, to finish getting the app to properly read from the Firebase.

Built With

Share this project: