Makina Blog

Le blog Makina-corpus

Le nocode / low-code chez Makina Corpus avec LocoKit


Cet article explique les termes de nocode et low-code et présente le nouvel outil low-code créé par des développeurs et développeuses d'Autonomnes et Makina Corpus, LocoKit.

Les outils *nocode* et *low-code* sont des termes qui reviennent souvent dans l'actualité numérique. Que signifient vraiment ces mots, quels sont ces outils, et comment  prendre en compte ce nouveau courant ?

Dans cet article, nous vous apportons des réponses à ces questions avec notamment la présentation d'un nouvel outil fabriqué en interne, [LocoKit](https://locokit.io).

Image
LocoKit

LocoKit, c'est quoi ?

LocoKit, pour "Low-code Kit", ou également "LCK" en acronyme. Cet outil libre facilite la gestion de vos données et la collaboration entre vos utilisateurs. LocoKit est utilisé par nos clients, et également nous-même, pour accélérer le développement initial du projet client. Cette solution peut également être utilisée par d'autres personnes librement car le code est open source et disponible sur github.

C'est quoi le low-code ? Et le nocode ? Vous ne connaissez pas d'outils low-code ? Vous avez du mal à comprendre ce que ça fait ?

On tente de vous expliquer ça !

Un peu de contexte

Quelques explications s'imposent autour de ces nouveaux "buzz" words.

Si ces mots restent récents dans la bibliographie, "low-code" apparaît en 2014 dans une analyse du cabinet Forrester, il n'en reste pas moins que les concepts eux sont plus anciens.

Concernant le code, les lignes de code sont habituellement écrites par des développeurs-euses, et sont utilisées pour fabriquer des applications métiers.
Que ce soit des applications desktop, web, mobiles, il n'en reste pas moins que la fabrication est réservée à la population des codeurs-euses.
Les éditeurs de code type Visual Studio Code, IntelliJ, Sublime Text ou autres sont les outils des développeurs-euses et les langages Python, JavaScript, PHP sont ceux que nous utilisons chez Makina Corpus et Autonomens.

"Nocode"

À l'inverse, le nocode (définition wikipedia) représente des outils qui s'adressent principalement à un public non codeur.
L'idée est que la fabrication de l'application ou de l'outil métier soit facilitée et accessible pour qu'une personne (ou une équipe) non formée à l'informatique ou au développement puisse arriver à construire son outil en toute autonomie.
Les outils nocode présentent des interfaces type WYSIWYG (What You See Is What You Get), et offrent une visualisation directe du résultat obtenu.
Par exemple, les outils de gestion de contenu (CMS) type Wordpress, Drupal (dont Makina est experte) sont des outils nocode.

"Low-code"

Quant à lui, le low-code (définition wikipedia) représente un d'entre eux.
À la fois nocode et code, ce sont des outils accessibles au plus grand nombre.
Ces outils permettent de fabriquer des bases de données, des applications, sans connaissance particulière dans le développement et permettent également d'aller plus loin à travers des interfaces plus "expertes" où l'utilisateur-trice peut écrire un peu de code.
Par exemple, un tableur avec des formules, des outils de visualisation de données (dataviz) avec l'écriture de requêtes, ou bien encore des outils d'automatisation où un peu de code permet d'aller plus vite que d'utiliser des interfaces dédiées.
Les outils type tableur sont de bons exemples d'outils low-code : LibreOffice, Excel, Google Spreadsheet, etc.
L'ETL (Extract Transform Load) Talend en est un également, avec son interface graphique et la possibilité d'écrire du Java dans certains composants.
Les deux CMS précédemment cités peuvent aussi être classés en low-code, puisque vous pouvez écrire du code pour les enrichir.

L'idée générale derrière cette tendance est l'envie, la demande de la part des utilisateurs-trices de pouvoir fabriquer leur propre application, en autonomie, avec un TTM (Time To Market) plus rapide qu'un développement traditionnel.

L'usage de ces outils s'illustre à travers plusieurs scénarios :

  • Tester une idée avec un prototype / MVP (Most Valuable Product)
  • Développer un outil sans connaître le développement
  • Budget disponible trop faible pour un développement sur-mesure

Les outils actuels

Plusieurs outils existent à ce jour sur le marché, libres ou non libres, accessibles via du SAAS (Software As A Service), des tarifs plus ou moins attractifs et des fonctionnalités plus ou moins équivalentes.

Voici un listing, non exhaustif, par grandes familles fonctionnelles :

