The app takes ranking ballots collected with Microsoft Forms within an organisation, and calculates the results using ranked pairs method (used by nerds, instead of the Microsoft Forms built-in point-based method) and visualises the results. It optionally checks against a list of eligible voters in an organisation.
To learn more about the ranked pairs method, see ranked pairs on Wikipedia. To interactively learn about different voting methods, see Nicky Case's To Build a Better Ballot (it does not go into the details of the ranked pairs method though).
See voting setup instructions.
- Copy
.env.prod
to.env
and fill in the required values - Run
docker-compose up -d
- Copy
.env.prod
to.env
and fill in the required values - Run
docker-compose up
- Go to
backend
folder - Create and activate a Python virtual environment (Python 3.10 or later)
- Run
pip install -r requirements.txt
- Copy
.env.example
to.env
and fill in the required values - Create
data
folder - Run
fastapi dev main.py
- Go to
voting-webapp-frontend
folder - Run
npm install --force
- Run
npm run dev
Live demo. Please do not upload any sensitive data.
- Use D3.js or similar for visualising the results