Nos articles
À vos bacs, prêts, compostez !
Pour permettre aux collectivités, municipalités, organisations et syndicats mixtes en charge de la gestion des déchets de prendre en main le suivi de leur compostage, l’équipe VirtuoWorks lance VériCompost.
VériCompost est un logiciel de gestion / suivi des sites de compostage en ligne, qui offre une solution complète pour suivre son compostage au quotidien et en tirer des statistiques. Découvrez directement ses fonctionnalités sur le site dédié !
Pourquoi le compostage ?
Avec la signature en 2019 du Pacte Vert, l’Union Européenne souhaite faire de l’Europe le premier continent neutre en carbone d’ici 2050. Un objectif ambitieux, qui se matérialise par de nombreux chantiers comme celui de la revalorisation des déchets par le compostage.
Composter, c’est quoi ? C’est séparer ses déchets organiques et les stocker de manière à ce qu’ils se décomposent. On transforme ainsi un déchet en une matière fertile. C’est du gagnant-gagnant !
Chez VirtuoWorks, on avait déjà entendu parler du sujet et un membre de l’équipe est même devenu un adepte du bokashi. En apprenant plus sur les enjeux du compostage, nous avons vu un besoin, celui d’un outil simple et efficace pour les administrateurs qui mettent en place le compostage en ville et à la campagne.
Une application simple et efficace
Pour offrir une solution flexible et performante à nos clients, nous avons opté pour une application Software As A Service ou SAAS construite avec Angular et Ionic. Elle ne nécessite aucune installation côté client : il suffit d’avoir des identifiants pour se connecter.
Une application mobile disponible sur Android et iOS complète la solution pour permettre aux utilisateurs de mettre à jour leurs informations directement depuis le site de compostage !

N’attendez pas, découvrez notre logiciel de suivi du compostage sur le site dédié VériCompost !
C’est un des sujets phares de l’année 2023 d’après Google Trends : les chatbots qui utilisent l’intelligence artificielle fascinent et interrogent. Si les recherches des internautes concernent l’aspect business, l’automatisation et la productivité, certaines recherches expriment des craintes : “plagiat”, “comment détecter un texte généré par une IA”…

L’évolution des recherches Google sur le sujet “intelligence artificielle”
Quand on parle d’intelligence artificielle, le nom qui vient à l’esprit est ChatGPT et c’est d’ailleurs aussi un des termes les plus recherchés sur Google en 2023. Ouvert au grand public depuis 2022 avec sa version 3.5, le chatbot de l’organisation OpenAI est devenu le nom du domaine. Pourtant ChatGPT et ses concurrents ne sont pas à proprement parler des intelligences artificielles mais des modèles de langage. Comprendre que face à une question, leur système simule une réponse sur le modèle d’une énorme base de donnée. Pas de réflexion, pas de nouvelle information induite ou déduite : le système fait le lien entre des informations existantes dans sa base de donnée et les livre sous la forme d’un paragraphe transformé. C’est d’ailleurs de là que vient le GPT, “Generative Pre-trained Transformer” qu’on pourrait vaguement traduire en “transformateur-générateur pré-entraîné”.
Les avantages: une production de texte automatisée, rapide, qui peut prendre en entrée des paramètres de style et des données à remettre en forme. Les inconvénients: des textes qui reproduisent les biais du corpus sur lequel le moteur a été entraîné et plus grave aucune garantie de véracité des informations ajoutées par le moteur, qui se contente de produire du “probable”.
Qu’on soit convaincu ou non, l’impact est déjà présent: chez les étudiants qui ont trouvé l’outil parfait pour générer leurs devoirs, chez des chefs d’entreprise qui ont vu une potentielle réduction des coûts, chez Microsoft et Google, qui ont respectivement mis en place BingGPT et Bard cette année pour surfer sur la vague… Alors quel impact, aujourd’hui, pour les développeurs ? Un des fondateurs de VirtuoWorks, Sami Radi, a été interviewé sur le sujet par l’IFOCOP en septembre 2023.
Créer un interfaçage WooCommerce et Dailybiz
Les technologies
WooCommerce est une extension open source pour WordPress permettant de créer une boutique en ligne. Il est conçu pour les petites et grandes entreprises en ligne utilisant WordPress.
Dailybiz est un ERP de gestion commerciale.
Kafka.js basé sur Apache Kafka, est un projet à code source ouvert d’agent de messages développé par l’Apache Software Foundation et écrit en Scala. Le projet vise à fournir un système unifié, en temps réel à latence faible pour la manipulation de flux de données. Sa conception est fortement influencée par les journaux de transactions.
NodeJS est une plateforme logicielle libre en JavaScript, orientée vers les applications réseau événementielles hautement concurrentes qui doivent pouvoir monter en charge. Elle utilise la machine virtuelle V8, la librairie libuv pour sa boucle d’évènements, et implémente sous licence MIT les spécifications CommonJS.