Listing d'outils nocode / low-code
Site builder
Base de données / Tableur
Automatisation
App builder
Mixte
  • Budibase (base de données + applicatif + automatisation, SAAS, libre)
  • LocoKit (base de données + applicatif + orchestrateur, libre)
  • Directus (base de données + applicatif, SAAS, libre)
  • Notion (base de données + document + automatisation, SAAS)
  • Coda (base de données + document + automatisation, SAAS)
  • Fibery (base de données + document + automatisation, SAAS)

Vous pourrez retrouver une analyse plus détaillée en visionnant notre conférence sur un panorama des outils open-source nocode/low-code lors du salon de l'Open Source Expérience en Novembre 2021 :

Pourquoi sommes-nous sensibles à cette tendance ?

Makina Corpus et Autonomens encouragent l'autonomie de nos utilisateurs.

Nous partageons les valeurs portées par le logiciel libre autour du partage, de la mutualisation, de la liberté et de la capacité s'approprier celui-ci qui se rapprochent de cette idée d'autonomie. Parmi les utilisateurs, ce courant montre qu'une demande grandissante existe d'une population qui souhaite fabriquer ses propres outils et acquérir la maîtrise de la maintenabilité ainsi que l'évolutivité des logiciels.

Habituellement, des sociétés comme la nôtre sont mandatées pour ces besoins de créer, maintenir et faire évoluer un logiciel. Depuis deux ans maintenant, nous rencontrons des clients qui - au delà de nous confier une prestation en développement - souhaitent également obtenir l'autonomie sur l'évolutivité du produit fourni. Ce besoin d'indépendance concerne l'évolution du modèle de données, mais également l'évolution des interfaces utilisateurs.

Makina Corpus et Autonomens font la promotion de ces usages au travers de plusieurs projets de clients grâce à un nouvel outil mis à leur disposition développé en interne par notre équipe : LocoKit.

LocoKit, c'est quoi ? (bis repetita)

Maintenant que nous avons précisé le contexte du low-code, nous vous présentons les grandes fonctionnalités de LocoKit :

1. Base de données

  • L'utilisateur-trice peut créer son modèle de données avec une visualisation du schéma complet de sa base :
modélisation de la base LocoKit CaPeL
Illustration 1 : modélisation de la base de données
  • Une interface type tableur permet également de gérer la donnée elle-même :
