Journal Garradin : gestionnaire d'association léger, complet et libre

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
15
15
juin
2012

Cher journal, si je prends le clavier en ce jour c'est pour t'annoncer, de manière discrète, la création de Garradin, un gestionnaire d'association en ligne.

Il existait déjà Piwam, mais qui est abandonné, et Galette, qui était aussi abandonné au moment de la création de Garradin, mais qui a repris du service depuis (bonne nouvelle !), et maintenant il y a aussi Garradin.

Garradin, écrit en PHP (non ne fuyez pas), s'installe en une décompression et 1 clic (utilisation de SQLite comme base de données), est relativement léger (250Ko compressé, moins de 1,5Mo décompressé), et se veut être une solution complète de gestion de petite et moyenne association. Il est prévu de pouvoir :

  • ajouter et gérer les adhérents ;
  • tenir une comptabilité en partie double, et ce de manière simple et abordable ;
  • gérer les cotisations, les rappels de cotisation non payées ;
  • envoyer des mails aux membres et entre membres ;
  • gérer et envoyer une newsletter ;
  • gérer des membres par catégories ;
  • prendre des notes en réunion ;
  • archivage des documents administratifs ;
  • s'inscrire soi-même à l'association, puis payer la cotisation en ligne directement ;
  • avoir un site web public simple mais puissant (squelettes similaires à SPIP) ;
  • s'interfacer avec des outils spécifiques à l'association via une API JSON.

Vous l'avez vu, ça va un peu plus loin que Piwam ou Galette, le but étant qu'une association ait avec Garradin tout ce dont elle ait besoin de base pour son fonctionnement, et que tout soit abordable de manière simple, mais qu'en même temps rien ne bloque pour évoluer (export des membres et de la compta dans des formats usuels, API, être proche de SPIP sur le wiki permet de remplacer le site public par SPIP sans tout chambouler les habitudes, etc.).

La licence choisie est l'AGPLv3.

Pour le moment ce qui est fonctionnel dans la version courante (0.3.3) :

  • ajout, gestion, modification d'adhérents ;
  • échange de message entre adhérents ;
  • envoi de message collectif aux adhérents ;
  • newsletter ;
  • wiki complet avec historique des pages, recherche, etc. ;
  • site web public (qui se repose sur le wiki et utilise des squelettes similaires à SPIP) ;
  • catégories de membres ;
  • etc.

Par contre Garradin ne fera pas :

  • de l'impression d'étiquettes ou de cartes de membres ;
  • de la gestion ERP : pas de génération de facture, de gestion des salaires, etc. ;
  • du CMS complet, pas d'intérêt à refaire un second SPIP.

La prochaine version de Garradin, la 0.4.0, se concentrera sur l'ajout de la comptabilité, par un journal comptable complet (ajout, édition, suppression, liste, et recherche d'opérations dans le journal), relié au plan comptable associatif français, mais pas encore l'établissement d'exercices comptables par exemple.

Si je poste aujourd'hui c'est pour vous inciter à essayer ce petit logiciel, à faire des retours, et si certain-e-s sont intéressé-e-s, à participer au développement. À ce sujet, le développement est assuré avec Fossil, de manière ouverte, et j'accueillerais avec plaisir tout contributeur au sein du projet, que ça soit pour rédiger la documentation ou participer au code.

La page du projet : http://dev.kd2.org/garradin/

