associazione-rousseau / camelot-flutter

Cross platform Flutter application to subscribe and vote on Rousseau.
GNU General Public License v3.0
15 stars 11 forks source link

Integrate Flutter to works with Decidim Backend, instead of Rousseau #170

Open fpietrosanti opened 3 years ago

fpietrosanti commented 3 years ago

Decidim is the most used opensource Digital Democracy Platform, successfully used in Barcelona City to foster citizen participation in the political process https://decidim.org/features/ .

It has been used in Barcelona City as a success case (https://www.decidim.barcelona/), funded by EU, and it's now being extended from DECODE project: https://labgov.city/theurbanmedialab/digital-democracy-and-data-commons-dddc-a-participatory-platform-to-build-a-more-open-transparent-and-collaborative-society/

Decode project saw Francesca Bria (former CTO of Barcelona, actually President of Italian Innovation Fund) as Project Coordinator https://decodeproject.eu/team (See interview in Italian https://docs.decidim.org/en/publications/italian/)

In Italy Decidim is also teached at UniMi in the Digital Democracy course http://tecnocivismo.di.unimi.it/infodiscs/view/2104

This ticket is to analyse the technical requirement to interconnect the "Mobile Rousseau" directly to the opensource backend of Decidim, as an alternative to the closed source Associazione Rousseau's Rousseau platform.

This step would enable any political movements to achieve a 100% opensource digital democracy solution, to build a more open transparent and collaborative society, with self-governance and data ownership, but starting from the Mobile App experience of Rousseau.

github-actions[bot] commented 3 years ago

Thank you so much for filing your first issue from Associazione Rousseau!' first issue

fpietrosanti commented 3 years ago

Decidim, like Rousseau, use GraphQL, so it could be possible to make a compatible data mapping between objects https://meta.decidim.org/api/docs . How to use the GraphQL API of Decidim https://docs.decidim.org/en/developing/api/

fpietrosanti commented 3 years ago

@emanuelconunaemme Do you think it could be useful to document with human and machine readable format all of the API's used by the Mobile app in talking to Rousseau and it's backend components? This would facilitate the hook/interconnection within other existing digital democracy software platform (like decidim.org as it's first integration example) ?

emanuelconunaemme commented 3 years ago

Thank you so much @fpietrosanti for the detailed description. They have been considering Decidim, but they found out it doesn't fulfill the requirements. First of all, Rousseau has 14 functionalities. Almost all of them are tailored to the Italian institutions and to the rules of Movimento 5 Stelle.

The only functionality that might seem to overlap is the vote. Although, the vote on Rousseau is way more complicated than it looks like, and at this time, Decidim doesn't look like a good fit: 1) The system should integrate with our login service, which is open source and based on Open Id Connect (https://www.keycloak.org/). 2) The business logic to allow users to vote is really tailored. E.g.: 6 months from the registration date, identity verified, account not suspended. 3) A lot of polls are geographically scoped based on the Italian electoral divisions. E.g.: regional election for the Governor candidate (only people from Abruzzo can vote), same for municipalities ("comuni"). Poll to decide the parliament runners are national, but everyone can only vote for its electoral college. With 4 special electoral collages for the Italians abroad. 4) We don't only vote on textual options yes/no, but we have several votable entities (the mechanism is pretty flexible and extensive). E.g.: projects, law proposals, and candidates. All of them have their rules and pipelines. 5) Decidim graphql API is read-only (source: https://meta.decidim.org/api/docs).

This only concerns the functionalities. Integrating an existing tested (and pen-tested) system has a cost. That said, Decidim seems a really interesting project. The team is monitoring this project and will consider eventual future integrations.

bhack commented 3 years ago

I make some points here.

bhack commented 3 years ago

To replicate a little bit on the specific @emanuelconunaemme points:

  1. I think that we could bypass all the current complex and expensive registraton and verification process with SPID[1][2][3]
  2. The business logic It is quite easy to be configurable. Just a little bit of conditions check. Identity verification is trusted with SPID.
  3. These geodata are public. I think It Is quite easy to add a few geofecing routines. So anyhting special.
  4. The current voting options in Rosseau don't seems to me so rich or state of the art. We still don't support something quite easy as Ranked vote
  5. Is Rosseau graphql design open for contribution? I think that in Rosseau it is currently a constrain, also at political level, on what could be done or not on the platform. So currently It constrain also the open source client feature design space other than the "normal" PR gatekeeper role that sometimes could be political itself.

[1]https://www.spid.gov.it/come-diventare-fornitore-di-servizi-pubblici-e-privati-con-spid [2]https://github.com/associazione-rousseau/camelot-flutter/issues/69 [3]https://github.com/dipartimentofunzionepubblica/partecipa/issues/2

fpietrosanti commented 3 years ago

@bhack Actually doing the mapping of the Rousseau features, that seems to map quite well to Decidim framework https://docs.decidim.org/en/features/general-description/ and that would be even better in the integration of Mobile App

Screenshot 2020-10-04 at 11 14 18
fpietrosanti commented 3 years ago

With the regards to SPID integration for authentication and user identification, it's the best way because:

  1. It does support OpenID Connect that Mobile Rousseau support (rif. https://docs.italia.it/AgID/documenti-in-consultazione/lg-openidconnect-spid-docs/it/bozza/index.html

  2. It off-load the cost and man work on Associazione Rousseau side to do KYC document validation

bhack commented 3 years ago

To be honest nobody has a strong, usable and scalable implementation of the (yellow) participatory text box.