because paper ballots are so 2019
Imagine this. You're a somehow still functioning student organization of computer nerds. You've been using paper ballots to vote for the last 40 years. But then, disaster strikes! Global ligma COVID takes over, and if you so much look at a slip of paper, The Virus will take you. Enter vote, a 🚀 blazingly fast 🚀... Wait. This is Go, not Rust. It can't be blazingly fast. Uhh... Enter vote, a reasonably fast voting app with less memory safety than if it was written in Rust. But hey, gotta Pokemon Go to the polls somehow, right? Right...? This is why I'm a software engineer and not a comedian.
Anyways, now we can vote online. It's cool, I guess? We have things such as:
- Server-side rendering. That's right, this site (should) (mostly) work without JavaScript.
- Server Sent Events for real-time vote results
Limitedvoting options. It's now just as good as Google Forms, but a lot less safe! That's what you get when a bored college student does this in their free time
You'll need to set up these values in your environment. Ask an RTP for OIDC credentials. A docker-compose file is provided for convenience. Otherwise, I trust you to figure it out!
VOTE_HOST=http://localhost:8080
VOTE_JWT_SECRET=
VOTE_MONGODB_URI=
VOTE_OIDC_ID=vote
VOTE_OIDC_SECRET=
VOTE_STATE=
- Custom vote options
- Write-in votes
- Ranked choice voting
- Show options that got no votes
- Allow results to be hidden until a vote is closed
- Don't let the user fuck it up
- Show eboard polls with a higher priority