Projet personnel – 2025 En cours

AquaCoach

Site vitrine et système de réservation en ligne avec paiement Stripe pour un coach de natation indépendant

Retour aux projets

Contexte & objectif

AquaCoach est un projet personnel développé pour un coach de natation indépendant souhaitant digitaliser son activité. L'objectif est de lui fournir un outil complet pour présenter ses services, gérer ses réservations et encaisser les paiements en ligne — sans intermédiaire.

Le projet couvre l'ensemble du cycle : du site vitrine jusqu'au traitement des paiements sécurisés via Stripe, en passant par un calendrier interactif permettant aux clients de choisir directement leurs créneaux disponibles.

Fonctionnalités développées

Site vitrine
  • Présentation du coach et de ses spécialités
  • Affichage des formules et tarifs
  • Page de contact intégrée
  • Design responsive adapté mobile
Réservation
  • Calendrier interactif de sélection des créneaux
  • Affichage des disponibilités en temps réel
  • Formulaire de réservation avec récapitulatif
  • Confirmation visuelle côté client
Paiement Stripe
  • Intégration Stripe Checkout sécurisé
  • Testé avec succès en environnement de test
  • Gestion des succès et annulations de paiement
  • Webhook pour déclencher les actions post-paiement

Technologies utilisées

Node.js Express.js JavaScript HTML5 / CSS3 Stripe API Stripe Webhooks dotenv (.env) Bootstrap 5 Nodemailer

Ce que ce projet m'a appris

  • Mettre en place un serveur Express complet avec gestion des routes, middlewares et variables d'environnement
  • Intégrer Stripe Checkout côté serveur et gérer les redirections de succès/annulation
  • Comprendre le fonctionnement des webhooks : écoute d'événements distants, vérification de signature et traitement du payload brut
  • Identifier et résoudre des conflits entre middlewares Express (ordre d'application de express.json() vs lecture du body brut)
  • Sécuriser des clés d'API avec dotenv et bonnes pratiques .gitignore
  • Construire une interface de réservation interactive en JavaScript pur
  • Penser l'architecture d'une application avec plusieurs flux asynchrones (paiement → webhook → email)

État du projet et perspectives

En cours de développement

Ce qui fonctionne
  • Site vitrine complet avec présentation du coach et des tarifs
  • Calendrier de réservation interactif avec sélection de créneaux
  • Paiement sécurisé via Stripe (testé avec succès en environnement de test)
  • Confirmation visuelle de la réservation côté client
Problème en cours de résolution

Le coach ne reçoit pas l'email de confirmation de réservation. Le problème identifié se situe au niveau du webhook Stripe : la clé de signature (whsec_...) stockée dans les variables d'environnement (.env) n'est pas correctement lue par le middleware Express.

Le parseur JSON (express.json()) traite le body de la requête avant que le webhook puisse accéder au payload brut (Buffer), ce qui invalide la vérification de signature Stripe. La solution explorée consiste à conditionner le middleware pour exclure la route webhook du parsing JSON automatique.

Évolutions prévues
  • Résoudre le problème de webhook pour activer les emails automatiques
  • Intégrer une base de données (MySQL ou MongoDB) pour stocker les réservations, les créneaux disponibles et l'historique des paiements
  • Créer un espace d'administration pour le coach (gestion des créneaux, suivi des réservations)
  • Déployer en production sur Render.com avec un nom de domaine personnalisé