Consul is a free software platform that allows institutions and organizations to carry on the most important direct citizen participation processes. It includes: citizen proposals, consultations, votings, participatory budgets, collaborative legislation.
The platform is flexible allowing each institution/organization to adapt it to suit their specific needs. All functionality can be turn on or off, the home page and other information pages can be personalized without programming, the look and feel of the website can be adapted to suit the corporate image of the institution. It's also multilingual, and it's been translated to 45 languages.
The project was originally developed by the Madrid City Council, and it's now being used by more than a hundred local, regional, and national governments,
The national governments of Uruguay and Colombia are using the platform for their own projects: in the case of Colombia, they are using CONSUL to let citizens have a voice on their national development plan. At the regional level, it's being used by Jalisco (Mexico), Aude (France), Nariño (Colombia), La Libertad (Peru) and many others.
The meain use of CONSUL, however, is in cities, ranging from small towns with a few thousands inhabitants to big cities like New York, Buenos Aires, Quito, Montevideo and Madrid. More than 90 million citizens around the world can make decisions using participation websites deployed with CONSUL.
The CONSUL project is also working together with supranational and international institutions and NGOs like United Nations Development Program, Open Government Partnership, the World Bank, Banco Interamericano de Desarrollo, Unión de Ciudades Capitales Iberoamericanas, Nesta, Participatory Budgeting Project and others. This entities are working to let citizens have a voice in projects like the rebuilding of Mogadishu and the drafting of a constitution in Somalia, the reunification of Cyprus, the localization of the Sustainable Development Goals of the United Nations 2030 Agenda.
CONSUL is being translated to more than 40 languages, also in a collaborative process that is carried out in Crowdin: https://crowdin.com/project/consul
Sharing the CONSUL technology has allowed all this cities, governments and entities to work together and create a community to share best practices, knowledge and ideas. There are online spaces where people working in all this project can work together and support each other. The CONSULCon conference, held every year since 2017, it's an opportunity to meet participation experts, IT people working on the development and implementation of CONSUL, activists, politicians and other people working on direct democracy and citizen participation.
There are more information about the project, including documentation and videos at consulproject.org.
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 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: https://github.com/consul/consul. There are a hundred developers contributing code to the project, and many more people are helping with documentation and other needs of the project.
The technical documentation for the project is available at https://docs.consulproject.org
The users guide, administration guide and other end-user documents are available at: http://consulproject.org/en/#documentation