Giter Site home page Giter Site logo

ludivinecp / decidim Goto Github PK

View Code? Open in Web Editor NEW

This project forked from decidim/decidim

0.0 1.0 0.0 18.92 MB

The participatory democracy framework. A generator and multiple gems made with Ruby on Rails.

Home Page: http://www.decidim.org

License: GNU Affero General Public License v3.0

Shell 0.02% Ruby 72.36% JavaScript 2.19% CSS 6.59% HTML 13.35% TypeScript 5.49%

decidim's Introduction

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 Code Climate codecov 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

We've set up a guide on how to install, set up and upgrade Decidim. See the Getting started guide.

How to contribute

As a Translator

Decidim is already translated on multiple languages (English, Spanish, Catalan, Basque, Italian, Finnish, Dutch, French, Russian and Ukrainian). You can help us at Crowdin, the translation service, reviewing these translations or proposing a new language to add to the platform.

As a Developer

In order to develop on decidim, you'll need:

  • PostgreSQL 9.4+
  • Ruby 2.4.1
  • NodeJS 8.x.x
  • ImageMagick
  • PhantomJS. If you're on Ubuntu, make sure you download it from the official website instead of using the version of the Ubuntu repositories

The easiest way to work on decidim is to clone decidim's repository and install its dependencies

git clone [email protected]:decidim/decidim.git
cd decidim
bundle install
npm install

You have several rake tasks available:

  • bundle exec rake development_app: Creates a development app which you can use to run an application with the gems in your path.
  • bundle exec rake decidim:generate_test_app: Generates a dummy application to be used for testing.
  • bundle exec rake test_all: Runs the tests of every engine using the dummy application

Browse Decidim

After you create a development app (bundle exec rake development_app):

Optionally, you can log in as: [email protected] | decidim123456

Also, if you want to verify yourself against the default authorization handler use a document number ended with "X".

Browse Admin Interface

After you create a development app (bundle exec rake development_app):

Officially supported libraries

Library Description
Admin This library adds an administration dashboard so users can manage their organization and all other entities.
API This library exposes a GraphQL API to programatically interact with the Decidim platform via HTTP
Assemblies Permanent participatory spaces. Currently in beta as an optional feature, can be included by explicitly adding decidim-assemblies to the Gemfile.
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.
Participatory Processes The main concept of a Decidim installation: participatory processes.
Dev This gem aids the local development of Decidim's features.
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 features of Decidim: allows users to contribute to a participatory space by creating proposals.
Accountability Adds an accountability section to any participatory space so users can follow along the state of the accepted proposals.
Surveys Adds the ability for admins to create arbitrary surveys.
System Multitenant Admin to manage multiple organizations in a single installation

Technical tradeoffs

Architecture

This is not your typical Ruby on Rails Vanilla App. We've tried using Consul but we found some problems on reutilization, adaptation, modularization and configuration. You can read more about that on "Propuesta de Cambios de Arquitectura de Consul".

Turbolinks

Decidim doesn't support turbolinks so it isn't included on our generated apps and it's removed for existing Rails applications which install the Decidim engine.

The main reason is we are injecting some scripts into the body for some individual pages and Turbolinks loads the scripts in parallel. For some libraries like leaflet it's very inconvenient because its plugins extend an existing global object.

The support of Turbolinks was dropped in d8c7d9f. If you're interested in bringing turbolinks back, further discussion is welcome.

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:

decidim's People

Contributors

josepjaume avatar mrcasals avatar beagleknight avatar deivid-rodriguez avatar oriolgual avatar decidim-bot avatar lastpotion avatar itsgenis avatar andreslucena avatar digharatta avatar jkraemer avatar divins avatar leio10 avatar jaimeiniesta avatar tonkpils avatar xredo avatar amaia avatar ahukkanen avatar arnaumonty avatar hilfe avatar gustavocaso avatar jsperezg avatar redrudeboy avatar martinciu avatar

Watchers

Ludivine avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.