← Toutes les réalisations

PROJET D’ÉQUIPE · SUPINFO B3 · 2024–2025

SUPCHAT.

La messagerie, du stockage au temps réel.

Projet SUPINFO en équipe : contribuer aux messages privés, aux pièces jointes, aux réactions et à la cohérence des notifications entre l’API et les clients.

ReactNode.jsSocket.IOPostgreSQLStockage S3React Native

Une plateforme de communication

SUPCHAT réunit espaces de travail, canaux, messages privés, partage de fichiers et clients web et mobile. Le projet a été réalisé avec Paul Mazzon et Rudy Gault.

L’authentification, les permissions et l’infrastructure appartiennent au produit collectif. Je distingue ces fonctionnalités de mes exemples de contribution ci-dessous ; cette présentation ne revendique pas un chiffrement de bout en bout des conversations.

Ma contribution

MESSAGES PRIVÉS

Réactions et pièces jointes

Faire évoluer le modèle, le contrôleur, le gestionnaire Socket.IO et le hook client pour accompagner les réactions et les fichiers dans les messages privés.

COHÉRENCE CLIENT

Corriger les messages non lus

Reprendre le calcul et le rafraîchissement des compteurs dans les conversations et la barre latérale afin de réconcilier l’état affiché avec l’API.

TRANSMISSION

Contribuer à la documentation

Mettre à jour la documentation et le manuel utilisateur au fil des corrections, pour rendre les parcours plus compréhensibles et reproductibles.

Un flux qui traverse plusieurs services

  1. ClientsWeb React · application React Native
  2. API et événementsNode.js · Socket.IO · contrôle des accès
  3. DonnéesPostgreSQL · pièces jointes S3
  4. IntégrationsOAuth · notifications · assistant IA
Vue de synthèse de la documentation collective. Un fichier, un message et son événement temps réel ne passent pas nécessairement par le même chemin ; leurs autorisations doivent rester cohérentes.

Les questions de sécurité à traiter

Actif / risque Mesure ou démarche Limite
Accès à une conversation privée Vérifier l’identité et l’appartenance à la conversation côté API et côté événements. Le travail de synchronisation présenté ici ne prouve pas, à lui seul, la couverture de tous les contrôles d’accès.
Diffusion d’un fichier ou d’une réaction Garder cohérents le stockage, les données du message et l’état du client. Les permissions des objets S3 et des destinataires nécessitent une vérification distincte.
Sessions et intégrations externes Prendre en compte les jetons, les clés d’intégration et les données transmises. Une connexion HTTPS ou OAuth n’équivaut pas au chiffrement de bout en bout des messages.

Cette lecture sépare les problèmes de fiabilité — par exemple un badge de notification incorrect — des garanties de confidentialité. Je ne présente pas une correction d’interface comme une preuve de sécurité globale.

Des contributions consultables

La documentation décrit une participation collective au frontend, au backend, au mobile et à l’infrastructure. Je m’appuie ici sur des modifications précises plutôt que sur le nombre de commits pour décrire mon travail.

Ce que je retiens

Le temps réel demande de raisonner sur l’état stocké, l’événement émis et l’état affiché. Tracer un message entre ces couches aide à expliquer un dysfonctionnement et à identifier les points où les droits doivent être revérifiés.