Full-Stack • SSO • Suivi GPS

PingTrail – Tableau de bord GPS pour la randonnée en zone reculée

Tableau de bord GPS haute performance intégré aux flux du messager satellite SPOT pour la sécurité en randonnée en zone reculée.

09 juil. 2025

Contexte

PingTrail (à l'origine GPS Tracker) est né d'un besoin de sécurité précis : fournir une carte fiable et en temps réel pour que ma famille et mes amis puissent suivre ma position pendant les randonnées en zone reculée. Si les messagers satellite comme le SPOT Gen4 excellent en transmission, leurs interfaces par défaut manquent souvent de réactivité et de filtrage personnalisé pour les treks de plusieurs jours.

Ce projet a consisté à construire un moteur de cartographie personnalisé qui consomme les flux de données satellite et les présente via un tableau de bord performant et mobile-first.


Architecture technique et pipeline de données

L'application est construite avec Next.js 15 et Leaflet, en utilisant un pipeline de données synchronisé pour garantir la précision dans les zones à connectivité intermittente.

Intégration des données satellite

Le système interagit directement avec l'API SPOT. Les pings satellite étant souvent irréguliers, j'ai mis en place une couche de cache et de parsing robuste :

  • Ingestion en temps réel : Le backend récupère les flux XML/JSON et normalise les différents types de messages — OK, CUSTOM, et les signaux critiques HELP ou SOS
  • Gestion d'état : Avec Supabase comme stockage persistant, l'app suit non seulement les coordonnées mais aussi les métriques de santé de l'appareil (batterie, états Actif/Inactif)
  • Filtrage temporel : Pour éviter l'encombrement de la carte sur les longues expéditions, les utilisateurs peuvent filtrer les vues par durée (ex. dernières 24 h, derniers 7 jours)

Appareil SPOT Gen4

Cartographie interactive

Pour le frontend, j'ai choisi Leaflet pour sa légèreté et son extensibilité. La carte affiche des polylignes dynamiques reliant les pings chronologiquement, permettant de voir non seulement ma position actuelle mais l'itinéraire exact parcouru.

Interface PingTrail montrant l'itinéraire de randonnée avec pings d'élévation et indicateurs de statut


Sécurité et système de permissions

Pour un outil de sécurité, le contrôle d'accès est primordial. J'ai intégré PingTrail à mon Global SSO Authenticator pour gérer les permissions de haut niveau tout en ajoutant une couche de partage spécialisée.

J'ai développé un système de « Magic Link » permettant d'accorder un accès temporaire en lecture seule à des traceurs spécifiques.

  • Accès par rôle : Distinction entre Admins (qui gèrent les flux des traceurs) et Viewers (qui ne voient que la carte)
  • Rédemption sécurisée : Les liens d'invitation sont à usage unique ou limités dans le temps, garantissant que mes données de localisation privées ne sont pas exposées au-delà du cercle prévu

Contraintes et compromis techniques

Une des principales contraintes était la limitation de débit de l'API SPOT. Pour y répondre, j'ai conçu une stratégie de polling qui priorise les mises à jour selon la détection de mouvement actif, réduisant les appels API inutiles tout en conservant une sensation « live » pour l'utilisateur.

J'ai également choisi next-intl pour la localisation, afin que les instructions de sécurité et les messages de statut soient accessibles en français et en anglais pour les différents membres de ma famille.


Stack technique

  • Frontend : Next.js 15 (App Router), React, TypeScript, Leaflet, Tailwind CSS
  • Backend : Supabase (stockage persistant pour coordonnées et métriques appareil)
  • API : SPOT Shared Page API (flux XML/JSON)
  • Auth : Intégration Global SSO Authenticator
  • Hébergement : Vercel

Bilan

PingTrail est plus qu'un projet de cartographie ; c'est une infrastructure de sécurité critique. Il démontre la valeur de construire des interfaces personnalisées pour du matériel spécialisé, transformant les données satellite brutes en un récit clair et partageable d'une expédition. Le projet est passé d'un simple visualiseur de position à une plateforme multi-traceurs prête pour toute aventure en zone reculée.