Mon site de démocratie participative

Hello,

Je viens de découvrir Framasoft par Itopie à Genève. C’est cool, je ne savais pas à qui montrer mon travail.

Ce printemps avec le confinement je me suis lancé dans ce projet d’outil de démocratie participative que j’avais en tête depuis quelques année. J’ai eu du mal à m’y mettre partant de zéro, et compte tenu de l’interface graphique un peu compliquée à mettre en oeuvre.

Je voulais:

  • le coté populaire des forums, sans leur coté illisible et inexploitable quand on dépasse la dizaine de pages de post, avec les blagues et les trolls au milieu…
  • un environnement non modéré, mais avec une sélection naturelle
  • un outil qui favorise la recherche de consensus sans avoir besoin de donner explicitement la consigne.

après quelques mois de travail ça a donné ça : (malheureusement hébergé chez google, mais travaillant seul et sans expérience, c’était le plus facile que j’avais) https://arborium-forum.web.app/fr

La page la plus démonstrative est: https://arborium-forum.web.app/fr/tree/random
(rechargez la page pour un nouveau graphe aléatoire - jouez avec la barre d’outil supérieure et inférieur, et le graphe en lui même…)

Je suis super content d’en être arrivé la (seul et partant de zéro)
Les commentaires que j’ai eu ont été: soit des sommes astronomiques pour engager des gens, soit que le besoin pour ce genre de projet n’existait pas… :weary:

Il y aurait du travail d’UX et de design, mais pour résumer, ce projet aurait besoin de collaborateurs, ou de s’intégrer à un autre projet du meme genre. (La seule réponse que j’ai eu de Loomio, c’était

"it’s very interesting, thanks ! " )

Bref, je m’appelle gabriel, je suis le papa de ce projet, je suis content de trouver une communauté de geeks humanitaires engagés :wink: à qui présenter mon petit, qui aurait bien besoin de voir le monde et rencontrer d’autres gens que moi :man_standing: :baby: :family_man_man_girl_boy: :family_woman_woman_girl:

5 Likes

C’est vraiment pas mal, surtout pour un projet en incubation que t’as fait tout seul !!

Si il est sous une licence opensource tu devrais voir pour demander à l’ajouter à l’annuaire framalibre pour qu’il soit recensé et avoir des retours !
Au niveau de l’hébergement, tu es partis sur github par défaut ? Même si ça reste le nid d’une immensité de projets opensource c’est devenu un peu plus craignos depuis le rachat par Microsoft et la màj des CGU… mais bon c’est toi qui vois (idem pour le mail en gmail) :grin:

Tu devrais par contre faire un guide de contribution et/ou une todo des points que tu voudrais améliorer si tu veux que d’autres personnes se joignent au projet, ça facilitera les coups de pouces même ponctuels :slight_smile: (ça peut être aussi via les issues)

Pour l’ergonomie je trouve ça assez chouette, après utilisé en démo et pas (encore) pour un vrai cas.
Tu as prévu qu’il fonctionne en standalone sur ton instance ou une instance perso, ou intégré à d’autres soft ? (comme les plugins markdown, mermaid, vega ou autre qu’on trouve un peu partout)
Passé la difficulté d’intégration, ça permet de l’ouvrir à des gens/communauté déjà consommatrices d’un logiciel/service en particulier et qui ne voudront pas migrer complètement.

Bon courage en tout cas et encore GG !
abrx

edit: pour l’hébergement tu peux éventuellement regarder les offres similaires chez OVH (même si c’est un peu moins intéressant financièrement c’est hébergé en France et hors GAFAM), faire de l’auto hébergement (raspberry pi…) ou proposer à des CHATONS d’héberger des instances :slight_smile:

hey salut,

merci de la réponse je me disais que je m’étais mal présenté :grin:
et merci des compliments :blush:

Oui c’est open source (licence MIT - je crois que ça veut dire que tout le monde peut faire ce qu’il veut avec le code)

Merci pour le conseil de framalibre. Pour GitHub, je ne connaissais ni alternatives ni ne savais que c’était microsoft maintenant, tu me conseilles quoi à la place?
Pour les mails, en perso je suis passé chez tutanota, mais pour le site vu que tout était chez google pour l’hébergement et le cloud, j’ai fait homogène. C’était une première pour héberger un site, une première pour une DB, une première pour des cloud functions, tout seul je me suis perdu, et chez google c’était le seul endroit que j’avais trouvé où je ne me liquéfiais pas devant la doc…