gestion de la donnée de la base LocoKit CaPeL
Illustration 2 : Gestion de la donnée
  • Plusieurs types "complexes" peuvent être gérés, comme les fichiers, les géométries (détaillé un peu plus bas dans l'article) ou bien les formules qui permettent de faire des calculs à partir d'autres champs d'une table :
champ formule d'une table FédéSCoT LocoKit
Illustration 3 : Configuration d'un champ formule

2. Orchestration

LocoKit n'est pas un gestionnaire d'automatisation comme peuvent l'être n8n (anciennement nodemation que nous utilisons très régulièrement) ou Make.

Par contre, cet outil a la faculté de déclencher, d'orchestrer des traitements distants à partir d'un événement déclencheur sur la donnée : trigger. Cela permet, dans une architecture type micro-service, de déléguer la gestion des scénarios métiers à une brique dédiée. Tout comme LocoKit peut contenir le modèle de données métier, les processus métiers peuvent être appelés "au bon moment" de l'évolution de la donnée.

modélisation d'une base LocoKit
Illustration 4 : Configuration d'un processus à déclencheur manuel

 

3. Sécurité

Les applications fabriquées à partir de LocoKit peuvent gérer l'accès à la donnée selon des règles bien définies :

  • Accès en lecture
  • Accès en écriture
  • Critères de sélection des lignes lisibles et modifiables d'une table par groupe d'utilisateurs-trices ou par utilisateurs-trices

Des groupes de permissions peuvent être créés. Les utilisateurs-trices seront rattaché-e-s à un ou plusieurs groupes de permissions.

Toutes ces règles sont configurables par rapport au modèle de données défini par l'utilisateur-trice. Elles sont dynamiquement vérifiées à chaque accès à la donnée.

gestion des permissions FédéSCoT LocoKit
Illustration 5 : Gestion des permissions

 

4. Constructeur d'application

LocoKit offre la possibilité de fabriquer un ensemble de pages qui seront mises à disposition de groupes d'utilisateurs-trices. Selon les permissions préalablement configurées, les utilisateurs-trices voient la donnée à travers différents widgets ou blocs. Il peut s'agir de formulaire, de tableau, de carte ou tout autre composant graphique permettant une interaction adaptée entre l'utilisateur-trice et l'application.

exemple d'affichage carto LocoKit FédéSCoT
Illustration 6 : Affichage d'une donnée géographique de type Polygon
communication inter bloc LocoKit CaPeL
Illustration 7 : Communication inter bloc formulaire - carte

Les nouveaux développements de LocoKit sont principalement centrés sur ces blocs d'interaction, sur les paramètres disponibles des blocs existants ou encore sur l'ergonomie du design d'interface.

5. Données géographiques

LocoKit ne serait pas développé par nous si une dimension cartographique (nous sommes spécialistes SIG) n'avait pas été intégrée dès le départ.

  • L'outil stocke des données géographiques, permet leur modification et vérifie leur qualité avant modification :
édition forme géométrique LocoKit CaPeL
Illustration 8 : Édition d'une forme géographique Polygon
  • Vous pouvez aussi contraindre la saisie utilisateur-trice. Dans la capture suivante, l'utilisateur-trice ne peut pas interagir dans le cercle rouge autour des masques de plongée :
création forme géométrique avec contrainte LocoKit CaPeL
Illustration 9 : Création d'une forme géographique avec contrainte
  • Un bloc dédié d'affichage cartographique a été développé pour la construction des applications. Celui-ci permet de configurer les différentes sources de données à afficher ainsi que les interactions autorisées : popup, ouverture d'une page de détail, etc.
configuration bloc MapSet LocoKit CaPeL
Illustration 10 : Configuration d'un bloc Carte (MapSet) dans le designer d'interface

6. Interopérabilité

Pour conclure sur les fonctionnalités, LocoKit dispose d'une base de données PostgreSQL / PostGIS interopérable avec des outils requêtant du SQL et/ou du JSONB. Il est aussi possible d'attaquer LocoKit via son API REST.

Quels projets pour LocoKit à ce jour ?

Depuis la création du projet LocoKit en 2020, Makina Corpus et Autonomens l'ont déployé et amélioré sur trois projets avec des scopes fonctionnels assez différents, mais commun sur plusieurs aspects :

  • Le besoin d'autonomie sur l'évolution du modèle de données
  • Le besoin de partager la donnée entre les utilisateurs-trices du client avec des granularités de droits différentes, des interfaces de visualisation et saisie adaptées
  • Le besoin de déclencher manuellement ou automatiquement des traitements métiers
  • Le besoin d'héberger des fichiers

Voici une présentation des trois projets concernés :

1. V-Logistique : gestion de flotte de vélos

Le projet V-Logistique est le premier projet client à avoir utilisé LocoKit.

C'est un projet dans lequel plusieurs typologies d'utilisateurs-trices interviennent à différent moment sur la gestion d'un vélo :

  • Le fournisseur du vélo doit savoir quel vélo livrer à quel bénéficiaire
  • Le bénéficiaire veut suivre ses vélos géographiquement, savoir quand il les réceptionne et déclarer des incidents si besoin : le vol, etc.
  • Le gestionnaire du parc doit avoir une vue d'ensemble des vélos, disposer de l'information de livraison, d'incident et de maintenance de chaque vélo
  • Le prestataire de maintenance doit savoir quels vélos atteignent les périodes de maintenance et doit pouvoir renseigner les maintenances effectuées, les pièces changées
  • D'autres organismes doivent accéder à une sous-partie de la donnée et potentiellement créer ou modifier de la donnée

Ce projet a fortement évolué au fil du temps. Ainsi, la souplesse offerte par LocoKit sur la modélisation de la donnée et des interfaces a permis d'obtenir une grande réactivité auprès du client et des utilisateurs-trices.

La possibilité d'orchestrer les processus (par exemple, lorsque l'utilisateur-trice déclare un vol) a permis de gérer des scénarios complexes où l'immédiateté de la transmission de l'information - donc le déclenchement du processus - est indispensable.

Dans les évolutions que le client aura lui même géré, par exemple, l'ajout des factures de maintenance n'avaient pas été prévues initialement : modification de la base et gestion des fichiers en autonomie.

V-Logistique Carte
Illustration 11 : Interface v-logistique avec carto + tableau combinés
Edition données base LocoKit V-Logistique
Illustration 12 : Interface v-logistique gestion de la donnée

2. CaPeL : gestion de carnets de plongée

Deuxième projet pour LocoKit, CaPel qui a permis de renforcer la partie cartographie des blocs applicatifs.

