URL: https://linuxfr.org/news/gestion-de-jardin-garden-party Title: Gestion de jardin : Garden party Authors: mtancoigne Ysabeau đ§¶ et Pierre Jarillon Date: 2020ćčŽ12æ23æ„T01:28:38+01:00 License: CC By-SA Tags: jardin, vuejs, openlayers et garden_party Score: 61 Cette dĂ©pĂȘche concerne Garden Party, une application web opensource de gestion de jardin. ## Contexte LassĂ©s de la ville et de ses sirĂšnes, nous avons cette annĂ©e cherchĂ© Ă nous en Ă©loigner. AprĂšs plusieurs visites et quelques concessions, nous avons trouvĂ© quelque chose dans nos moyens. Environ 1 700m2 de terrain contenant dĂ©jĂ quelques arbres, oĂč nous allons nous mettre Ă jardiner. Lâobjectif est encore flou, mais il est question de rĂ©silience. Et pour apprendre, jâaime faire. En attendant la vente, nous avons commencĂ© Ă rĂ©flĂ©chir Ă notre futur jardin : quoi planter et oĂč ? ---- [Instance active](https://garden-party.experimentslabs.com/) [Sources](https://gitlab.com/experimentslabs/garden-party) [Manuel utilisateur](https://doc.garden-party.experimentslabs.com/) [Chat Matrix](https://matrix.to/#/!fROsPDUgtYILajhMWg:matrix.org) [Liste de diffusion](https://framalistes.org/sympa/subscribe/garden-party) [Blog](https://blog.garden-party.experimentslabs.com/) ---- La carte du jardin ------------------ Nous avons donc commencĂ© Ă dessiner notre jardin, dâabord Ă partir de calques rĂ©alisĂ©s sur des vues aĂ©riennes, puis en utilisant [Inkscape](https://www.inkscape.org). En quelques heures, nous sommes arrivĂ©s cette carte-ci :  Puis nous l'avons peuplĂ©e :  En gros, nous avons remis les arbres et arbustes, colorĂ©s par genre, la taille reprĂ©sentant grosso-modo leur Ăąge. Les points reprĂ©sentent les zones qui dâaprĂšs nous seront principalement ombragĂ©es. Et la carte a Ă©voluĂ©, avec diffĂ©rents essais, pour arriver, Ă son apogĂ©e, Ă un ensemble totalement surrĂ©aliste et ingĂ©rable pour des dĂ©butants :  Il faut gĂ©rer tout ça... ## Naissance de Garden Party En attendant la vente, nous trĂ©pignons. Les quelques travaux concernant la maison sont chiffrĂ©s, reste lâinconnue : le jardin. La carte est jolie mais ne permet pas de suivi, car... câest une carte. Donc lâidĂ©e germe, au fil de nuits Ă me demander par oĂč commencer, comment garder une trace de ce qui sera fait, de crĂ©er une application. Son but sera simple pour commencer : pouvoir recrĂ©er la carte que nous avions imaginĂ©e et assurer un suivi de la vie de ces Ă©lĂ©ments, tout en planifiant les actions Ă mener, plant, taille, rĂ©colte... Le confinement de novembre liĂ© Ă la COVID19 a donnĂ© un peu de temps pour dĂ©velopper une application qui rĂ©pond Ă ce cahier des charges. Câest donc avec un code opensource (licence MIT), que Garden Party voit le jour.  ## Maturation et publication Au cours des quelques semaines de dĂ©veloppement initial, il a Ă©tĂ© proposĂ© de pouvoir utiliser les cartes OpenStreetMap directement en fond de plan, en plus des images tĂ©lĂ©versĂ©es et câest maintenant possible.  De plus, il a fallu crĂ©er une bibliothĂšque de plantes, ce qui a menĂ© Ă ces diffĂ©rents points : - le _genre_ des plantes ? (la _famille_ aurait peut-ĂȘtre Ă©tĂ© plus pertinente, Ă discuter...) ; - les relations avec dâautres plantes ? (les tomates ont une bonne relation avec les Ćillets dâinde) ; - une description ? (OK, on les a pompĂ©es sur Wikipedia, mais du coup, il fallait une _source_ pour l'indiquer)  Chaque plante « appartient » Ă un des niveaux que lâon retrouve dans les concepts de forĂȘt-jardin (du sou-sol Ă la canopĂ©e), ce qui permet de filtrer lâaffichage sur la carte. On peut planter des Ă©lĂ©ments « seuls », comme des arbres, ou crĂ©er des parcelles contenant plusieurs Ă©lĂ©ments. Il est possible dâajouter des animaux sur les cartes, car oui, ~~ce sont des plantes~~ ils ont leur place dans les jardins. Bon, la bibliothĂšque en est exempte pour le moment. Un Ă©lĂ©ment (animal ou vĂ©gĂ©tal) a une sorte de cycle de vie: _planifiĂ©_ (on veut/va en mettre), _mis en place_ (on lâa plantĂ©/mis en libertĂ©) ou _retirĂ©_ (le plant est mort, on lâa coupĂ©, lâanimal \*nâest plus lĂ \*).  Chaque action est planifiable et pour les plus courantes, on les retrouve dans une liste de « trucs Ă faire »  Chaque Ă©lĂ©ment a son historique dâactions. [Historique](https://blog.garden-party.experimentslabs.com/generated/assets/images/20201216_gp_historique-988-16f271336.png) Une vue dâensemble affiche tous les diffĂ©rents Ă©lĂ©ments.  ### Techniquement parlant... Câest une application Ruby on Rails (web, donc) avec, pour lâ_application_, un frontend en VueJS et des cartes affichĂ©es grĂące Ă OpenLayers. Pour lâadministration, des vues « standard » Ruby on Rails. Une API REST est disponible pour les utilisateurs inscrits (Ă voir sâil ne faudrait pas lâouvrir en partie pour la librairie). Une documentation Swagger est disponible aussi, pour un petit confort non nĂ©gligeable si vous voulez crĂ©er votre client. Le code est testĂ©, au moins sur le _backend_ (droits, retours dâAPI, comportement des actions...), et les tests pourraient ĂȘtre amĂ©liorĂ©s sur le _frontend_. Le support multi-langue est implĂ©mentĂ© ; lâensemble de lâapplication est traduit en français/anglais (mis Ă part les donnĂ©es : câest en français) Pour les devs Rails + Vue, il y a des trucs potentiellement intĂ©ressants: des tĂąches Rake pour gĂ©nĂ©rer les **stores VueX** et des simili-modĂšles en JS; des **_templates_ de _scaffolding_** modifiĂ©s pour les contrĂŽleurs, vues dâadministrations et tests de requĂȘte ; une gem qui **teste les retours API avec RSpec** et gĂ©nĂšre la doc Swagger (elle aurait bien besoin dâamour, cette gem) ; les traductions `vue-i18n` sont gĂ©rĂ©es par Rails \o/... ## Futur de Garden Party Le projet est jeune mais a un potentiel dâĂ©volution intĂ©ressant ; hormis le fait quâil soit libre, quelques idĂ©es font partie de la feuille de route aujourdâhui, et seront dĂ©veloppĂ©es si une communautĂ© se forme autours de ce logiciel : - intĂ©gration de donnĂ©es gĂ©ographiques ; - statistiques gĂ©ographiques (quâest-ce qui est plantĂ© quand et oĂč ?) ; - partage dâagencements fonctionnels (tel plant marche bien avec tel plant, plantĂ©s de telle maniĂšre) ; - intĂ©gration de donnĂ©es mĂ©tĂ©orologiques ; - sauvegarde de photos des plants ; - partage de donnĂ©es inter-instances : bibliothĂšque de plantes, de statistiques, etc. (ActivityPub ?). ## ĂcosystĂšme Si on peut parler dâĂ©cosystĂšme, on a [une instance qui tourne](https://garden-party.experimentslabs.com), un semblant de [manuel utilisateur](https://doc.garden-party.experimentslabs.com) et ce blog. Ah, et un [chat matrix](https://matrix.to/#/!fROsPDUgtYILajhMWg:matrix.org), une [liste de diffusion](https://framalistes.org/sympa/subscribe/garden-party) et [un blog](https://blog.garden-party.experimentslabs.com) avec application dans la vie rĂ©elle. ## Vous voulez participer ? - Vous ĂȘtes dev VueJS et que vous aimez Ă©crire des tests, bah... plus que bienvenue, on en manque cruellement (tests avec `vue-test-utils` et `Jest`) - Vous avez utilisĂ© lâapplication mais lâinterface vous rebute, on en discute, elle rĂ©pond au besoin de ses devs pour le moment... Ce qui est trĂšs bien, mais pas assez pour ĂȘtre utilisĂ© par dâautres. - Les pictos dâĂ©lĂ©ments sont gĂ©nĂ©rĂ©s (SVG) et peu diffĂ©renciables : un _Poirier_ et un _Pommier_ auront exactement le mĂȘme picto (mĂȘme _niveau_, mĂȘme premiĂšre lettre). Ce serait top dâavoir des pictos par famille (forme par famille, lettre par Ă©lĂ©ment, par exemple). - Vous voulez plus de contenu dans la bibliothĂšque, proposez ! - Heu... On est des quiches en jardinage... les termes ne collent pas ? On veut apprendre ! Dites-nous tout ! - Il manque des actions... Si vous voulez nous dire merci, câest gentil. Et si vous nous dites que câest tout pourri, sans explication... → `/dev/null` Une nouvelle aventure commence !