DivingQuest

Voir DivingQuest

1 400+

commits depuis août 2025

~140 k

lignes de TypeScript

170+

migrations SQL

600+

tests automatisés

Technos utilisées

Next.js 16 (App Router, Server Actions)React 19TypeScriptSupabase (PostgreSQL, RLS, Auth, Realtime, Storage)Stripe Connect & BillingCapacitor 8 (iOS / Android)MapLibre / MapTilerResend + React EmailTailwind / Radix UIVitest / PlaywrightGitHub Actions / CodemagicVercel

C'est quoi ?

DivingQuest réunit toute la plongée au même endroit : les centres et les clubs, leurs sorties, et le parcours de chaque plongeur. C'est à la fois un logiciel de gestion complet pour les structures (commerciales comme associatives) et une application gratuite pour les plongeurs, disponible sur le web et sur l'App Store.

Plongeur moi-même, je suis parti d'un constat simple : la plupart des centres gèrent encore leurs réservations, leurs palanquées et leurs adhérents sur papier, par téléphone ou dans des tableurs. DivingQuest est né en août 2025 comme projet personnel, et il est aujourd'hui en production, commercialisé par ma société TLP Solutions.

Mon rôle

J'ai conçu et développé seul l'intégralité du produit : recueil du besoin auprès de plongeurs et de centres, architecture, base de données, front, back, paiements, application mobile, CI/CD, sécurité, conformité RGPD et publication sur les stores. La partie commerciale (démarchage, réseaux sociaux, vidéos) est menée avec mon frère Thomas, associé dans TLP Solutions.

Le logiciel pour les centres et clubs

  • Onboarding : revendication de la fiche du centre avec vérification du SIREN via l'API SIRENE, tunnel de configuration et tutoriels guidés.
  • Planning : calendrier des sorties, sorties sur plusieurs jours, modèles, gestion des bateaux et détection des conflits de capacité, point de rendez-vous GPS avec météo marine.
  • Sécurité : constitution des palanquées, directeur de plongée, feuille de sécurité générée en PDF, validation des plongées à bord depuis le téléphone.
  • Adhérents : invitations, import CSV, suivi des niveaux, licences et certificats médicaux, gestion des rôles (directeur, moniteur, trésorier, plongeur).
  • Matériel : catalogue et tarification de la location directement à la réservation.
  • Encaissement : paiement en ligne via Stripe Connect, prélèvement SEPA ou règlement sur place, trésorerie avec le fil des mouvements par inscription.
  • Facturation : factures numérotées sans trou par exercice, trois régimes de TVA (assujetti, franchise, exonération associative), cotisations de club avec barème et attestations PDF.
  • Réseaux multi-centres : facturation et encaissement mutualisés entre plusieurs structures.
  • E-mails aux couleurs du centre (logo, signature, reply-to) et relances automatiques.

L'application pour les plongeurs

  • Carte interactive des centres (MapLibre + clustering) avec filtres baptême, formation, exploration, nitrox, tek.
  • Carte des sites de plongée : spots importés depuis OpenStreetMap et Wikidata, et environ 2 200 épaves du SHOM, avec un score de confiance calculé par recoupement des sources.
  • Réservation en ligne : panier avec minuteur, options et matériel, paiement 3-D Secure, inscription d'un proche, avoirs et remboursements.
  • Carnet de plongée, niveaux et certificat médical (avec consentement explicite pour les données de santé).
  • Communauté : fil d'activité, profils, abonnements, likes et commentaires.
  • Messagerie temps réel (Supabase Realtime) : conversations privées, de groupe et une discussion par sortie.
  • Notifications push natives (APNs / FCM), cloche in-app et e-mails transactionnels.

Architecture et qualité

Le projet est structuré en couches (DAO, services, Server Actions), avec des types séparés entre entités de base de données et objets métier. Toutes les autorisations reposent sur les politiques RLS de PostgreSQL, et les opérations sensibles comme le règlement ou le remboursement sont transactionnelles en SQL.

  • Trois environnements Supabase (dev, qualif, prod) avec promotion des migrations par la CI et copie hebdomadaire anonymisée de la prod.
  • Pipeline GitHub Actions : typage, lint, tests unitaires, tests des politiques RLS et des parcours de paiement, contrôle d'autorisation de chaque Server Action, audit des dépendances.
  • Tests end-to-end Playwright sur le parcours plongeur.
  • Webhook Stripe idempotent, limiteur de débit, journal d'observabilité maison pour les erreurs serveur et navigateur.
  • Audits de sécurité réalisés et corrigés avant la mise en production (IDOR, escalades de privilèges, buckets de stockage).

Application mobile

L'application iOS et Android est une coquille Capacitor autour du site, avec connexion native Google et Apple, notifications push, appareil photo pour les cartes de niveau, écran hors-ligne et verrou de version minimale. Les builds sont automatisés sur Codemagic (TestFlight et Play Console). L'app est publiée sur l'App Store, la version Android est en cours de test.

Légal, RGPD et fiscalité

Pour un produit qui manipule des données de santé et de l'argent, j'ai traité la conformité dès la conception : registre des traitements, analyse d'impact (AIPD) sur les certificats médicaux, purge et anonymisation des données, export et suppression du compte, CGU/CGV, consentement cookies (Google Consent Mode v2) et déclaration DAC7 pour la fiscalité des plateformes.

Modèle économique

  • Gratuit pour les plongeurs.
  • Centres commerciaux : 79,99 € HT/mois ou 799,99 € HT/an, plus 15 % HT une seule fois sur la première réservation d'un plongeur apporté par DivingQuest.
  • Clubs associatifs : 24,99 € HT/mois ou 250 € HT/an, 3 mois offerts, aucune commission.
  • Abonnements et encaissements entièrement gérés par Stripe Billing et Stripe Connect.

Commercialisation et communication

  • Démarchage des centres : un annuaire de près de 1 600 structures importé depuis OpenStreetMap et SIRENE/RNA, puis un fichier de prospection qualifié de centres vérifiés, suivi dans un CRM interne que j'ai développé (appels, e-mails, relances, argumentaire face au logiciel concurrent).
  • Réseaux sociaux : YouTube, Instagram et TikTok, alimentés par nos propres vidéos de plongée.
  • Studio vidéo intégré : une page dédiée qui rejoue les vrais écrans de l'app avec des données de démo, pour tourner des Reels et Shorts proprement.
  • Brochures PDF pour les centres et les associations, page tarifs et demande de démo.
  • SEO : sitemap dynamique, pages longue traîne par ville, activité et région, blog d'articles, Bing Webmaster Tools.

Plongée en Corse, mai 2025 : une partie des images utilisées dans nos contenus.

Graphisme et UI/UX

Je réalise moi-même l'identité visuelle (logos, fonds, illustrations) et je travaille les parcours pour réduire le nombre de clics, notamment sur mobile où se fait l'essentiel de l'usage côté plongeur.

La suite ?

DivingQuest a servi de socle à toute la famille HobbyQuest : son architecture a été déclinée pour l'airsoft, le paintball et le tir sportif. La feuille de route publique prévoit notamment une GMAO pour le matériel des centres, l'import depuis les ordinateurs de plongée et une version anglaise.

Découvrir HobbyQuest