/decidim

The participatory democracy framework. A generator and multiple gems made with Ruby on Rails

Primary LanguageRubyGNU Affero General Public License v3.0AGPL-3.0

D:doctype: book

Decidim Logo

The participatory democracy framework.

Free Open-Source participatory democracy, citizen participation and open government for cities and organizations

Decidim is a participatory democracy framework, written in Ruby on Rails, originally developed for the Barcelona City government online and offline participation website. Installing these libraries will provide you a generator and gems to help you develop web applications like the ones found on example applications or like our demo application.

All members of the Decidim community agree with Decidim Social Contract or Code of Democratic Guarantees.


Gem Gem GitHub contributors Yard Docs Matrix

Code quality

codecov Maintainability Crowdin Inline docs Accessibility issues HTML issues

Test suite

See all Accountability Api Assemblies Blogs Budgets Comments Conferences Consultations Core Debates Forms Generators Initiatives Main Meetings Pages Participatory processes Proposals (system admin) Proposals (system admin) Proposals (unit tests) Sortitions Surveys System Verifications


What do you need to do?


Getting started with Decidim

TLDR: install gem, generate a Ruby on Rails app, enjoy.

gem install decidim
decidim decidim_application

We’ve set up a guide on how to install, set up and upgrade Decidim. See the Getting started guide.

How to contribute

Modules

If you need to have some features that we don’t have yet, we recommend that you make a module. This is a Ruby on Rails engine with some APIs specific to Decidim (for registering with the menus, integration with spaces like Participatory Processes or Assemblies, with /admin or /api, etc).

As a base you can use these modules, although check first that the version is compatible with your current Decidim version. Also, you should know that until v1.0.0 We’re under development, and these internal APIs can change.

We recommend that you extensively test your module.

Authorizations Strategies

One specific thing regarding these kind of applications is the authorization or verification logic. This tries to solve the problem of how to verify that the user is who they say they are and that they have the right to participate in this city or organization. Read more about Authorizations in our documentation.

Following our license

If you plan to put your application in production, you’ll need to publish it using the same license: GPL Affero 3.

We recommend doing that on GitHub (or any other code hosting platform) before publishing.

If you have any trouble you can contact us on our Matrix.org chat room for developers.

Example applications

Since Decidim is a ruby gem, you can check out the dependent repositories to see how many applications are on the wild or tests that other developers have made. You can see a highlight of example applications in our documentation.

Security

Security is very important to us. If you have any issue regarding security, please disclose the information responsibly by sending an email to security [at] decidim [dot] org and not by creating a github/metadecidim issue. We appreciate your effort to make Decidim more secure. See full security policy.