Logo VirtuoWorks

Nos articles

Découvrez notre quotidien et l'utilisation des nouvelles technologies pour nos projets à travers des articles rédigés par l'équipe VirtuoWorks.
décembre 2023

À vos bacs, prêts, compostez !

VirtuoWorks lance une nouvelle solution pour la gestion du compostage nommée VériCompost
Permalien Permalien

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, logiciel de suivi du compostage

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 !

Logo Angular

logo_ionic.svg

N’attendez pas, découvrez notre logiciel de suivi du compostage sur le site dédié VériCompost !


Avatar

Anne Quiniou

Développeuse, designer

Icône linkedIn

Anne est développeuse React et Angular, elle intervient sur de nombreux CMS et attache une grande importance à l'UX.

septembre 2023

On en parle : les impacts de l'IA

Les chatbots remplaceront-ils bientôt les développeurs ?
Permalien Permalien

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”…

Graphique montrant une augmentation des recherches sur l'IA d'après Google Trends

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.


Avatar

Anne Quiniou

Développeuse, designer

Icône linkedIn

Anne est développeuse React et Angular, elle intervient sur de nombreux CMS et attache une grande importance à l'UX.

février 2021

Créer un interfaçage WooCommerce et Dailybiz

Faire communiquer les systèmes avec Node JS et Kafka.js
Permalien Permalien

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.

dailybiz_logo

kafka.png

woocommerce_logo

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.


Avatar

Christophe Ollivier

Orchestrator

Icône linkedIn

Bio à venir.

juillet 2019

On a testé : Drupal 8 découplé avec Ionic

Un backend Drupal et un front Ionic, c'est tout à fait possible
Permalien Permalien

Un back-end Drupal qui alimente/interagit avec une application Ionic ? C’est tout à fait possible et dans l’air du temps.

logo_ionic_drupal.png

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.


Avatar

Christophe Ollivier

Orchestrator

Icône linkedIn

Bio à venir.

juillet 2019

On a testé : Electron + BusyLight

Une association lumineuse
Permalien Permalien

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.

Une lampe BusyLight

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…

Demonstration de l'application de gestion busylight


Avatar

Sébastien Guillon

Lead Developer Angular

Icône linkedIn

Sébastien Guillon est spécialiste d'Angular et intervient comme Lead Developer dans ses missions.