Hackathon : Le KanoMiroir

Lors de sessions de brainstorming au sein de la tribu, l’idée de réaliser des journées au format Hackathon a émergée.

Deux projets ont alors vu le jour.

Le KanoRobot, une histoire de Legos visiblement mais je ne vous en dit pas plus. Je vous laisse le plaisir de découvrir l’article sur le sujet, c’est ici.

Le KanoMiroir, une histoire de miroir connecté que nous allons retracer ensemble dans cet article.

Illustration KanoMiroir
©Marine Le Viavant

Objectif

L’objectif de cette journée de hackathon est avant tout de pouvoir travailler ensemble. En effet, Kanoma étant une ESN, chacun des membres de l’équipe intervient chez un client différent. Il est donc intéressant de prendre du temps pour pouvoir partager un projet commun.

C’est aussi un bon moyen d’aborder des problématiques, des langages et des technos sur lesquelles nous n’avons pas forcément l’habitudes de travailler.

Et cerise sur le gâteau si à la fin de la journée nous pouvons avoir quelque chose qui fonctionne ce serait parfait. Mais rappelons néanmoins que le format hackathon reste de l’exploration et on n’attend pas un résultat parfait à la fin.

Le projet

Le besoin associé au projet du KanoMiroir est assez simple au final. Ce dernier serait d’avoir un écran à l’accueil de Kanoma qui affichera des informations relatives à la vie de la tribu.

C’est avec ce cahier des charges que nous avons pu réfléchir à sa concrétisation son forme d’un ensemble de fonctionnalités.

Les features

En fonction du temps imparti et des envies de l’équipe, il a fallu affiner et prioriser notre backlog.

Les fonctionnalités suivantes ont été choisies :

  • Afficher l’anniversaire des membres de la tribu
  • Afficher la disponibilité des Bicloo à proximité
  • Afficher les prochains horaires de passage des bus de la TAN à proximité
  • Afficher le flux RSS du blog
  • Afficher les événements à venir de la tribu
  • Afficher la météo et l’heure

L’équipe

Un projet c’est avant tout son équipe. Voici nos volontaires pour cette journée :

  • Matthieu
  • Clément
  • Victor
  • Thomas
  • Pierre
  • Jérémie
L'équipe
La team

Préparatifs

Avant de démarrer la journée de hackathon, il a fallu acheter un peu de matériel et le préparer pour pouvoir se concentrer sur le développement de nos features le jour J.

Matériel

  • Une grande télévision
  • Un Raspberry Pi 4 Computer Model B (2GB RAM)
  • Une microSD SanDisk 64GB
  • Du film réfléchissant

Actions préliminaires

  • Création d’une partition sur la carte SD
  • Formatage de la carte SD en FAT32
  • Installation d’une Raspbian sur la carte SD
  • Installation de NodeJs v14.x sur la Raspbian
  • Clone du projet MagicMirror sur la Raspbian

Architecture

Architecture
Architecture mise en œuvre

Les modules Flux RSS, Agenda, Heure/météo sont des modules intégrés par défaut dans le projet MagicMirror. Il n’y a eu qu’à mettre à jour la configuration pour qu’ils soient effectifs.

Les modules TAN et Bicloo sont les modules développés pendant la journée du hackathon.

L’ API VSA permet d’interroger l’ API de l’application VSA et de faire l’interface avec le projet MagicMirror.

Le module Anniversaire n’est pas encore développé. Il devra permettre d’afficher le résultat de l’ API VSA.

Organisation de la journée

Après avoir posé le cadre, il a fallu s’organiser pour que le temps de cette journée soit optimisé et qu’un maximum de fonctionnalités soient réalisées.

Nous nous sommes donc réparti en plusieurs groupes de travail. Chacun ayant son périmètre.

  • La team Bicloo : Matthieu et Thomas
  • La team TAN : Victor
  • La team VSA : Clément et Pierre
  • La team exploitation : Jérémie

Ce découpage ne nous a pas empêcher de tous garder un œil et de participer à l’effort des autres teams bien évidement.

Team Bicloo & Team TAN

Le but de ces deux « feature teams » a été de travailler sur le module d’affichage des vélos Bicloo disponibles et le module des trams/bus avec leur sens et le temps avant arrivé à la station. Le tout dans le périmètre des bureaux de Kanoma.

Pour ces modules la stack technique est :

  • Javascript
  • Npm, pour la gestion des dépendances
  • NodeJs, pour l’environnement d’exécution sur le Raspberry

Il a fallu dans un premier temps apprivoiser l’API fourni par Nantes Métropole, disponible ici.

Dans un second temps il a fallu s’approprier l’architecture pour le développement de module documenté par MagicMirror².

Une fois ces deux premières étapes franchies, les équipes ont pu se concentrer sur l’affichage. Un zeste de templating html avec le package Njk et un soupçon de CSS pour rendre le tout cohérent avec le reste des modules qui seront affichés à l’écran.

Team VSA

Au sein de Kanoma nous utilisons l’outil VSA comme ERP pour la gestion des membres de la tribu. L’idée de cette « feature team » est de créer une API faisant office d’interface entre l’API de VSA et le module « Anniversaire ».

Pour la création de cette API, que nous appellerons VSA-Bridge , la stack technique choisie est :

Le déploiement sur Heroku est assuré par un pipeline Gitlab-CI.

Cette API, permet d’exposer un endpoint qui retourne la liste des prochains anniversaires de la tribu.

Team exploitation

Des scripts ont été mis en place pour :

  • Automatiser le déploiement des modules et de la configuration sur le Raspberry
  • Lancer/arrêter le service du projet MagicMirror à distance
Résultat final
Résultat final

Ce qu’il reste à faire

Bien évidement en une petite journée, le temps de se mettre en route, de s’organiser, d’apprendre à travailler ensemble, de défricher des sujets inhabituels, nous n’avons pas eu le temps de finaliser l’intégralité des fonctionnalités prévues.

Voici la liste des tâches sur lesquelles nous allons devoir plancher pour finaliser cette aventure :

  • Finaliser et déployer le module de la TAN sur le Rasberry
  • Développer le module d’affichage des anniversaires
  • Harmoniser le rendu global sur l’écran
  • Installer la TV dans l’agence et brancher le tout
  • Bonus : Réaliser un module et les endpoints dans notre API VSA-Bridge pour afficher l’emplacement géographique de chaque équipier en mission

A bientôt pour la suite et fin de cette aventure 😉

S’abonner
Notifier de
guest
2 Commentaires
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] Webhooks Slack. Quelques tests ont été réalisés pour également appeler les API du KanoMiroir (le second projet de Hackathon 2021 chez Kanoma !! […]

trackback

[…] 🤖 Kanorobot 👀 KanoMiroir […]