Giter Club home page Giter Club logo

wahlfang's Introduction

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

wahlfang's People

Contributors

bcsol avatar boi4 avatar juelg avatar julienschmidt avatar leofah avatar mikonse avatar strassan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

bonomali

wahlfang's Issues

Instant run-off voting :)

Online votes are time consuming when additional run-offs are needed.
If instant run-off voting would be supported, this process can be shortened to exactly one voting, while having the benefits of a reduced spoiler effect.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.