Mon objectif c’était d’avoir un site fonctionnel pour montrer mon idée aux autres développeurs, parce que j’avais l’impression que juste expliquer une idée théorique ça ne parlait pas beaucoup aux gens… Et j’étais frustré parceque je n’ai rien vu de tel sur internet, j’ai l’impression que mon cahier des charges était relativement unique, ainsi que la manière de l’implémenter…

L’idée derrière c’est que des gens qui ont plus l’habitude que moi, puissent s’inspirer, et je suppose qu’il y a plein de manières de construire le code meilleures que celles qui me sont venues en tête. Donc je vois tout à fait un projet repartir de zéro avec d’autres frameworks, d’autres architectures, pour s’intégrer à Framasoft par exemple si c’est désiré, ou chez n’importe qui qui pense que cette manière de résoudre le problème (un site populaire et auto-organisé pour faire émerger les facettes constructives des débats public) est intéressante.

Je serais content de pouvoir m’impliquer bien sur, c’est mon bébé, mais je suis conscient de ma faible familiarité avec tout ce monde du développement web, et de mon manque de reflexes, et d’expérience.

Tu vois, le plugin markdown, mermaid, ou vega, c’est du chinois dans l’immédiat par exemple :grin:

Je vais commencer par demander à ajouter ça à l’annuaire framalibre comme tu m’as dit, et voir ce qui en sort… J’ai vraiment besoin de plus me sentir seul dans ce truc pour avancer dans une quelconque direction :woozy_face:

Merci pour les conseils :star_struck:

gab

Pour github, tu as gitlab qui est un peu mieux là-dessus, avec le site officiel ici (la version gratuite est déjà pas mal), ou des instances hébergées par framasoft ou les CHATONS qui auront leurs propres CGU.

Pour le mail si tu crées un nom de domaine (genre chez Gandi) tu as des adresses mails fournies avec (deux chez Gandi), perso je trouve que ça fait plus propre :slight_smile:

Pour la construction ça m’a déjà l’air pas mal comme v1 hein ! First make it work, then make it better :slight_smile:
Vaut peut être mieux cerner les cas d’usages, fonctionnalités et bugs qu’il peut y avoir avant de repartir sur une stack différente !
Par rapport à l’« intégration à Framasoft », Framasoft reste une asso (dont je ne fait pas partie, ya peut être des points qui seront à confirmés par les gens compétents) et un ensemble d’outils et de ressources pour promouvoir le libre et la décentralisation.
Les services fournis se basent en général sur des outils opensources existant (référencés dans framalibre): gitlab, framagit, etherpad, mattermost… C’est vers ce genre d’outils qu’il faudrait se tourner pour les intégrations, mais uniquement après avoir cerné les cas d’usage et vu où ça serait utile de s’interfacer :slight_smile:

(et au passage je suis plutôt infra que dev web donc ton site me paraît déjà vraiment pas mal, j’ai pas (encore) les billes pour pouvoir proposer des améliorations techniques au pieds levé :wink: )

Pour l’ajout à framalibre il y a une section dédiée sur le forum je crois, peut être que @Gavy pourra t’en dire plus (désolé pour l’interpellation un peu cavalière).

abrx

NB:
markdown c’est un formatage de texte pour le structurer un peu comme quand tu mets des balises dans un forum
mermaid la même pour intégrer des schémas sous forme de texte
vega des outils pour faire des graphes de la mort
c’est des exemples de trucs qui sont intégrés un peu partout pour enrichir d’autres outils

Pour github, tu as gitlab

Pour le mail si tu crées un nom de domaine (genre chez Gandi) tu as des adresses mails fournies avec (deux chez Gandi), perso je trouve que ça fait plus propre :slight_smile:

Supers infos :+1: :+1:

fait

Ah c’est basé sur D3.js ! L’interface est faite avec D3 directement, j’ai passé du temps à rentrer dedans :hot_face:, mais maintenant c’est fait :partying_face:
En plus vu le nombre de fonctionnalités que j’ai du aller chercher, je pense qu’il fallait interagir directement avec la librairie mère…