Le Parc National de Port-Cros a mis en place un outil pour gérer les signatures de règlement - préalable à toute plongée - et les plongées effectuées dans les eaux du parc :

  • La brique LocoKit a été utilisée pour modéliser la base et fournir des interfaces de consultation et saisie adaptées aux utilisateurs-trices.
  • L'interopérabilité SQL a été utilisée par un outil de dataviz, SuperSet, qui permet aux administrateurs-trices CaPeL mais aussi aux utilisateurs-trices de visualiser leurs données avec des graphiques adaptés.
  • L'interopérabilité via l'API a permis la génération d'un site statique avec Gatsby et l'orchestration déclenche cette génération dès qu'une donnée utilisée est mise à jour.
  • La donnée géographique a aussi été utilisée pour visualiser et contribuer des données géographiques.

Ainsi, les utilisateurs-trices peuvent créer eux-mêmes de nouveaux spots de plongée, à condition qu'ils ne soient pas trop proches de spots déjà existant. Ils peuvent également demander leur publication. Dès que la publication est acceptée, l'orchestrateur-trice déclenche une nouvelle génération du site statique et le spot devient visible sur le site public !

statistiques SuperSet LocoKit CaPeL
Illustration 13 : Interface CaPeL de statistiques basée sur SuperSet connecté à LocoKit
exemple d'affichage carto LocoKit CaPeL
Illustration 14 : Affichage d'une carte multi source (Point, Polygon)

3. FédéScoT : centre de ressource

Dernier projet, la FédéScot a bénéficié des avancées réalisées sur les deux premiers projets.

Il s'agit ici de proposer une évolution à une première itération réalisée en 2020.

FédéSCoT disposait d'une instance du TerraVisu - visualiseur de données cartographiques - mais les données étaient non modifiables. LocoKit a donc évolué pour améliorer son interopérabilité SQL et est désormais compatible avec le TerraVisu. Les utilisateurs-trices peuvent ainsi modifier leurs propres données et elles sont ensuite représentées dans l'instance TerraVisu de FédéSCoT.

 

gestion fichiers LocoKit FédéSCoT
Illustration 15 : Gestion des fichiers dans LocoKit
 

 

 

Configuration de la NavBar dans LocoKit FédéSCoT
Illustration 16 : Configuration de la NavBar dans le designer d'interface

Conclusion

Les outils nocode et low-code sont bien là et s'inscrivent durablement dans le paysage numérique !

Ils ont créé une innovation d'usage et offrent à une population jusqu'ici exclue la possibilité de développer pour créer ses propres outils. Même si ces outils existent depuis plusieurs dizaines d'années (la première version de Microsoft Access date de 1992 - 30 ans tout de même), les outils actuels sont plus accessibles via leur modèle SAAS et leur interopérabilité.

Pionniers sur le marché, les outils propriétaires ont déjà commencé à capter cette nouvelle génération d'utilisateurs-trices et les outils libres se développent de plus en plus en devenant des alternatives sérieuses.

Modestement, nous souhaitons également participer à cette émancipation légitime et essayons à travers LocoKit d'apporter une partie de la réponse à cette dynamique, tout en restant conforme à notre idéal de logiciel libre. Avec trois projets à son actif, LocoKit est désormais capable de répondre à un scope fonctionnel minimal : la modélisation, le partage et la sécurisation.

N'hésitez pas à essayer l'outil, à partager vos idées, nous dire ce que vous en pensez, poser vos questions sur les issues GitHub ou mettre une petite ⭐️ sur le dépôt github ! 😉

En savoir +

Formations associées

Formations Front end

Formation VueJS

Nantes Du 8 au 10 juillet 2024

Voir la formation

Formations Front end

Formation Développement d'applications JavaScript

Toulouse Du 18 au 20 juin 2024

Voir la formation

Actualités en lien

Image
Conférence Vidéo Mathieu Dartigues outils nocode / low-code
16/12/2021

Vidéo conférence : panorama des outils nocode / low-code, alternatives à AirTable

Visionnez la vidéo de la conférence de Mathieu DARTIGUES, Développeur web Autonomens, à l'Open Source Expérience 2021 : panorama des outils nocode / low-code, alternatives à AirTable.

Voir l'article
Image
Open Source Experience 2021
21/09/2021

Makina Corpus acteur de l'Open Source Experience 2021 !

L’équipe Makina Corpus vous accueille sur son stand C25a à l’Open Source Expérience au Palais des congrès à Paris les 9 et 10 novembre 2021 : « Le rendez-vous européen de la communauté Open Source ». Vous pourrez également participer aux quatre conférences de nos experts.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus