Skip to main content

Wahlfang

A self-hostable online voting tool developed to include all the features you would need to hold any online election you can dream of

Developed by StuStaNet Wahlfang is a small-ish Django project which aims at being an easy to use solution for online elections. From simple one-time votes about where to grab a coffee to large and long meetings with multiple different votes and elections - Wahlfang does it all.

If you would like a new feature or have a bug to report please open an issue.

Getting Started

To setup your own wahlfang instance for productive use see deploying.

Metrics

In the default configuration wahlfang exports some internal application statistics as Prometheus metrics at the endpoint /metrics. This behaviour can be turned off by settings EXPORT_PROMETHEUS_METRICS = False in the application settings.

We use the django-prometheus project to export our exports.

Contributing

To just get the current version up and running simply

$ git clone https://gitlab.stusta.de/stustanet/wahlfang.git
$ cd wahlfang
$ pip3 install -r requirements.txt
$ pip3 install -r requirements_dev.txt
$ export WAHLFANG_DEBUG=True
$ export PYTHONPATH="$PYTHONPATH:."
$ python3 wahlfang/manage.py migrate
$ python3 wahlfang/manage.py runserver localhost:8000

Creating a local election management user:

$ python3 wahlfang/manage.py create_admin

Login to the management interface running at http://127.0.0.1:8000/management/.

Run the linting and test suite

$ make lint
$ make test

If some model changed, you might have to make and/or apply migrations again:

$ python3 wahlfang/manage.py makemigrations
$ python3 wahlfang/manage.py migrate

Don't forget to add the new migration file to git. If the CI pipeline fails this is most likely the reason for it.

Releasing

The release process is automated in the gitlab ci.

To make a new release bump the package version number in wahlfang.__init__.py and tag the commit with the same version number. The CI will then build the package, publish it as a gitlab release and push it to pypi.

The pypi credentials must be set in the gitlab CI settings via the env variables TWINE_USERNAME and TWINE_PASSWORD.

Development References

Metadata

Release files for wahlfang 1.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wahlfang 1.0.7
File Size Uploaded
wahlfang-1.0.7.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for wahlfang 1.0.7
File Interpreter ABI Platform
wahlfang-1.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / wahlfang-1.0.7.tar.gz

Download URL wahlfang-1.0.7.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
de771543ebd74139863764fbde1f6ab41a0f9d4f8ed525e796a369e62c4e809f
BLAKE2b-256 checksum
How to use checksums
ba0f4ecf670d4805bf25d61096cf9fa815ef06b8253191818cf912a85c4fdc5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.12

Release files / wahlfang-1.0.7-py3-none-any.whl

Download URL wahlfang-1.0.7-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
0466ffa148023cc2116b7cdcab44feb1c4ece5781d220afa96a731b4ff90d0b7
BLAKE2b-256 checksum
How to use checksums
9b182f7a27acef57037046c996662cef9728506060be3103c2a1874b37fb2f0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.12

Release history Release notifications | RSS feed

This release

1.0.7 This release

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page