Essence Québec
Fiche technique

Plateforme de transparence des prix de carburant au Québec

Application web haute disponibilité exposant en temps réel les données officielles de la Régie de l'énergie du Québec — conçue selon les standards modernes d'architecture cloud et de sécurité gouvernementale.

2 000+
Stations cartographiées
< 100 ms
Temps de réponse API moyen
99.9%
Disponibilité (SLA Vercel + Supabase)
40+
Régions Edge mondiales
4
Types de carburant suivis
17
Régions administratives couvertes

Architecture technique

Stack moderne, éprouvée en production, déployée sur infrastructure cloud de niveau entreprise.

Interface utilisateur
  • Next.js 16Framework React App Router avec rendu hybride SSR/CSR
  • React 19Dernière version stable avec Server Components
  • TypeScript 5Typage statique strict sur l'ensemble du projet
  • Tailwind CSS 4Styling utilitaire nouvelle génération (CSS variables)
  • shadcn/ui + Base UIComposants accessibles, conformes WCAG 2.1
  • Framer Motion 12Animations fluides 60 fps, transitions d'état
  • Leaflet 1.9 + React-Leaflet 5Cartographie vectorielle haute performance
Backend & API
  • Next.js API Routes (Serverless)Endpoints RESTful déployés sur l'Edge Network mondial
  • Zod 4Validation de données stricte côté serveur et client
  • Rate LimitingProtection contre les abus par IP, sans dépendances externes
  • Service Role AuthSéparation stricte des privilèges client/serveur
Base de données & Auth
  • Supabase (PostgreSQL 15)Base de données managée, haute disponibilité 99.9%
  • Row Level Security (RLS)Sécurité au niveau des lignes, chaque utilisateur accède uniquement à ses données
  • Realtime SubscriptionsSynchronisation des commentaires en temps réel via WebSocket
  • Auth OTP sans mot de passeConnexion par code à usage unique — zéro gestion de mots de passe
Infrastructure & DevOps
  • Vercel Edge NetworkCDN mondial ~300 ms de propagation, 40+ régions
  • CI/CD automatiséDéploiement continu à chaque push GitHub, rollback instantané
  • Preview DeploymentsEnvironnement de prévisualisation unique par branche
  • Vercel Cron JobsCapture automatique des prix à intervalle configurable
  • ResendLivraison d'emails transactionnels avec domaine vérifié SPF/DKIM/DMARC

Fonctionnalités livrées

Chaque fonctionnalité est opérationnelle en production, accessible publiquement sans installation.

Cartographie interactive temps réel
Visualisation de 2 000+ stations-service sur l'ensemble du territoire québécois avec prix mis à jour automatiquement via les données officielles de la Régie de l'énergie.
Données gouvernementalesTemps réelGéolocalisation
Moteur de recherche géospatial
Localisation de la station la moins chère dans un rayon personnalisable autour de la position de l'utilisateur, avec calcul de distance orthodromique précis.
Algorithme HaversineRayon ajustableTri par prix
Clustering adaptatif haute performance
Regroupement intelligent des marqueurs selon le niveau de zoom et les filtres actifs, avec mémoire cache SessionStorage pour un chargement quasi instantané.
Cache clientRendu différé60 fps
Analyse comparative multi-régions
Tableau de bord comparatif des prix moyens, minimums, maximums et écarts par région administrative et par ville, avec indicateurs de tendance vs moyenne provinciale.
17 régionsStats avancéesDelta vs moyenne
Historique des prix 30 jours
Graphique SVG d'évolution des prix par station sur les 30 derniers jours, généré côté client sans dépendance externe à une librairie de graphiques.
SVG natif30 joursPar type de carburant
Système de commentaires communautaire
Module d'avis avec réponses imbriquées, votes (like/dislike) authentifiés ou anonymes, modération admin avec suppression douce, synchronisation temps réel.
Votes anonymesTemps réelModération
Signalement d'inexactitudes
Formulaire de signalement avec validation Zod, identification de l'utilisateur et workflow de traitement administratif (nouveau → en traitement → résolu).
Workflow adminValidation stricteTraçabilité
Sécurité et conformité
Authentification sans mot de passe (OTP), Row Level Security PostgreSQL, rate limiting par IP, validation serveur sur tous les endpoints, service role isolé.
Sans mot de passeRLS PostgreSQLRate limiting
Gestion des favoris persistante
Marquage de stations favorites stocké localement (localStorage), accessible hors connexion, avec vue filtrée dédiée sur la carte.
Hors connexionPersistance localeFiltrage rapide
Expérience mobile optimisée
Interface entièrement responsive avec navigation tactile fluide, popups et modals adaptés aux petits écrans, typographie et espacement calibrés pour mobile.
ResponsiveTouch-friendlyMode sombre/clair
Synchronisation automatique des données
Pipeline de capture automatisé via Cron Jobs Vercel, décompression gzip des données GeoJSON de la Régie, déduplication et stockage incrémental en base.
Cron automatiqueGeoJSONDéduplication
Panneau d'administration sécurisé
Interface de gestion complète avec gestion des rôles utilisateurs, traitement des signalements, déclenchement manuel des snapshots et statistiques d'utilisation.
Contrôle d'accèsGestion des rôlesAudit

Qualité logicielle & pratiques DevOps

Déploiement continu (CI/CD)
Push sur main → build Turbopack → déploiement production automatique en < 60 s
Preview par branche
Chaque pull request génère un environnement de prévisualisation isolé avec URL unique
Rollback instantané
Retour à n'importe quelle version précédente en un clic depuis le tableau de bord Vercel
Variables d'environnement sécurisées
Secrets injectés au build, jamais exposés côté client — séparation production/preview/dev
Typage statique intégral
Zero any TypeScript sur tout le codebase — erreurs détectées à la compilation, pas en production
Validation Zod sur tous les endpoints
Chaque entrée utilisateur est validée et assainie côté serveur avant toute opération base de données
Rate limiting sans infrastructure
Protection contre les abus implémentée en mémoire Edge, sans Redis ni dépendance externe
Emails transactionnels certifiés
SPF + DKIM + DMARC configurés sur domaine personnalisé — délivrabilité maximale

Données officielles — Régie de l'énergie du Québec

Les prix affichés proviennent exclusivement du flux GeoJSON officiel publié par la Régie de l'énergie du Québec (REQ), organisme gouvernemental mandaté par la Loi sur la Régie de l'énergie. Les données sont publiques, open data, et constituent la référence légale des prix planchers des carburants en station. Aucune donnée tierce ou estimée n'est utilisée.

Open Data gouvernementalMise à jour automatiqueDonnées vérifiées REQConformité loi sur l'énergie

Projet développé par Mathieu Fournier · Pour toute question technique ou collaboration

mathieufournierqc@outlook.com