The participatory democracy framework. A generator and multiple gems made with Ruby on Rails.
Switch branches/tags
Clone or download
mrcasals and oriolgual Do not notify comment authors about their comments (#4643)
* Do not notify comment authors about their comments

* Add changelog
Latest commit 4144267 Dec 7, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Extract surveys logic to decidim-forms (#3877) Oct 31, 2018
.github Make stalebot ignore bug reports Aug 6, 2018
bin Fix generators issue (#3684) Jul 4, 2018
config Feature accept amendments proposals on proposals (#3985) Nov 30, 2018
d More consistent circle ci env (#3732) Jul 3, 2018
decidim-accountability Return a 404 when a result doesn't exist (#4631) Dec 5, 2018
decidim-admin Add missing locales for organization errors (#4633) Dec 5, 2018
decidim-api Bump to 0.16 (#4388) Oct 29, 2018
decidim-assemblies Fix admin cannot access public view of private processes by default (#… Dec 4, 2018
decidim-blogs Add activity tab (#4570) Nov 27, 2018
decidim-budgets Use bigint instead of int for projects (#4628) Dec 5, 2018
decidim-comments Do not notify comment authors about their comments (#4643) Dec 7, 2018
decidim-conferences Add notification to conferences and meetings registrations (#4636) Dec 7, 2018
decidim-consultations New Crowdin translations (#4582) Nov 29, 2018
decidim-core Don't crash on registration (#4637) Dec 7, 2018
decidim-debates Fix SettingsChangeJob (#4642) Dec 7, 2018
decidim-dev Verify user groups via CSV (#4613) Dec 4, 2018
decidim-forms Fix meeting registration form with no questions show as already answe… Dec 3, 2018
decidim-generators Etherpad integration (#4493) Nov 20, 2018
decidim-initiatives Fix iniative edit when missing scope (#4634) Dec 5, 2018
decidim-meetings Add notification to conferences and meetings registrations (#4636) Dec 7, 2018
decidim-pages Add activity tab (#4570) Nov 27, 2018
decidim-participatory_processes Better handling setting process step position (#4638) Dec 7, 2018
decidim-proposals Fix SettingsChangeJob (#4642) Dec 7, 2018
decidim-sortitions New Crowdin translations (#4560) Nov 23, 2018
decidim-surveys Fix SettingsChangeJob (#4642) Dec 7, 2018
decidim-system New Crowdin translations (#4524) Nov 22, 2018
decidim-verifications Add missing locales from #4573 (#4602) Dec 3, 2018
decidim_app-design Conference diploma functionality (#4443) Nov 23, 2018
docs Open Data export (#4578) Nov 30, 2018
lib Extract surveys logic to decidim-forms (#3877) Oct 31, 2018
spec New Crowdin translations (#4524) Nov 22, 2018
.babelrc Update js dependencies (another take) (#2156) Nov 13, 2017
.codeclimate.yml Feature/3949 participatory texts admin (#4229) Oct 18, 2018
.csslintrc Add CodeClimate config Sep 14, 2016
.decidim-version Bump to 0.16 (#4388) Oct 29, 2018
.editorconfig Normalizing final new lines (#1744) Aug 16, 2017
.erb-lint.yml Spaces around braces globally, like in ruby code (#3953) Aug 3, 2018
.eslintignore Extract a component manager class (#2427) Jan 12, 2018
.eslintrc.json Enforce double quotes on JS (#3092) Mar 23, 2018
.gitattributes Teach git how to merge our CHANGELOG (#3242) Apr 17, 2018
.gitignore Add .rbenv-vars to .gitignore (#4330) Oct 22, 2018
.inch.yml Add inch CI for tracking inline code docs (#472) Jan 10, 2017
.mdl_style.rb Lint markdown (#2158) Nov 6, 2017
.mdlrc Lint markdown (#2158) Nov 6, 2017
.prettierrc Update dependencies (#2909) Mar 6, 2018
.rubocop.yml Add more badges (#4089) Sep 12, 2018
.rubocop_rails.yml Add Gamification (#3975) Aug 27, 2018
.ruby-version Update ruby to version 2.5.1 (#3293) May 2, 2018
.simplecov Revert "Use `capybara-screenshot` again (#3782)" (#3788) Jul 6, 2018
.yardopts Normalizing final new lines (#1744) Aug 16, 2017
CHANGELOG.md Do not notify comment authors about their comments (#4643) Dec 7, 2018
CODE_OF_CONDUCT.md Cache bundler dependencies on TravisCI (#167) Nov 2, 2016
CONTRIBUTING.md Adds details on security documentation (#3854) Jul 16, 2018
Dockerfile.design Fix decidim design (#2766) Feb 19, 2018
Gemfile [REFACTOR] Depend upon a more stable doc2text branch. (#4451) Nov 12, 2018
Gemfile.lock Feature accept amendments proposals on proposals (#3985) Nov 30, 2018
LICENSE-AGPLv3.txt Improve and rename license (#200) Nov 11, 2016
README.md Moved Metrics docs in README to Core README (#4341) Oct 23, 2018
Rakefile Fix generators issue (#3684) Jul 4, 2018
crowdin.yaml Fix German locale mapping on Crowdin Sep 26, 2018
decidim.gemspec Extract surveys logic to decidim-forms (#3877) Oct 31, 2018
docker-compose.yml Docker dev setup (#2849) Mar 15, 2018
heroku.yml Fix design app deployment (#3969) Aug 6, 2018
jsconfig.json Normalizing final new lines (#1744) Aug 16, 2017
logo.svg Lint stylesheets (#2425) Jan 8, 2018
package-lock.json Bump to 0.16 (#4388) Oct 29, 2018
package.json Bump to 0.16 (#4388) Oct 29, 2018
tsconfig.json Autocomplete field (#3301) May 9, 2018
tslint.json Update dependencies (#2909) Mar 6, 2018
webpack.config.js Fix comments on development (#3459) May 22, 2018
webpack.d.ts Autocomplete field (#3301) May 9, 2018

README.md

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 Gitter

Code quality

Build Status Maintainability Crowdin Inline docs Accessibility issues HTML issues

Project management [See on Waffle.io]

Stories in Discussion Stories in Planned Bugs In Progress In Review


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

See Contributing.

Browse Decidim

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".

Modules

Official (stable)

Module Description
API Exposes a GraphQL API to programatically interact with the Decidim platform via HTTP.
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.
Assemblies Permanent participatory spaces.
Blogs This component makes possible to add posts ordered by publication time to 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.
Conferences This module will be a configurator and generator of Conference pages, understood as a collection of Meetings, with program, inscriptions and categories
Consultations This module creates a new space for decidim to host consultations: debates around critical questions and a proxy for eVoting
Core The basics of Decidim: users, organizations, etc. This is the only required engine to run Decidim, all the others are optional.
Debates The Debates module adds debate to any participatory process. It adds a CRUD engine to the admin and public view scoped inside the participatory process.
Dev Aids the local development of Decidim's components.
Generators It helps you with generating decidim applications & new components. It provides the decidim executable.
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.
Meetings 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.
Participatory Processes The main concept of a Decidim installation: participatory processes.
Proposals The Proposals module adds one of the main components of Decidim: allows users to contribute to a participatory space by creating proposals.
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.
Surveys Adds the ability for admins to create arbitrary surveys.
System Multitenant Admin to manage multiple organizations in a single installation.
Verifications Offers several methods for allowing participants to get authorization to perform certain privileged actions. This module implements several of those methods and also offers a way for installation to implement their custom verification methods.

Community

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.

Module Version Description
Age Action Authorization 0.9.3 A Decidim based action authorization to check user's age inside actions.
Calendar 0.14.1 Adds a calendar view for all the Meetings, without regarding the Participatory Process or Assembly that they belong.
Crowdfunding 0.14.1 This rails engine implements a Decidim component that allows to the administrators to configure crowfunding campaigns for a participatory space.
DataViz 0.13.1 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.
Gravity Forms 0.14.1 A gravity forms component for Decidim.
LDAP 0.9.3 User authentication via LDAP
News 0.14.1 This will add an admin dashboard to manage news posts and front-end views for posts.
Members 0.13.1 Members list and search plugin for Decidim
Personal Number 0.11.0.pre This module allows users to register with a personal number and to log in with it.
Pol.is 0.7.1 Pol.is integration on Decidim
Questions 0.12.2 Questions / Views / Inputs based on decidim-proposals.
Riksdagen 0.11.0.pre A Decidim module to integrate some of the open data produced by the Swedish parliament
User Export 0.8.3 Allow user export
Votings 0.14.1 An administrator can add one or more votings to a participatory process or assambly

Authorizations Strategies

One specific thing regarding these kind of applications is the authorization/verification logic. Here are some examples:

Other special verifications:

Following our license

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.

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. Here's a partial list with some of the projects that have used Decidim: