The participatory democracy framework. A generator and multiple gems made with Ruby on Rails. (custom by OSP)
Switch branches/tags
0.9-Bosa/e-ID 0.9-nouvelle_aquitaine 0.9-stable 0.10-Bosa/e-ID 0.10-angers 0.10-stable-trad-auto-merge 0.10-stable-trad-auto 0.10-stable 0.11-angers-budget-with-views 0.11-angers-budget 0.11-stable-merge 0.11-stable-moderation 0.11-stable 0.12-admin-attachment-size 0.12-angers 0.12-follow-on-create-proposal 0.12-pre 0.12-questions 0.12-stable-better-banner-image 0.12-stable-budget-with-tests 0.12-stable-budget 0.12-stable-fix-profile-pics 0.12-stable-sortable-survey 0.12-stable-updated 0.12-stable 0.13-stable 0.15-stable 123_fix_dependency_issue Fix/Fix/complex-survey-validations Fix/comments-count-on-card Fix/navbar-links_test_in_wrong_folder Fix/newsletter-notification-choice Fix/stats-display Fix/surveys-admin-missing-translation Fix/test-consistency Fix/0.12-stable-budget Fix/0.12-stable-translations backport/dont-send-emails-to-deleted-users backport/fix-notifications-when-no-components backport/surveys/destroy-component-without-answers bosa-0.10-moderation bosa-0.10-no-moderation bug/impersonate-users configure_CTA_257 counter-error decidim-master-with-tests develop exports-debates f-angers-new-proposal-states feature/customizable-css feature/german-translation feature/hide-comments-on-cards-when-blocked feature/proposal-location fix-AH fix-date-display-admin fix-date-on-process-step fix-flag-content fix-translations fix-upstream-moderation fix/complex-survey-validations master pre-push-validation processes-search proposals_caps_first reportable-debate revert-253-fix_translation_budget_project revert/proposals_caps_first test time-ago translation/highlighted-PP webhook-zappier
Nothing to show
Clone or download
Pull request Compare This branch is 748 commits ahead, 556 commits behind decidim:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Merge remote-tracking branch 'decidim/0.12-stable' into 0.12-stable Oct 26, 2018
.github Update stale.yml Sep 27, 2018
bin
config Add more cards (decidim#3487) May 24, 2018
d Add binstubs to the repo (decidim#3518) May 28, 2018
decidim-accountability
decidim-admin
decidim-api Version bump Jul 11, 2018
decidim-assemblies Merge branch '0.12-stable' into feature/proposal-location Nov 8, 2018
decidim-blogs Merge remote-tracking branch 'decidim/0.12-stable' into 0.12-stable Oct 26, 2018
decidim-budgets Merge branch '0.12-stable' of https://github.com/OpenSourcePolitics/d… Oct 26, 2018
decidim-comments Merge branch '0.12-stable' into feature/proposal-location Nov 8, 2018
decidim-consultations Merge branch '0.12-stable' into feature/proposal-location Nov 8, 2018
decidim-core Merge pull request #342 from OpenSourcePolitics/Fix/newsletter-notifi… Nov 15, 2018
decidim-debates Merge remote-tracking branch 'decidim/0.12-stable' into 0.12-stable Oct 26, 2018
decidim-dev
decidim-generators Refactory navabar links feature Oct 16, 2018
decidim-initiatives Merge branch '0.12-stable' into feature/proposal-location Nov 8, 2018
decidim-meetings Merge branch '0.12-stable' into feature/proposal-location Nov 8, 2018
decidim-pages Merge remote-tracking branch 'decidim/0.12-stable' into 0.12-stable Oct 26, 2018
decidim-participatory_processes
decidim-proposals Fix mistake in preview + refactor test Nov 8, 2018
decidim-sortitions Merge remote-tracking branch 'decidim/0.12-stable' into 0.12-stable Oct 26, 2018
decidim-surveys 🤖 🐛 #325 Oct 31, 2018
decidim-system Merge remote-tracking branch 'decidim/0.12-stable' into 0.12-stable Oct 26, 2018
decidim-verifications Merge remote-tracking branch 'decidim/0.12-stable' into 0.12-stable Oct 26, 2018
decidim_app-design
docs Docs: move files to docs/advanced/ and mini fix on docs/customization… Jun 4, 2018
lib Version bump Jul 11, 2018
spec Keep generators gemfile in sync (decidim#3270) Apr 24, 2018
.babelrc Update js dependencies (another take) (decidim#2156) Nov 13, 2017
.codeclimate.yml New Crowdin translations (decidim#3547) May 30, 2018
.csslintrc Add CodeClimate config Sep 14, 2016
.decidim-version Version bump Jul 11, 2018
.editorconfig Normalizing final new lines (decidim#1744) Aug 16, 2017
.erb-lint.yml
.eslintignore Extract a component manager class (decidim#2427) Jan 12, 2018
.eslintrc.json
.gitattributes Teach git how to merge our CHANGELOG (decidim#3242) Apr 17, 2018
.gitignore Merge branch '0.10-stable' into 0.11-stable-merge May 8, 2018
.inch.yml Add inch CI for tracking inline code docs (decidim#472) Jan 10, 2017
.mdl_style.rb Lint markdown (decidim#2158) Nov 6, 2017
.mdlrc Lint markdown (decidim#2158) Nov 6, 2017
.nvmrc fixing migrations Feb 5, 2018
.prettierrc Update dependencies (decidim#2909) Mar 6, 2018
.rubocop.yml 🤖 RSpec/MultipleExpectations up to 20 Oct 31, 2018
.rubocop_rails.yml Log seeds (decidim#3495) May 28, 2018
.ruby-version
.simplecov Upgrade to capybara 3 (decidim#3361) May 9, 2018
.yardopts Normalizing final new lines (decidim#1744) Aug 16, 2017
CHANGELOG.md Add changelog entry Nov 12, 2018
CODE_OF_CONDUCT.md Cache bundler dependencies on TravisCI (#167) Nov 2, 2016
CONTRIBUTING.md
Dockerfile.design Fix decidim design (decidim#2766) Feb 19, 2018
Gemfile Upgrade Rails to 5.2 (decidim#3225) May 23, 2018
Gemfile.lock Fix translation Sep 10, 2018
LICENSE-AGPLv3.txt Improve and rename license (#200) Nov 11, 2016
README.md Update Readme, remove ondevelopment section blog (decidim#3370) May 10, 2018
Rakefile
banner_elogie-siemp2_crop.jpg Meetings - update fr.yml Jul 9, 2018
crowdin.yaml Use correct file name Sep 25, 2018
decidim.gemspec Generate separate DBs for development and test apps (decidim#3299) May 8, 2018
docker-compose.yml Docker dev setup (decidim#2849) Mar 15, 2018
jsconfig.json Normalizing final new lines (decidim#1744) Aug 16, 2017
logo.svg Lint stylesheets (decidim#2425) Jan 8, 2018
package-lock.json Fix comments bundle Sep 25, 2018
package.json Update bundle Sep 24, 2018
tsconfig.json Autocomplete field (decidim#3301) May 9, 2018
tslint.json
webpack.config.js Fix comments on development (decidim#3459) May 22, 2018
webpack.d.ts Autocomplete field (decidim#3301) May 9, 2018
yarn.lock fix comments labels #131 Jul 10, 2018

README.md

Decidim Logo

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.


Gem Gem GitHub contributors Yard Docs Gitter

Code quality

Build Status Maintainability Dependency Status 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
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.

Community

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

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: