Libre alternative to Doodle
Project description
What is jawanndenn?
jawanndenn is a simple web application to schedule meetings and run polls, a libre alternative to Doodle. It is written in Python and JavaScript using
Django (with Django Ratelimit and django-redis)
Gunicorn (with gunicorn-color-logger)
Materialize Material Design CSS/JS
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:
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.
Export existing polls:
If you’re using the commend line app: python2 -m jawanndenn --dumpdata > dump.json
If you’re using docker-compose: docker-compose run -T jawanndenn --database-pickle /data/polls.pickle --dumpdata > dump.json
Deploy latest jawanndenn 2.x somewhere (as described above) or just pip3 install 'jawanndenn>=2' it somewhere
Import the JSON dump created in step (2):
If you’re using the commend line app: python3 -m jawanndenn --loaddata dump.json
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
Libre software to host yourself, unlike Doodle
More simple, sexy and/or fun than libre alternatives, in alphabetic order:
(Foodle (discontinued; on GitHub, ex. DFN scheduler, ex. DFN Terminplaner+))
Framadata (Sources, ex. OpenSondage, ex. STUdS)
Keep things simple, usable, maintainable
Support invocation from the command line, e.g. for spontaneous polls in a LAN
Have security in mind
Please check out the list of upcoming features.
Non-goals
Use of heavy frameworks: building blocks only
Read availability from calendars
Thanks
Special thanks to Arne Maier (@KordonDev) for reporting an XSS vulnerability, responsibly.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file jawanndenn-2.2.0.tar.gz
.
File metadata
- Download URL: jawanndenn-2.2.0.tar.gz
- Upload date:
- Size: 79.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.21.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.23.3 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e51449b6845372a128caa6256556d86e383a59b64b93d820dab5f5a08da36dd8 |
|
MD5 | 5bb5fa98c181b6efb43aa32f4e62cedc |
|
BLAKE2b-256 | 3592c8b93a2e32130a7448ddf88b812beadea4da4727b0ed5c7e33e01a9734b0 |
File details
Details for the file jawanndenn-2.2.0-py3-none-any.whl
.
File metadata
- Download URL: jawanndenn-2.2.0-py3-none-any.whl
- Upload date:
- Size: 27.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.21.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.23.3 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69c6cdb9c758ea451c7fb132caf3faf9879ec5dea084d197225da55796d5b9dd |
|
MD5 | 0d82d94d89720f8965c64ad48c007111 |
|
BLAKE2b-256 | 1c4cdffd1156470177b2eeb7078dee30c97e2143637749d138b0f5b69d4a6613 |