Application Laravel reproduisant l’expérience Club Med : découverte des resorts, parcours de réservation multi-étapes, panier, gestion des utilisateurs et avis. Front propulsé par Blade + Vite/Tailwind, authentification Jetstream/Fortify avec 2FA par OTP.
- Listing des resorts et fiche détaillée (photos, localisation, activités).
- Parcours de réservation en 3 étapes avec choix de la chambre et options de transport.
- Panier utilisateur (réservations en attente), paiement Stripe intégré.
- Webhooks Stripe pour synchronisation automatique des paiements.
- Historique des réservations et dépôt d’avis.
- Authentification Laravel Jetstream/Fortify + 2FA OTP, gestion du profil.
- PHP ≥ 8.1, Composer
- Node.js + npm
- Base de données MySQL/MariaDB ou SQLite
- Cloner le dépôt puis installer les dépendances :
composer install
npm install- Copier l’exemple d’environnement et configurer la base de données :
cp .env.example .env # sous Windows : copy .env.example .envRenseigner DB_* (MySQL/MariaDB) ou DB_CONNECTION=sqlite + chemin du fichier.
- Générer la clé et créer le lien de stockage :
php artisan key:generate
php artisan storage:link- Créer la base :
php artisan migrate # ajoute :php artisan db:seed si des seeders existentTerminal 1 :
php artisan serveTerminal 2 :
npm run devphp artisan testAjoutez vos clés Stripe dans .env :
STRIPE_PUBLIC_KEY=pk_test_...
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...Pour que les réservations soient automatiquement confirmées après paiement :
- Créez un webhook dans Stripe Dashboard
- Configurez l'URL :
https://votre-domaine.com/stripe/webhook - Sélectionnez ces événements :
checkout.session.completedpayment_intent.succeededpayment_intent.payment_failed
- Copiez le webhook secret dans
.env
📚 Documentation complète : Voir WEBHOOK_CONFIGURATION.md
🔍 Vérifier la configuration :
bash check-webhook-setup.sh # Linux/Mac
# ou
sh check-webhook-setup.sh # Windows Git Bash- Routes principales :
routes/web.php - Contrôleurs métier :
app/Http/Controllers/ - Webhooks Stripe :
app/Http/Controllers/StripeWebhookController.php - Vues Blade :
resources/views/ - Configuration Jetstream/Fortify :
config/jetstream.php,config/fortify.php - Configuration Stripe :
config/stripe.php
- Clé manquante :
php artisan key:generate - Assets absents : vérifier
npm run dev - Cache incohérent :
php artisan optimize:clear - Webhooks Stripe : consulter
storage/logs/laravel.log