A web application for scheduling meetings and general polling.
  • Python 42%
  • HTML 38.9%
  • CSS 6.7%
  • SCSS 5.7%
  • JavaScript 4.9%
  • Other 1.8%
Find a file
ldr 8ad22679f5 Quick fix
Oh I forgot about that one...

(Is this how you write commit messages?)
2026-01-31 01:06:03 +01:00
.github/workflows Add build_image workflow 2023-09-28 11:35:13 +02:00
bitpoll Quick fix 2026-01-31 01:06:03 +01:00
docker_files Fix deployment issues 2024-01-22 12:29:55 +01:00
locale Add gender neutral translations 2025-02-05 22:49:14 +01:00
.gitignore add run folder to gitignore 2022-06-19 22:30:14 +02:00
.gitmodules update django-simple-csp to new url and version 2017-07-11 17:50:32 +02:00
compose.yaml add docker compose file for easier testing 2023-05-16 21:58:12 +00:00
Dockerfile Some Hotfixes 2025-03-05 15:15:15 +01:00
LICENSE Add LICENSE 2017-05-15 15:10:12 +02:00
manage.py Fix settings and urlconf after rename 2017-07-12 16:44:50 +02:00
README.md Fixed markdown-warnings 2024-10-30 15:22:29 +01:00
requirements-production.in Improve/fix deploymint 2024-01-12 17:29:00 +01:00
requirements-production.txt Some Hotfixes 2025-03-05 15:15:15 +01:00
requirements.in Update requirements 2024-01-12 16:56:22 +01:00
requirements.txt Bumped requirements 2025-01-29 16:44:36 +01:00

Bitpoll

Bitpoll is a software to conduct polls about Dates, Times or general Questions.

This is a new version of the Dudel from opatut (https://github.com/opatut/dudel) used on https://bitpoll.de, rewritten using the Django framework as a backend.

Using Docker

The docker image is built automatically from the current master branch. You can use the following commands to set up the docker container:

Create a directory for static and config files:

mkdir -p run/{log,static,config}

Get the example settings file and adapt it according to your needs:

wget https://raw.githubusercontent.com/fsinfuhh/Bitpoll/master/bitpoll/settings_local.sample.py -O run/config/settings.py

It is important to change at least the database settings, secret key, and allowed hosts.

Start the docker container:

docker run -a stdout -a stderr --rm --name bitpoll -p 3008:3008 -p 3009:3009 --volume ./run/static:/opt/static --volume ./run/config:/opt/config ghcr.io/fsinfuhh/bitpoll

The container is reachable on port 3009. If you use an external web server, you can use uwsgi traffic on port 3008 and serve the static assets from run/static at /static/.

Manual Install

Get the code:

git clone https://github.com/fsinfuhh/Bitpoll

Generate a Python virtualenv and install dependencies:

virtualenv -p $(which python3) .pyenv
source .pyenv/bin/activate
pip install -r requirements.txt

Copy bitpoll/settings_local.sample.py to bitpoll/settings_local.py and customize the local settings.

Initialise Database:

./manage.py migrate

Run Testserver:

./manage.py runserver

Production

In production Senty is used for error reporting. django-auth-ldap is used vor login via ldap uwsgi to serve the app

Install Dependencies for Production:

sudo apt install g++ make python3-psycopg2 python3-ldap3 gettext gcc python3-dev libldap2-dev libsasl2-dev

Install Python Dependencies

pip install -r requirements-production.txt

Configure examples are in settings_local.py

our used uwsgi config can be found at https://github.com/fsinfuhh/mafiasi-rkt/blob/master/bitpoll/uwsgi-bitpoll.ini

For Production systems it is nessesarry to run

./manage.py compilemessages
./manage.py collectstatic

Management of Dependencies

We use pip-tools to manage the dependencies. After modification or the requirements*.in files or for updates of packages run

pip-compile --upgrade --output-file requirements.txt requirements.in
pip-compile --upgrade --output-file requirements-production.txt  requirements-production.in requirements.in

to sync your enviroment with the requirements.txt just run

pip-sync

this will install/deinstall dependencies so that the virtualenv is matching the requirements file