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
- bottle with Tornado for a default backend
- jQuery
- jQuery noty
- 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:
# pip install jawanndenn
To install from a Git clone:
# python setup.py install --user
Deployment with Apache mod_wsgi
To use jawanndenn with mod_wsgi
, there is file
jawanndenn/app.wsgi
For how to integrate jawanndenn/app.wsgi
with the Apache configuration, please check the the related
documentation of bottle.
Feel free to file a support ticket or drop me a mail, if you cannot get it to work.
Run with docker
You can build a docker image using docker-compose build
and run it with docker-compose up
.
Serialized data is saved to ~/.jawanndenn-docker/
outside the container (only if the server shuts down). The app is served on localhost:8080
.
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=. python jawanndenn/main.py --debug
Currently supported arguments are:
# jawanndenn --help usage: jawanndenn [-h] [--debug] [--host HOST] [--port PORT] [--url-prefix PATH] [--database-pickle FILE] [--server BACKEND] [--max-polls COUNT] [--max-votes-per-poll COUNT] 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-pickle FILE File to write the database to (default: ~/jawanndenn.pickle) --server BACKEND bottle backend to use (default: tornado); as of this writing bottle supports: auto, bjoern, diesel, eventlet, gae, gevent, gunicorn, meinheld, paste, twisted, waitress, wsgiref. For the most current list, please check the documentation of bottle. 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)
Goals
- Libre software to host yourself, unlike Doodle
- More simple, sexy and/or fun than libre alternatives, in alphabetic order:
- Bitpoll (ex. Dudel)
- Dudle
- (Drupal Date picker formatter)
- (Foodle (discontinued; on GitHub, ex. DFN scheduler, ex. DFN Terminplaner+))
- Framadata (Sources, ex. OpenSondage, ex. STUdS)
- Noodle
- Nuages
- Pleft
- Rallly
- RDVz
- 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.