Ce qui me déconcerte un peu dans tout les sites libres que je vois vers qui je pourrais me tourner, c’est que j’ai l’impression que beaucoup sont faits avec Drupal, moi j’ai utilisé Svelte (donc en gros j’ai écrit du html, du css, et du javascript), et beaucoup de ces sites sont basé sur du SQL, et moi j’ai choisi no-SQL pour la scalabilité et la flexibilité dont j’avais besoin…
J’avais commencé par ce qui était vendu comme plus facile, donc Drupal et SQL, mais je me suis rendu compte que c’était beaucoup trop limitatif pour mon cahier des charges, et que j’étais en train de passer un temps fou à chercher comment contourner les limitations de ces outils.

J’ai l’impression d’être dans un monde différent par rapport à ces sites quoi, et que les outils qu’ils utilisent donnent une facilité dans un cas d’utilisation classique, mais aussi brident pas mal l’imagination de ce qui serait possible de faire… (tu vois, j’ai même codé mon outil de compression et décompression du fichier JSON qui est transmis sur la page où tu vois l’arbre interactif…)

Je ne sais pas trop comment je vais faire pour ce problème là… :man_shrugging:

Pas de souci :wink:
En effet il y a une section ici pour contribuer ensemble à l’annuaire Framalibre :

1 Like

Pour la partie web c’est pas vraiment mon rayon, je regarde doucement du côté de Django et Vue pour des SPA mais je ne m’y connais pas assez pour avoir des précos d’architecture…

Pour la partie infra j’ai vu plusieurs articles sur des gens qui mettaient du MongoDB partout parce que c’était hype, mais revenaient à Postgres après des soucis d’organisation, de perfs ou d’exploit… (la gestion du json est vraiment pas mal a priori)
Après ça reste pertinent dans des cas d’usages assez précis, je connais plus la stack ELK pour le coup mais qui est vraiment orientée moteur de recherche ou monitoring.

Mais au vu de tes remarques t’as l’air d’avoir déjà expérimenté donc si ça te convient pour l’instant c’est l’essentiel !

Tu parles de quels sites par exemple ? Mattermost & co ?
Je pense qu’une bonne partie ont leurs choix techniques poussés par les stacks maîtrisées par leurs créateurs plus qu’un véritable comparatif des langages et technos existant…
Puis plus t’es dans des stacks classiques plus tu as de chance d’avoir de nouveaux contributeurs (quoique le manque général de contributions n’est pas en faveur de cet argument)

C’est quoi la limitation en question du coup ? L’intégration ?

bein je crois en fait qu’il y avait tellement de noms nouveaux au début, que je m’y perdais, et j’avais l’impression de devoir apprendre 5 ou 6 langages en meme temps.
php c’était pas joli, sql ça me demandais de devoir installer plein de trucs sur mon ordi, j’arrivais pas à trouver des infos dont j’avais besoin, et la liste de noms exotiques de plugins ou autres trucs inconnus qu’on me disait d’utiliser ne faisait que de s’allonger de jours en jours…

Un jour je tombe sur node et mongoDB, et. la on me dit que c’est des objets javascript dans la DB et du javascript pour la gestion du serveur… J’ai vu de la lumière…

Après j’ai commencé à suivre des tutos pour react basés sur node, du coup redux etc etc, j’y ai passé un mois, mais à la fin c’était une sacrée usine à gaz…

Et puis tombé sur Svelte… Qui disait que React était une usine à gaz, et que Svelte c’était facile, efficace, et rapide, et que du coup on pouvait faire des « single-page-application ». Suivi un tuto Svelte avec firebase, et la meme plus d’authentification à gérer, pas de node à gérer, pas d’express, ca ressemble à une application multi-pages de l’extérieur, mais ca n’en est pas une…

Bref, c’était simple, je n’ai strictement rien écrit de plus que du javascipt, du html et du css, et grace à ça j’ai pu faire ce site vitrine avec l’application graphique fonctionnelle, des fonctions en back end, et pas mal de trucs quand meme…

Du coup ma réaction est surtout émotionnelle je pense, mais revenir à SQL, dans ma tête, c’est me reconfronter à ce que j’ai vécu au début :sweat_smile:
En fait, j’ai pas réussi à trouver comment faire ce que je voulais faire autrement, surement parceque j’étais seul face à internet avec 0 connaissances…

