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 des capteurs dans un réseau.

On s’intéresse ici à l’affichage et à la représentation graphique des données des 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 des capteurs récupérées dans la ressource indiquée dans l’input précédent.

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’identifiant du capteur.

Les messages envoyés 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 :

ou plus spécifiquement :

Un broker MQTT avec de faux capteurs et de fausses données est disponible à l’adresse suivante :

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.

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 à bien nommer les fichiers comme décrit dans la documentation de Vite.

Tests

Les composants React doivent être testés comme n’importe quel code JavaScript/TypeScript. 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.