Consul 1.0.0-beta

2 years ago

Consul is a free software platform that allows institutions and organizations to carry on the most important direct citizen participation processes existing nowadays. It includes: citizen proposals, votings, participatory budgets, collaborative legislation, public debates, collective interviews, and sectorial processes (specific processes with particular specifications, as urban redevelopments or highly complex normative).

The platform is flexible allowing each institution/organization to fulfill its specific needs. Its multilingual, each of the participation mechanism can be activated or not independently of the others, the style is easily customizable. It allows verification of users with a census/database in a user-friendly way, to control the quality of the processes. Different roles of users are defined (internal and external users), allowing different degrees of participation and interaction between them.

A complex administration interface is available including: stats about the processes; agile management of the processes allowing few administrators to organize complex processes like participatory budgets; an independent interface for moderators and for public employees helping the citizens to participate; management of offline participation spaces, etc.

The interfaces and functionalities are designed to allow massive participation, collective intelligence and a minimization of the internal resources needed to manage the processes.

The project is originally developed by the Madrid City Council, although being free software has been reused and forked by other institutions. The main branch of the code is developed by the Madrid City Council, with the help of external independent developers or from other institutions. The platform allows establishing a full citizen participation platform and developing all the direct participation mechanisms that are commonly used in public or private institutions.        

It allows the citizens to have a real participation inside the institutions, being able to directly take the important decisions on them. It increases the effectiveness, democracy and transparency of the institutions.          

The project has been developed fully by internal developers of the City Council. Being free software, it can be installed with no cost by any institution, allowing running all the direct participation mechanisms commonly used with no need of any extra resources.        

The project has been already installed and is being used by the city councils of Madrid, Barcelona, Oviedo, A Coruña Valencia Calvia Before the end of 2016 will be signed an agreement with around 30 other city councils and regions to install it. Institutions of other countries, including Argentina, Peru, Mexico, France, Colombia among others have contacted us interested in the solution, although still none of the have it running.       

Being a free software decentralized project, it does not need to rely on any specific institution or governance model to ensure its sustainability.

The solution has been developed by the Madrid City Council providing therefore full support for it. As the network of institutions using it is growing, more institutions provide support for its development.          

A presentation of the software can be found here:



The backend is developed in Ruby using the Ruby on Rails framework. The database is PostgreSQL. The frontend is javascript implemented on JQuery with Coffeescript. The page styles have been developed using SCSS on Foundation.    

The server-side code is divided into Models (database abstraction + business logic), Views (html/json rendering) and Controllers (connecting models and views). There is a role-based permission system determining what each user can do on the system - main roles are regular user, moderator and administrator. Regular users can verify their accounts by providing some personal information stored on the city inhabitants census to gain some extra permissions.

The system makes use of Turbolinks to accelerate the user experience. Client-side code is relatively low in complexity (plain jquery + coffeescript) to ensure maximal customizability.

The tools chosen to implement the solution are common-use; any developer familiar with Ruby on Rails apps should be able to install and extend it. Furthermore, there are specific extension points (in the form of folders specifically thought of for customization).

Given that we use a standard ruby on rails app, scalability can be done in the usual ways: the database can be replicated/scalled independently from the application servers. Application server instances be added to the system and put behind a load balancer. We use plenty of open-source libraries & ruby gems. The main ones are Ruby on Rails, JQuery, PostgreSQL, CoffeScript, SASS.

All the source code is licensed under the GNU Affero General Public License v3 (AGPLv3) and is available in our Github account: