Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.33 KB

README.md

File metadata and controls

34 lines (25 loc) · 1.33 KB

RCVElectionSystem

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.

Architecture

  • Frontend (HTML/CSS/JavaScript): Jevk
  • Backend (Python/Flask, served with Waitress): Emerald
  • Election configuration via settings.json (candidates, opening/closing times as Unix timestamps)

Running it

  1. Install the requirements: Flask and Waitress
  2. Add candidate names and opening/closing times to settings.json (see the example file)
  3. For local testing run application.py; for deployment run waitress_server.py, or use cli.py and the start command

Known limitations

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