Des images de l'interface web :

  • # depeche ?

    Posté par  . Évalué à 6.

    j'ai poussé on journal en depeche, apres relecture/moderation, ce sera publié et te donnera une meilleur visibilité

  • # Module SPIP

    Posté par  (site web personnel) . Évalué à 2.

    Techniquement, quitte a être proche de SPIP, cela ne pourrait pas devenir un module de SPIP donc avoir aussi toute la puissance de SPIP ?

    • [^] # Re: Module SPIP

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Même si j'apprécie la philosophie et les idées de SPIP, se plonger dans son code est une aventure que j'apprécie beaucoup moins… Voir que je crains avec défiance (code procédural, date de PHP3, etc.).

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

      • [^] # Re: Module SPIP

        Posté par  (site web personnel) . Évalué à 3.

        Bonjour,

        Spip à beaucoup évolué. Il y a malheureusement beaucoup de code objet maintenant, ce qui apporte un confort pour les développeurs, mais est plus coûteux en terme de ressources CPU et RAM.

        T'es sur qu'il reste des trucs en php3? Le support de la version 4 est déjà terminé, alors la version 3… Certes, la manière de coder dans certaines partie peut faire penser à la manière dont on le faisait en php3, mais en principe, depuis le temps, il ne devrait plus rester grand chose datant de l'époque de php3.

        Tu dois probablement confondre avec une très ancienne version de Spip.

        Bonne journée
        G

        Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

        • [^] # Re: Module SPIP

          Posté par  (site web personnel, Mastodon) . Évalué à 3.

          Un exemple au hasard :

          function spip_mysql_query($query, $serveur='',$requeter=true) {
          
                  $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
                  $prefixe = $connexion['prefixe'];
                  $link = $connexion['link'];
                  $db = $connexion['db'];
          
                  $query = traite_query($query, $db, $prefixe);
          
                  // renvoyer la requete inerte si demandee
                  if (!$requeter) return $query;
          
                  if (isset($_GET['var_profile'])) {
                          include_spip('public/tracer');
                          $t = trace_query_start();
                  } else $t = 0 ;
          
                  $connexion['last'] = $query;
                  $r = $link ? mysql_query($query, $link) : mysql_query($query);
          
                  if ($e = spip_mysql_errno($serveur))    // Log de l'erreur eventuelle
                          $e .= spip_mysql_error($query, $serveur); // et du fautif
                  return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
          }
          
          

          Pas d'exceptions, du code procédural, sans objets, avec utilisation des globales, etc. Faut franchement être maso pour jouer avec du code comme ça.

          « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

  • # une fonctionnalité à ajouter

    Posté par  . Évalué à 9.

    c'est bien de voir un nouvel outil pour gérer les assos mais il manque toujours LA fonctionnalité bien plus intéressante qu'un éventuel export vers la compta : la création de réunion à la *oodle, c'est ce qui est fait en permanence dans une association, pour le CA, les réunions de vie de l'association et personne ne le propose.

    L'intérêt de le faire dans un tel outil et pas à l'extérieur : re-proposer des réunions pour des groupes déjà constitués en 1 clic, faire des relances automatiques si quelqu'un n'a répondu, bref, faire gagner du temps !

    • [^] # Re: une fonctionnalité à ajouter

      Posté par  . Évalué à 3.

      une autre fonction qui manque aussi souvent c'est le partage de calendrier (Vie de l'asso, activité …), du coup on se rabat sur icalxchange et consort.

    • [^] # Re: unefonctionnalité àajouter

      Posté par  (site web personnel) . Évalué à 3.

      Framadate fait ça.

    • [^] # Re: une fonctionnalité à ajouter

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Oui tu as raison, je me tâte à l'intégrer à Garradin, mais potentiellement cela peut devenir une fonctionnalité complexe, s'il y a plusieurs agendas à gérer, etc.

      Actuellement on a un genre de Framadate aussi en PHP/Sqlite3 mais externe à Garradin, qui permet de planifier qui vient aux permanences, et qui envoie un mail chaque début de semaine pour dire si chaque permanence est assurée ou non.

      Je pense que le besoin va au delà de Garradin et je pense sortir un (tout petit) logiciel à la doodl/Framadate, car ça peut aussi intéresser des gens en dehors des assos.

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

    • [^] # Re: une fonctionnalité à ajouter

      Posté par  (site web personnel) . Évalué à 2.

      tu n'utilises pas http://rendezvous.alacon.org/ ?

  • # Bien

    Posté par  . Évalué à 2.

    tres bien je vais tester cela de ce pas

    Piwam était prometteur mais c'est arrêté assez vite, les dernières évolutions de galette sont aussi plutôt sympa, mais le fait d'avoir un moyen de com interne (wiki , note de réunion) est une trés bonne idée.

  • # Un problème d'archive ?

    Posté par  . Évalué à 2.

    s'installe en une décompression et 1 clic

    J'aurais bien aimé que ce soit si facile.

    Je télécharge.
    Je décompresse.
    Et là…. Je fais quoi ?
    J'ouvre un ticket :)

    • [^] # Re: Un problème d'archive ?

      Posté par  (site web personnel) . Évalué à 0.

      ben étant donné que c'est fait en php je dirais que tu te rends sur l'url où tu l'as décompressé.
      Tu l'as bien décompressé dans un serveur web gérant le php, non ? (désolé mais j'ai pas réussi à saisir si en fait tu posais une vrai question ou pas)

    • [^] # Re: Un problème d'archive ?

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Une fois l'archive décompressée tu peux faire pointer un virtual host sur le répertoire www dans le répertoire de garradin, et ça roule ensuite.

      Si tu ne veux pas de vhost dédié, il faut aller dans le répertoire www/ de l'installation.

      Après ça tout est automatique, faut juste dire le login et le mot de passe que tu veux.

      Par contre je viens de tester il y avait un petit bug à l'installation que je viens de corriger dans une 0.3.4.

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

      • [^] # Re: Un problème d'archive ?

        Posté par  . Évalué à 1.

        Bonjour,

        Lorsque je pointe sur le répertoire d'installation/www, j'ai un message:

        Le module de bases de données SQLite3 n'est pas installé !

        Pourtant, SQLite est bien installé….

        • [^] # Re: Un problème d'archive ?

          Posté par  . Évalué à 2.

          Il faut que la bibliothèque PHP qui gère le sqlite soit aussi installée. Le paquet doit sans doute s'appeler php-sqlite ou php5-sqlite.

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # Pas de framework?

    Posté par  (site web personnel, Mastodon) . Évalué à 6. Dernière modification le 15 juin 2012 à 10:19.

    Je trouve dommage qu'un framework n'ait pas été utilisé pour le développement.

    Il y en a de très léger, et cela aurait permis de :

    • ne pas avoir eu à réinventer la roue sur de nombreux composants. Je pense par exemple à l'authentification, le moteur de template (certains framework proposant un système de thème) etc.. Cela aurait pu te permettre de te de te concentrer uniquement sur le code "métier", et pas sur les trucs que l'on trouve nécessairement dans tous les projets.

    • de pouvoir faire évoluer plus facilement l'outil. Par exemple, si tu utilisais un framework à modules (Jelix, Symfony2…), il serait plus rapide d'intégrer des nouvelles fonctionnalités comme une interface d'admin, gestion d'utilisateurs, gestion des droits, un wiki, système d'authentification avec ldap etc..

    Au sujet de la base de donnée utilisée, tu imposes sqlite3 (sachant que sqlite, dans le cadre d'un site web, bof en terme de robustesse et fiabilité etc). C'est bien dommage. Tu aurais utilisé la couche d'abstraction PDO incluse dans PHP, l'utilisateur aurait pu choisir le type de base qu'il veut utiliser. Et toi tu n'aurais pas eu à faire cette classe Garradin_DB qui au final ne servirait à rien puisque PDO implémente tout ce que tu as reprogrammé.

    • [^] # Re: Pas de framework?

      Posté par  . Évalué à 4.

      C’est rigolo, en voyant la taille du fichier j’ai pensé a Limesurvey, dont la version courante fait une cinquantaine de Mo, et dont l’alpha de la prochaine version pèse dans les 100mo, entre les deux il semble qu’ils aient décidé de passer à un Framework (ou alors, la version est pleine de tests, et la release sera plus légère). Ce n’est pas gênant, et les frameworks c’est bien, ça évite de réinventer la roue, mais parfois est-ce vraiment indispensable?

      J’sais pas si de ne pas supporter autre chose que SQlite est si gênant, en terme de perfs, a priori, l’outil ne sera pas consulté par des centaines de visiteurs en simultané, et ça enlève une étape de configuration, saisir les infos pour la base MySQL, ce qui pour les utilisateurs cible sera un soulagement (for instance, aucun de mes clients n’a la moindre idée de comment fonctionnent les CMS qui font tournés leurs sites. Et ils ne veulent pas en savoir plus en général)

      Depending on the time of day, the French go either way.

    • [^] # Re: Pas de framework?

      Posté par  . Évalué à 3.

      Je suis d'accord pour le framework, ça aide à mutualiser le code.
      Maintenant l'approche semble être légère (SQLite, Fossil …) et si Jelix n'est pas trop lourd, il n'en est pas de même - je crois - pour Symfony. Mes connaissances en PHP sont datées mais il existe des micro-frameworks il me semble, dont l'un des plus anciens et connus est CodeIgniter.

      Quant à SQLite3, s'il est vrai qu'une interface commune, permettant aux utilisateurs de choisir, pourrait être bienvenue, je ne trouve pas que ce soit un mauvais choix, surtout au niveau de la fiabilité. SQLite est un base matûre, fortement testée. Le seul reproche qu'on peut lui faire dans le cadre d'une application Web est le verrou exclusif sur toute la base de données lors d'une écriture. Mais comme dit plus haut, ce type de projet n'a pas pour but d'atteindre des centaines de simultanés par instance. Et dans ce cas, SQLite semble largement suffisant. Cela change des projets qui imposent MySQL.

      • [^] # Re: Pas de framework?

        Posté par  . Évalué à 2.

        C'est juste dommage d'imposer sqlite alors qu'en hebergeant le site sur un mutualisé, on peut profiter au mieux des services inclus avec l’hébergeur (backup notamment).

        Après comme le fait remarquer le premier commentaire, c'est d'imposer quoique soit au niveau des db alors qu'il existe dans beaucoup de langages l'abstraction nécessaire pour découpler l'appli du système de db.

        • [^] # Re: Pas de framework?

          Posté par  (site web personnel) . Évalué à 4.

          Il y a des herbergeur mutualisé permettant l'utilisation de sqlite.
          De plus Bohwaz ne semble imposer aucun choix vu que le logiciel semble libre.

        • [^] # Re: Pas de framework?

          Posté par  (site web personnel, Mastodon) . Évalué à 5.

          L'abstraction des spécificités des bases SQL déjà va falloir me trouver un truc léger qui sait faire ça, ça m'intéresse pas mal, mais perso j'ai pas trouvé…

          Comme dit, c'est prévu d'étendre plus tard, le but premier du soft est de fonctionner et d'être utilisable maintenant par des assos et des gens qui ne savent même pas ce qu'est une base de données ;)

          « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

    • [^] # Re: Pas de framework?

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Hello Laurent,

      En tant que créateur de Jelix je comprends ton support indéfectible au framework ;)

      Pour info Garradin ne part pas de zéro, en effet il intègre de nombreux composants existants :
      - Template_Lite, moteur de template, fork de Smarty et très léger
      - Garbage2xhtml qui s'occupe de nettoyer le code HTML entré par les utilisateurs
      - MiniSkel qui parse les squelettes SPIP
      - etc.

      Concernant la question framework ou pas, la question n'est pas la même s'agissant de Symfony2 (que je ne supporte vraiment pas) que de Jelix (qui est déjà placé bien plus près de mon cœur de développeur). Mais la question fondamentale surtout c'est que oui un framework fait gagner en efficacité, ce qui est pertinent pour un usage professionnel ou il faut être productif et rapide, mais pour un projet perso et bénévole le plus important pour moi est le plaisir qu'on prends à coder, à inventer, à créer. Dans cette optique il est plus intéressant de maîtriser le code et inventer des solutions.

      Concernant la base de données, il est prévu de passer à PDO pour gagner en indépendance vis à vis du moteur utilisé : https://fossil.kd2.org/garradin/tktview?name=82059f336a

      Et d'ailleurs l'objet Garradin_DB devrait permettre de passer à PDO de manière relativement simple, car il sert d'abstraction déjà. Mais le problème c'est que PDO ne suffit pas à permettre d'utiliser un autre moteur. Ça serait cool de pouvoir choisir mySQL ou pgSQL aussi, mais c'est pas aussi simple que passer à PDO. En effet, chaque BDD a des différences : mySQL utilise FULLTEXT pour la recherche, SQLite des tables virtuelles avec FTS4, la gestion des dates est également totalement différente, etc.

      Quand à la fiabilité de SQLite3 c'est relativement fiable selon mon expérience, en tout cas j'ai eu bien moins de problèmes qu'avec mySQL. Le souci qui pourra se poser sera au niveau de la concurrency, mais bon normalement c'est quand même suffisant.

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

      • [^] # Re: Pas de framework?

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        en effet il intègre de nombreux composants existants

        Toutes mes excuses alors, je n'avais pas vu en effet ce script shell qui récupérait des lib externes :-)

        Pour PDO, tant mieux si tu comptes l'utiliser. Même si les bases proposent des fonctionnalités différentes, cela facilite tout de même les choses au niveau code, pour les contributeurs qui voudrait proposer le support pour une base spécifique: il n'y a que le problème SQL à s'occuper.

        Quand à la fiabilité de SQLite3

        Il faut se méfier tout de même. SQlite avait tendance à crasher (et donc adieu la base) quand deux process tentaient d'accéder à la même base. Et donc en environnement web, avec un serveur web configuré en multi process, ça peut craindre. C'est pour ça qu'il vaut mieux laisser le choix de la base aux utilisateurs.

        • [^] # Re: Pas de framework?

          Posté par  (site web personnel, Mastodon) . Évalué à 4.

          Le cas dont tu parle est normalement impossible, et crois-moi j'ai testé SQLite3 sur des centaines de milliers de requêtes simultanées à la seconde : c'est très efficace.

          Le cas dont tu parles m'est totalement inconnu sur tous mes essais je n'ai jamais réussi à corrompre une base SQLite3. Le pire qui puisse arriver c'est qu'un process ait déjà acquis le lock d'écriture, il faut donc patienter quelques millisecondes pour ré-essayer (méthode busyTimeout de SQLite3 en php).

          « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

  • # Hébergement

    Posté par  . Évalué à 2.

    Bonjour,

    Son utilisation avec un hébergement de type pages perso de Free est-il possible (en particulier pour l'aspect sqlite)?

    Comme dit plus haut l'aspect *oodle et sondage auprès des adhérents en général est super utile…

    En tout cas bravo, je pense que je vais aller tester ça…

    Guilhelm

    • [^] # Re: Hébergement

      Posté par  (site web personnel) . Évalué à 1.

      Vue que sqllite est une base de donnée sous forme de fichier, attendu que tu as le droit d'écrire un fichier ( faudra droit le droit d'écriture au serveur web comme pour les répertoires d'upload d'image ou autre ) aucun problème !

      Y a juste si tu veux mettre les mains dans la base ou un shell est nécessaire ce que tous les hébergeur ne fournissent pas, auquel cas tu DL en local et fait ta cuisine…

      Fuse : j'en Use et Abuse !

    • [^] # Re: Hébergement

      Posté par  (site web personnel, Mastodon) . Évalué à 4.

      Non tant que Free ne met pas à jour son PHP c'est impossible, leur version date de … loin et ne gère pas SQLite3 ni plein de trucs utilisés dans le code de Garradin.

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

      • [^] # Re: Hébergement

        Posté par  . Évalué à 3. Dernière modification le 16 juin 2012 à 13:30.

        ayant essayé d'installer Garradin sur les pages perso free de mon assoc, et comme cela ne fonctionnait pas, je me suis un peu renseigné, et j'ai lu que free était en train de migrer toutes les pages perso vers php 5.3, mais ça va prendre encore un peu de temps avant que tout soit fait (ils prévoient la fin pour juillet / août, ce qui est quand même bientôt)

        http://www.freenews.fr/spip.php?article11813
        http://fr.piwigo.org/forum/viewtopic.php?id=21890

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: Hébergement

          Posté par  (site web personnel, Mastodon) . Évalué à 2.

          Ah bah c'est une bonne nouvelle, et c'est pas trop tôt, en espérant que ça aille mieux, parce que leur PHP 5.1 était bugué jusqu'à la moelle en plus.

          On verra avec cette mise à jour si ça roule du coup :)

          « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

  • # Compatibiltié ascendante ?

    Posté par  . Évalué à 1.

    Bonjour,

    Je suis très intéressé par Garradin, pour mon association (en utilisation interne seulement ; gestion des adhérents et éventuellement de la compta)

    Ma question est : est-ce qu'on peut l'utiliser en production ? Parce que j'ai pas vu d'outils pour exporter / importer la liste des membres, et si je commence à l'utiliser j'aimerai ne pas perdre mes données. Y a-t-il une compatibilité ascendante ?

    J'aime assez les catégories de membres.

    Quand j'aurai un peu de temps, je serai éventuellement peut être intéressé en tant que développeur, histoire de ne pas partir de zéro. Par contre je trouve Fossil hyper mal foutu, je sais même pas si on peut s'inscrire… et j'ai pas non plus trouvé le moyen de te contacter.

    Cordialement.

    • [^] # Re: Compatibiltié ascendante ?

      Posté par  (site web personnel) . Évalué à 2.

      et j'ai pas non plus trouvé le moyen de te contacter.

      par la gestion de demandes ? cf. http://fossil.kd2.org/garradin/reportlist

    • [^] # Re: Compatibiltié ascendante ?

      Posté par  (site web personnel, Mastodon) . Évalué à 4.

      Pour me contacter : http://bohwaz.net/contact/

      Pour fossil il n'y a pas d'inscription possible, il faut me demander que je te crée un compte.

      Je commence avec Fossil et le site du projet est spartiate, c'est le début, d'où l'annonce en journal pour fédérer les bonnes volontés afin que le projet murisse ;)

      Pour Garradin oui les versions suivantes sauront migrer depuis les versions actuelles (je m'occupe de 2 assos qui utilisent Garradin au quotidien, donc on veut pas perdre nos données aussi). L'export n'est pas une priorité pour le moment, mais oui ça sera clairement dispo à terme, en CSV déjà. C'est pas compliqué à coder si tu veux t'y mettre ceci dit :)

      « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.