A voting website built for elections in an online gaming community (the nation of Finland on EarthMC, a Minecraft geopolitics server). It implements instant-runoff voting: voters rank candidates, and candidates are eliminated in rounds with their votes redistributed until a winner emerges.
- Frontend (HTML/CSS/JavaScript): Jevk
- Backend (Python/Flask, served with Waitress): Emerald
- Election configuration via
settings.json(candidates, opening/closing times as Unix timestamps)
- Install the requirements: Flask and Waitress
- Add candidate names and opening/closing times to
settings.json(see the example file) - For local testing run
application.py; for deployment runwaitress_server.py, or usecli.pyand thestartcommand
The first version was built in about 2.5 days for a live election deadline. Things I would improve for production use:
- HTTPS support (currently HTTP only)
- Input validation and automated tests
- Running on port 80 on Linux requires elevated permissions
Bug reports: open an issue