Lab React et React Router

On veut réaliser une web app qui se connecte à une source de données (un Web Service) afin de recevoir des informations sur l’état de capteurs dans un réseau.

On s’intéresse ici à l’affichage et à la représentation graphique des données de capteurs.

Voici une idée générale de la structure de l’application :

IoT Sketch

On souhaite avoir des URLs du type :

Ces routes sont dynamiquement créées par React Router à partir des données de capteurs récupérées dans la ressource indiquée dans l’inputprécédent.

On s’inspirera très largement du tutoriel de react router.

Broker MQTT

Lire la doc sur Le protocole MQTT.

Les messages sont envoyés avec un topic du type:

value/[ID]

avec [ID] la valeur de l’identifient du capteur.

Les messages envoyées sont au format JSON et du type :

{
     "name": "[name]",
     "value": "[value]",
     "type": "[SensorType]"
}

avec [name] le nom du capteur (une chaîne de caractères), [value] la représentation en string de la valeur du capteur et [sensorType] le type de données parmi :

Un broker MQTT avec de faux capteurs est disponible :

sur le port 443 pour le support WebSocket.

Stockage des états

Le plus simple est probablement d’utiliser l’idée du Lifting State Up dans la démo de React.

Pour pouvoir proposer une implémentation React et React Router il va également falloir utiliser le mécanisme userouteloaderdata de React Router :

Flexbox ou CSS Grid Layout

Pour la mise en page de l’application, on utilisera au choix le mode de mise en page flexbox ou ‘CSS grid layouts’, ou les deux.

CSS modules

On utilise les CSS modules pour gérer les feuilles de style.

On veillera a bien nommer les fichier comme décrit dans la documentation de Vite.

Tests

Les composants React doivent être testés comme n’importe quel code javascript. Se référer à l’aide en ligne de React sur les tests pour tester le code.

Travail à réaliser

Ce TP DOIT être fait en binôme.

Échéance

Évaluation

Liste des aptitudes évaluées.