Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
fpietrosanti opened this issue Sep 6, 2020 · 9 comments
Open

Comments

@fpietrosanti
Copy link

fpietrosanti commented Sep 6, 2020

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.

@fpietrosanti fpietrosanti changed the title Integrate Flutter to works with Decidim Backend, instead of Rousseu Integrate Flutter to works with Decidim Backend, instead of Rousseau Sep 6, 2020
@github-actions
Copy link

github-actions bot commented Sep 6, 2020

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

@fpietrosanti
Copy link
Author

fpietrosanti commented Sep 6, 2020

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
Copy link
Author

@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
Copy link
Contributor

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
Copy link
Contributor

bhack commented Oct 2, 2020

I make some points here.

  • How much is susteinable to develop and maintain a isolated backend from scratch?
  • It is also true that Decidim has many interesting features not available in Rosseau. Also some of the mentioned missing features in Decidim are quite trivial to be implemented as configurable features.
  • I don't know how much It Is easy today to find Ruby on Rails contributors.

@bhack
Copy link
Contributor

bhack commented Oct 3, 2020

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]#69
[3]dipartimentofunzionepubblica/partecipa#2

@fpietrosanti
Copy link
Author

@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
Copy link
Author

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
Copy link
Contributor

bhack commented Oct 4, 2020

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants