Inspiration
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 BallotApp.tech
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
- android
- angular.js
- firebase
- semantic-ui
Log in or sign up for Devpost to join the conversation.