Je suis en train de regarder, ça a l’air super sympa comme idée !
L’idée d’arbres est géniale, j’adore !
Je ne comprend pas tout au fonctionnement, mais je vais un peu plus prendre le temps. Je me suis créé un compte facilement, c’est cool.

Si personne ne le fait avant moi, je ferai la notice framalibre, j’ai l’habitude :slight_smile:

2 Likes

ah bein si tu me dis ce qui n’est pas clair je rajoute les explications sur le site :blush:

Bonjour,

Ça me fait penser au projet https://wikidebats.org qui manque beaucoup de clarté. Peut être qu’ajouter cette arbre sur les sujets en construction leur serait utile et surtout rendrai le site un peu plus ‹ vivant ›. Tentez de les contacter :wink:

1 Like

ah merci :pray: :pray:

Joli boulot, j’imagine même pas le temps qu’il a fallu pour y arriver ^^

Dans la mouvance démocratie participative, y a https://decidim.org/
Le Ministère de l’éducation nationale l’avait mis en place (https://etats-generaux-du-numerique.education.gouv.fr/), il peut être installé directement, mais il y a aussi une entreprise propose le service pour les personnes qui ne souhaite pas faire l’hébergement elle-même.

1 Like

Bon alors j’ai fouillé un peu le site, j’aime beaucoup le principe d’aider à la pris de décision mais aussi au processus réflexif par la visualisation.
Ça semble simple et efficace. Je ne suis pas dév web, mais je me demandais si les requêtes googleapis pouvaient être remplacées par des requêtes moins invasives ? J’avouerais que ça me titille de tester plus avant, mais google me gêne un peu.

La représentation de l’historique permet de mettre en avant les idées les plus partagées plutôt que les plus récentes, ce qui permet d’éviter d’avoir à choisir entre la dernière idée exprimée l’emporte ou le radotage (répéter pour être le dernier qui parle)

hey,

pour les requêtes je suis en contact avec un expert qui me dira surement quel type d’infrastructure serait la bonne. Y aura surement une refabrication du site derrière…

Pour le tri des messages, oui c’était important qu’on puisse filtrer les messages de plusieurs manières, disons que c’est des points d’entrée différents à chaque étape du raisonnement, l’idée étant de rapidement se faire un idée de l’opinion générale, de la polémique en cours, mais aussi de donner une chance de voir la super idée qui vient d’être posté et qui invalidera toutes les autres quand les gens l’auront vue…

Au passage, je voyais que tu étais hébergé initialement chez google mais que ça te semblait gênant, tu as trouvé une alternative qui te convienne ?

j’ai regardé OVH qui me semble la chose la plus propice avec une gestion par « cloud », mais y a quelqu’un qui bosse sur le truc en ce moment pour recréer une architecture peut être plus adaptée…

J’ai pas trop le temps de m’y mettre, sachant qu’il faudrait que je reprenne toute la gestion de la base de donnée, et de l’authentification avec OVH, sans parler de comment faire fonctionner les cloud functions chez OVH… Bref je ne m’en occupe pas pour l’instant, je laisse l’expert me dire ce qu’il en pense avant tout…

La discussion avec lui a commencé la: https://forum.mattermost.org/t/how-does-mattermost-handle-this-specific-case/10840/8 et a continué par mail…

1 Like

Hello! Je viens de me faire un compte sur ce forum car ce post m’a bien inspiré :slight_smile: Je voulais communiquer deux choses:

  1. Ton idée me fait fort penser à Reddit. En effet, Reddit est un forum où les messages sont aussi (i) organisés sous forme d’arbre (c’est à dire un post principal suivi de commentaires, commentaires aux commentaires, etc.) et (ii) soumis à un vote de « popularité ». De mon point de vue, la différence principale entre ta proposition et Reddit réside dans la navigation à travers les messages/idées. Dans ta proposition, la navigation se fait à travers une vue d’ensemble représentant la structure de la discussion. Dans Reddit, le lecteur est directement confronté à une suite de messages, dont l’ordre est déterminé par un critère que le lecteur peut choisir, basé sur les votes de popularité (new/hot/rising/top/controversial). Ceci mène aux questions suivantes: a) Quelle est la plus-value de ton idée par rapport à Reddit (e.g. la vue d’ensemble de la structure de la discussion facilite-t-elle vraiment la navigation)? Et b) Reddit est souvent critiqué en termes de qualité du processus délibératif et peut mener à de la polarisation, manipulation de votes, désinformation,… Ta proposition sera-t-elle également victime de ces phénomènes?
  2. Un tout grand merci pour ton post car il me donne de l’énergie et de la motivation. En effet, je me trouve exactement dans la même situation que toi (convaincu de la valeur d’une idée, mais 0 expérience dans le domaine pour l’implémenter). Ca fait un bout de temps que j’ai peur de me lancer dans le code, et tu viens de me donner un bon boost en me montrant que c’est possible!
