Skip to content

adhocracy+ is a SaaS platform to make digital democracy easy for everyone

License

Notifications You must be signed in to change notification settings

liqd/adhocracy-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

adhocracy+

adhocracy.plus is a free Open-Source participation platform maintained and primarily developed by Liquid Democracy e.V.. It is based on adhocracy 4 and Django. The project's technical documentation currently is in progress. You are welcome to provide feedback by creating a GitHub issue.

Build Status Coverage Status

Getting started

adhocracy+ is designed to make online participation easy and accessible to everyone. It can be used on our SaaS-platform or installed on your own servers. How to get started on our platform is explained here.

Installation for development

Requirements

  • nodejs (+ npm)
  • python 3.x (+ venv + pip)
  • libpq (only if postgres should be used)
  • sqlite3 with JSON1 enabled
  • redis (in production, not needed for development)
  • pillow-heif (required for macOS M1 Monterey and newer versions)

Installation

git clone https://github.com/liqd/adhocracy-plus.git
cd adhocracy-plus
make install 
make fixtures

Start virtual environment

source venv/bin/activate

Check if tests work

make test

Start a local server

make watch

Go to http://localhost:8004/ and login with [email protected] | password

Installation on a production system

You like adhocracy+ and want to run your own version? An installation guide for production systems can be found here.

Contributing or maintaining your own fork

If you found an issue, want to contribute, or would like to add your own features to your own version of adhocracy+, check out our contributing document.

Security

We take security seriously. If you find any security issues, please feel free to email us at info [at] liqd [dot] net.

Advanced settings

Use postgresql database for testing

run the following command once:

make postgres-create

to start the test server with postgresql, run:

export DATABASE=postgresql
make postgres-start
make watch

Use Celery for task queues

For a celery worker to pick up tasks you need to make sure that:

  • the redis server is running. Check it by running
redis-cli ping 

it should return: PONG

  • the celery config parameter "always eager" is disabled (add CELERY_TASK_ALWAYS_EAGER = False to your local.py) Celery's always_eager is disabled to ensure tests run the celery tasks inline instead of scheduling them via the Redis broker. local.py should be under adhocracy_plus/config/settings, create one if it doesn't exist. This file saves settings for local development.

To start a celery worker node in the foreground, call:

make celery-worker-start

To inspect all registered tasks, list the running worker nodes, call:

make celery-worker-status

To send a dummy task to the queue and report the result, call:

make celery-worker-dummy-task

Check out our extensive celery documentation