fedora-elections is a web application written in python and based on flask. It implements the Range Voting system (http://rangevoting.org).
This project was developed using fedoraproject requests, but, can be easily adapted to other projects. Fedora-elections is integrated with the Fedora Account System (FAS).
Quickly start hacking on elections using the vagrant setup that is included in the elections repo is super simple.
First, install Vagrant and the vagrant-libvirt plugin from the official Fedora repos:
$ sudo dnf install vagrant vagrant-libvirt
The elections vagrant setup uses vagrant-sshfs for syncing files between your host and the vagrant dev machine. vagrant-sshfs is not in the Fedora repos (yet), so we install the vagrant-sshfs plugin from dustymabe's COPR repo:
$ sudo dnf copr enable dustymabe/vagrant-sshfs $ sudo dnf install vagrant-sshfs
Now, from within main directory (the one with the Vagrantfile in it) of your git
checkout of elections, run the vagrant up
command to provision your dev
environment:
$ vagrant up
When this command is completed (it may take a while) you will be able to ssh
into your dev VM with vagrant ssh
and then run the command to start the
elections server:
$ vagrant ssh [vagrant@localhost ~]$ pushd /vagrant/; ./runserver.py --host "0.0.0.0";
Once that is running, simply go to http://localhost:5002/ in your browser on your host to see your running elections test instance.
The project is hosted on https://fedorahosted.org/
More precisely at: https://fedorahosted.org/elections
You can obtain the code via:
git clone http://git.fedorahosted.org/git/elections.git
For commodity reason, a clone is available on github: https://github.com/fedora-infra/elections
An example configuration file is provided at: files/fedora-elections.cfg
Run:
python createdb.py
How to start without apache on http://127.0.0.1:5000 (useful for development):
./runserver
How to start with http
Next copy the file fedora-elections.conf
file to your apache conf.d
directory:
sudo cp files/fedora-elections.conf /etc/httpd/conf.d/.
Place the file fedora-elections.wsgi
for example in /var/www
sudo cp files/fedora-elections.wsgi /var/www
Adjust the apache configuration file to point to it
Adjust the wsgi file installed in /var/www to point to fedora_elections
Place the fedora-elections configuration file in
/etc/fedora-elections/fedora-elections.cfg
sudo mkdir -p /etc/fedora-elections/ sudo cp files/fedora-elections.cfg /etc/fedora-elections/
Restart apache:
sudo /etc/init.d/httpd restart
How to contribute
If you find bug or want to propose ideas or stuff to be implemented or if you are interested to became a developer for this project just ask on #fedora-admin irc channel on irc.freenode.net or use our web site https://fedorahosted.org/elections.
fedora-elections is licenced under GPL v2.