1 Like

je viens de le découvrir

L’interface graphique (je trouve que la visualisation des différentes branches chez Reddit fait mal aux yeux avec l’indentation).
Le fait de pouvoir filtrer (supprimer) les branches qui découlent d’un noeud controversé (ou pas). Si on ne filtre pas, on peux trouver les points unanimes à n’importe quel endroit de l’arbre, meme si c’est un commentaire de commentaire… etc … de commentaire. Si on filtre, on voit surtout les suites de messages unanimes (ce que j’appelle raisonnement, mais qui peut ne pas l’être)

Le plus important étant que le mode filtré (mode raisonnements) qui est le plus simple à lire et donc le premier que l’on consulte lorsqu’on rentre dans le sujet, montre ce qui est unanime uniquement. Donc l’idée était que ça pousserait les gens qui cherchent à ce que leur message soit lu, à être clairs, à l’écoute de leur contradicteurs, et a exprimer les besoins communs qui sont sous-jacents aux controverses , et communs aux deux cotés des controverses.
Souvent dans les controverses, ces besoins sous-jacents ne sont pas exprimés et les gens s’affrontent sur leur manières différentes de répondre à leur besoins.
La CNV (communication non violente) montre qu’on ne peut pas sortir des controverses et des conflicts si on n’exprime pas clairement les besoins de base présents dans chaque camps, et montre que lorsque les besoins sont exprimés, la tension diminue fortement et l’autre camp a naturellement tendance à prendre en compte la résolution du besoin de l’autre et proposer une solution qui convient réellement… Et a exprimer son besoin propre… C’est un cercle vertueux qui se met en place automatiquement en fait…
Du coup l’espoir c’est que la forme de cet outil fasse en sorte que celui qui exprimera les besoins sous-jacents plutôt que les idées controversées gagne plus d’unanimité, soit donc plus visible dans l’arbre, et que le cercle vertueux se mette en place spontanément, simplement grace à la manière dont le site est fait.

Supers liens :+1: :+1:
Oui, sauf si la meilleure manière de manipuler les votes est de chercher l’unanimité dans la controverse par l’expression des besoins sous-jacents comme dit juste au dessus.
Apres si y a pas de controverse du tout et que tout le monde va dans le mur, ça changera rien.

Derien :wink: tu vas faire un post pour présenter ton idée?

Merci @gabriel
J’approfondis en particulier le sens de la visu sur lequel j’ai une incompréhension, mais mon sentiment global reste positif :slight_smile:

En lisant le mode d’emploi, la visualisation est corrélée aux message « X% des gens sur Y aiment ce message ».
Je comprend que :

  • X% est la proportion de votes positifs pour le message sur le nombre total de vote exprimés (pour+contre) ;
  • Y est le nombre de votes total de ce message (pour+contre) ;
  • taille+couleur d’un noeud => est d’autant plus gros et clair que le nombre de votes POUR la question associée au noeud est grand ;
  • épaisseur relative d’une branche AB (A vers la racine, B vers la feuille) => nombre de votes sur la question du noeud B (votes pour+contre).

Les exemples que je j’ai vu indiquent que :

  • les répondants peuvent ne pas répondre à une question sur un chemin vers une feuille ;
  • une question peut être insérée entre deux questions déjà existante.
    Le nombre de votants ne décroît donc pas forcément en allant vers les branches.

Toutefois, les exemples de https://arborium-forum.web.app/fr/tree/random vont à l’encontre de ma compréhension de l’épaisseur des branches.
Par exemple, dans la figure suivante, l’épaisseur de branche varie alors que le nombre de personnes qui se sont exprimées ne varie pas :
Arborium - épaisseur branche

Est-ce que la page https://arborium-forum.web.app/fr/presentation est à jour ? Ou est-ce un bogue de l’affichage ?