Skip to content

jevk/RCVElectionSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Instant-runoff (ranked-choice) voting web app built for an online gaming community. Frontend by me, Python/Flask backend by a collaborator.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors