/elekto

Software for the Elekto online elections system

Primary LanguagePythonApache License 2.0Apache-2.0

banner.js

elekto is a flask based web application for conducting online elections. It is built specifically for opensource organisations to help run them steering and community elections.

Elekto was inspired by the long-running CIVS project and built to conduct kubernetes steering and community elections. The project was created as the part of The Linux Foundation's Internship and now it's hosted and maintained by Cloud Native Computing Foundation.

Elekto is currently used by Kubernetes, Knative and more.

Features

Elekto was designed to support the following:

  • 100% GitOps workflow for configuration and election administration
  • 100% Oauth-driven workflow for voters (no emails)
  • Preference election voting (starting with condorcet)
  • Multiple elections for the same organization
  • Responsive web design
  • Secret ballot voting

Getting Started

See our documentation on elekto.io.

Create an .env file from .env.example by running cp .env.example .env and update the necessary entires (see here for more information on env parameters).

If you want to run elekto right away there are two options:

You have a working conda environment.

Create an elekto environment

conda env create -f environment.yml

Run the application using

python console run

You have a working Docker environment.

You can run this application inside a Docker container. This approach doesn't require you to install any dependencies other than Docker.

Build the docker image

docker build -f dev.Dockerfile -t elekto:dev .

Run the built image

docker run -d -p 5000:5000 --name="eleko" elekto:dev

Open your web browser and type http://localhost:5000 in your navigation bar, This opens a local instance of the elekto application's login page.

For the full story, head over to the developer's documentation.

Getting Help

The elekto project is maintained by Manish Sahani and Josh Berkus, Reach out to us one way or another.

Contributing

We're excited that you're interested in contributing to the elekto software! Check out the resources below to get started.

Please refer to CONTRIBUTING for more information on how to best contributed to contribute to elekto.

Support

Your help and feedback is always welcome!

If you find an issue let us know, either by clicking the Create Issue on any of the website pages, or by directly opening an issue here in the repo.