Notre objectif
Améliorer la productivité au travail de l’entreprise du client via l’automatisation de la création des devis et comptes clients sur leur ERP de gestion Dailybiz grâce aux informations récupérées depuis leur plateforme de e-commerce WooCommerce.
Notre réalisation entièrement back-end a utilisé la technologie Apache Kafka afin de stocker et faire transiter les informations entre les deux API. NodeJS a été utilisé afin de connecter les deux API ainsi que coder les différentes modifications à apporter sur les données.
Configuration des API
La connexion à Kafka se fait de la façon suivante :
const kafka: Kafka = new Kafka({
clientId: 'client_id',
brokers: ['localhost:9092'],
});
Il est possible de créer plusieurs instances de Kafka pour plus de sécurité. Le cas échéant, il conviendra donc d’ajouter des brokers dans le tableau des brokers (ex : localhost:9093, localhost:9094 etc).
On peut ensuite créer des producers et des consumers qui vont, respectivement, récupérer des données depuis une API et envoyer des données dans une API. Ces connecteurs sont basiquement codés ainsi :
const producer = kafka.producer({
allowAutoTopicCreation: true,
maxInFlightRequests: 1,
idempotent: true,
});
const consumer = kafka.consumer({groupId: 'consumer_group'});
Une fois ces connecteurs codés, on peut les utiliser ainsi dans notre code, pour le producer :
const monProducer = async () => {
try {
await producer.connect();
await producer.send({
topic: 'topic_name',
messages: [{ value: JSON.stringify(message) }],
});
} catch (error: unknown) {
console.error(error);
}
};
Et pour le consumer :
const monConsumer = async () => {
try {
await consumer.run();
await consumer.subscribe({ topic: 'topic_name' });
await consumer.run({
eachMessage: async ({ message }) => {
if (Buffer.isBuffer(message.value)) {
console.log(JSON.parse(message.value.toString()));
}
}
});
} catch (error: unknown) {
console.error(error);
}
};
Afin de pouvoir récupérer des données depuis WooCommerce, il convient d’en créer une instance de la façon suivante :
const api: WooCommerceRestApi = new WooCommerceRestApi.default({
url: 'url_du_site_de_ecommerce',
consumerKey: 'ck_xxxxxxxxxxxxxxxxxxx',
consumerSecret: 'cs_xxxxxxxxxxxxxxxxxxx',
version: 'wc/v3',
queryStringAuth: true,
});
Les données consumerKey et consumerSecret sont accessibles depuis l’espace de gestion WooCommerce.
On a testé : Drupal 8 découplé avec Ionic
Un back-end Drupal qui alimente/interagit avec une application Ionic ? C’est tout à fait possible et dans l’air du temps.

Drupal 8
Drupal est un Système de Gestion de Contenus (SGC en français, plus connu sous son acronyme anglais CMS pour Content Management System).
Basé sur le framework Symfony, Drupal est un (ou le ?) CMS de référence dans l’organisation hiérarchique des données en back-end. Sa richesse fonctionnelle, son interface d’administration aboutie en font une solution de premier choix pour construire/organiser ses données.
Après pour afficher les données fournies par Drupal, plusieurs possibilités s’offrent au développeurs :
- Drupal Couplé : Utiliser Drupal tel quel, c’est à dire un Drupal traditionnel où le front est lié au back
- Drupal progressivement découplé : les fameuses PWA (Progressive Web App)
- Un site statique complètement découplé : utiliser Drupal comme une source de données pour un générateur de site statique
- Une application complètement découplée : utiliser Drupal comme un dépôt de données pour différents consommateurs. C’est ce cas que nous étudions dans cet article.
Ces différentes approches ont été expliquées en détail par Dryes Buytaert sur son blog ici.
Electron JS
Electron est un framework open source qui permet de bâtir des applications multi-plateformes Linux, Mac et Windows. Il se base sur les technologies Web et fonctionne avec un moteur NodeJS. C’est un framework très utilisé, qui a notamment permit la réalisation du client Slack, de Visual Studio Code, d’Atom…
Le busylight Kuando
Le busylight de Kuando est une lampe connectée, qui sert d’indicateur lumineux d’appel et de disponibilité. Elle est beaucoup utilisée en centres d’appel pour facilement distinguer les employés libres et occupés.

L’objectif : electron + busylight
Nous voulions tester en conditions réelles l’interopérabilité entre Electron et busylight. Et ça marche !
Nous avons pu développer rapidement une application Windows pour:
- Détecter la connexion (ou non !) d’un busylight
- Piloter le busylight depuis l’interface Windows
Une base intéressante pour lier ce matériel à une application…




