Skip to main content

Libre alternative to Doodle

Project description

https://github.com/hartwork/jawanndenn/workflows/Build%20and%20test%20using%20Docker/badge.svg

What is jawanndenn?

Screenshot of poll creation in jawanndenn

jawanndenn is a simple web application to schedule meetings and run polls, a libre alternative to Doodle. It is using the following technology:

jawanndenn is libre software developed by Sebastian Pipping. The server code is licensed under the GNU Affero GPL license version 3 or later whereas the client code is licensed under the GNU GPL license version 3 or later.

Please report bugs and let me know if you like it.

Installation

To install the latest release without cloning the Git repository:

# pip3 install jawanndenn --user

To install from a Git clone:

# ./setup.py install --user

Deployment with docker-compose

Create a simple file .env like this one:

JAWANNDENN_POSTGRES_NAME=jawanndenn
JAWANNDENN_POSTGRES_USER=jawanndenn
JAWANNDENN_POSTGRES_PASSWORD=dEb2PIcinemA8poH
JAWANNDENN_SECRET_KEY=606ea88f183a27919d5c27ec7f948906d23fdd7821684eb59e8bcf7377e3853b

Make sure to use your own values!

You can then build and run a docker image using docker-compose up --build.

PostgreSQL data is saved to ~/.jawanndenn-docker-pgdata/ on the host system. The app is served on localhost:54080.

Deployment with Apache mod_wsgi

Deployment with mod_wsgi is possible but not recommended, e.g. because it is difficult to pass environment variables to Django using mod_wsgi. To make it work, the SetEnv directive, file jawanndenn/wsgi.py, and this StackOverflow answer may be of use. jawanndenn needs these variables:

  • JAWANNDENN_POSTGRES_NAME

  • JAWANNDENN_POSTGRES_USER

  • JAWANNDENN_POSTGRES_PASSWORD

  • JAWANNDENN_SECRET_KEY

Please check the the related documentation of Django, too.

Feel free to file a support ticket or drop me a mail, if you cannot get it to work.

Command line usage

When installed, invocation is as simple as

# jawanndenn

During development, you may want to run jawanndenn from the Git clone using

# PYTHONPATH=. python3 -m jawanndenn --debug

Currently supported arguments are:

# jawanndenn --help
usage: jawanndenn [-h] [--debug] [--host HOST] [--port PORT]
                  [--url-prefix PATH] [--database-sqlite3 FILE]
                  [--django-secret-key-file FILE] [--max-polls COUNT]
                  [--max-votes-per-poll COUNT] [--dumpdata]
                  [--loaddata FILE.json]

optional arguments:
  -h, --help            show this help message and exit
  --debug               Enable debug mode (default: disabled)
  --host HOST           Hostname or IP address to listen at (default:
                        127.0.0.1)
  --port PORT           Port to listen at (default: 8080)
  --url-prefix PATH     Path to prepend to URLs (default: "")
  --database-sqlite3 FILE
                        File to write the database to (default:
                        ~/jawanndenn.sqlite3)
  --django-secret-key-file FILE
                        File to use for Django secret key data (default:
                        ~/jawanndenn.secret_key)

limit configuration:
  --max-polls COUNT     Maximum number of polls total (default: 1000)
  --max-votes-per-poll COUNT
                        Maximum number of votes per poll (default: 40)

data import/export arguments:
  --dumpdata            Dump a JSON export of the database to standard output,
                        then quit.
  --loaddata FILE.json  Load a JSON export of the database from FILE.json,
                        then quit.

Migrating data from jawanndenn 1.x to 2.x

Migration takes four steps:

  1. Update to the latest version of jawanndenn 1.x, e.g. by running: pip2 install --upgrade 'jawanndenn<2'; the JSON data export was first introduced with release 1.6.3.

  2. Export existing polls:

    1. If you’re using the commend line app: python2 -m jawanndenn --dumpdata > dump.json

    2. If you’re using docker-compose: docker-compose run -T jawanndenn --database-pickle /data/polls.pickle --dumpdata > dump.json

  3. Deploy latest jawanndenn 2.x somewhere (as described above) or just pip3 install 'jawanndenn>=2' it somewhere

  4. Import the JSON dump created in step (2):

    1. If you’re using the commend line app: python3 -m jawanndenn --loaddata dump.json

    2. If you’re using docker-compose: docker-compose run -T jawanndenn sh -c 'cat > /tmp/dump.json && DJANGO_SETTINGS_MODULE=jawanndenn.settings python3 -m django loaddata /tmp/dump.json' < dump.json

Goals

Please check out the list of upcoming features.

Non-goals

  • Use of heavy frontend frameworks: building blocks only

  • Read availability from calendars

Thanks

Special thanks to Arne Maier (@KordonDev) for reporting an XSS vulnerability, responsibly.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jawanndenn-2.4.3.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

jawanndenn-2.4.3-py3-none-any.whl (3.6 MB view details)

Uploaded Python 3

File details

Details for the file jawanndenn-2.4.3.tar.gz.

File metadata

  • Download URL: jawanndenn-2.4.3.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.10

File hashes

Hashes for jawanndenn-2.4.3.tar.gz
Algorithm Hash digest
SHA256 0961f0c31aeb24cf1c4f20fdbf7314c9908aa1ad683fcd31f8f5ae40eaedfc6e
MD5 23f29569b0593d54b49c8be2ac4f654b
BLAKE2b-256 6b2894de478d984c09337b0e24d83b832285d7dff8ff5b64192b2394975f0697

See more details on using hashes here.

File details

Details for the file jawanndenn-2.4.3-py3-none-any.whl.

File metadata

  • Download URL: jawanndenn-2.4.3-py3-none-any.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.10

File hashes

Hashes for jawanndenn-2.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5ddfa078315f754275bf5b62796b5ccbc41484cce703eaee48be5663f60058d0
MD5 f441885a097e528090a067401e0b19cf
BLAKE2b-256 c4431a85b9f527e8ba6f453c8edbef3d69eb9e1895e9fcaefb45cc512ab1dc70

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page