The participatory democracy framework.
Democracy never felt so real.
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.
Code quality
Project management [See on Waffle.io]
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.
See Contributing.
After you create a development app (bundle exec rake development_app
), you
have to switch to it and boot the rails server with cd development_app && bundle exec rails s
.
After that, you can:
- Browse the main interface at
http://localhost:3000
, and log in as: user@example.org | decidim123456 - Browse the admin interface at
http://localhost:3000/admin
, and log in as: admin@example.org | decidim123456 - Browse the system interface at
http://localhost:3000/system
, and log in as: system@example.org | decidim123456
Also, if you want to verify yourself against the default authorization handler use a document number ended with "X".
Module | Description |
---|---|
Accountability | Adds an accountability section to any participatory space so users can follow along the state of the accepted proposals. |
Admin | Adds an administration dashboard so users can manage their organization and all other entities. |
API | Exposes a GraphQL API to programatically interact with the Decidim platform via HTTP. |
Assemblies | Permanent participatory spaces. |
Budgets | Adds a participatory budgets system to any participatory space. |
Comments | The Comments module adds the ability to include comments to any resource which can be commentable by users. |
Core | The basics of Decidim: users, organizations, etc. This is the only required engine to run Decidim, all the others are optional. |
Generators | It helps you with generating decidim applications & new components. It provides the decidim executable. |
Participatory Processes | The main concept of a Decidim installation: participatory processes. |
Dev | Aids the local development of Decidim's components. |
Meeting | The Meeting module adds meeting to any participatory space. It adds a CRUD engine to the admin and public view scoped inside the participatory space. |
Pages | The Pages module adds static page capabilities to any participatory space. It basically provides an interface to include arbitrary HTML content to any step. |
Proposals | The Proposals module adds one of the main components of Decidim: allows users to contribute to a participatory space by creating proposals. |
Surveys | Adds the ability for admins to create arbitrary surveys. |
System | Multitenant Admin to manage multiple organizations in a single installation. |
Sortitions | This component makes possible to select randomly a number of proposals among a set of proposals (or a category of proposals within a set) maximizing guarantees of randomness and avoiding manipulation of results by the administrator. |
Consultations | This module creates a new space for decidim to host consultations: debates around critical questions and a proxy for eVoting |
Initiatives | Initiatives is the place on Decidim's where citizens can promote a civic initiative. Unlike participatory processes that must be created by an administrator, Civic initiatives can be created by any user of the platform. |
Blogs | This component makes possible to add posts ordered by publication time to spaces. |
Module | Description |
---|---|
Census | Allows to upload a census CSV file to perform authorizations against real users parameterised by their age. |
Crowdfunding | This rails engine implements a Decidim component that allows to the administrators to configure crowfunding campaigns for a participatory space. |
DataViz | The Dataviz module adds the PAM data visualizations to any participatory process but it is intended to be used just for the PAM participatory process. |
Members | Members list and search plugin for Decidim |
Pol.is | Pol.is integration on Decidim |
User Export | Allow user export |
Verification DIBA Census API | A decidim package to provice user authorizations agains the Diputació of Barcelona census API |
Verification Podemos Census API | A decidim package to provice user authorizations against the Podemos census API |
Votings | An administrator can add one or more votings to a participatory process or assambly |
If you plan to release your application you'll need to publish it using the same license: GPL Affero 3. We recommend doing that on GitHub before publishing, you can read more on "Being Open Source From Day One is Especially Important for Government Projects". If you have any trouble you can contact us on Gitter.
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. Here's a partial list with some of the projects that have used Decidim:
- Demo
- Decidim Barcelona - View code
- L'H ON Participa - View code
- Decidim Terrassa - View code
- Decidim Sabadell - View code
- Decidim Gavà - View code
- Decidim Sant Cugat - View code
- Vilanova Participa - View code
- Erabaki Pamplona - View code
- Decidim Mataró - View code
- Commission Nationale du Débat Public (France)
- MetaDecidim - View Code