MVP d'un site Next.js pour un chauffeur au Sénégal : configuration de trips, génération d'itinéraires par IA, devis estimatif, contact WhatsApp + Email.
- ✅ Formulaire de demande de transport avec validation Zod + React Hook Form
- ✅ Génération d'itinéraires par IA (données simulées réalistes)
- ✅ Calcul de devis automatique selon le type de véhicule
- ✅ Intégration WhatsApp pour la réservation
- ✅ Envoi d'emails avec devis détaillé (Resend)
- ✅ Chat conversationnel avec Gemini 2.0 Flash (ou mode démo)
- ✅ Assistant expert Sénégal - recommandations personnalisées
- ✅ Planification voyage sur-mesure selon budget/goûts/durée
- ✅ Suggestions destinations : Dakar, Saint-Louis, Casamance, etc.
- ✅ Export WhatsApp du programme complet après validation "GO"
- ✅ Base de données Supabase pour stocker les demandes
- ✅ Interface responsive avec Tailwind CSS
- ✅ Mode démo sans frais (pas d'API payante requise)
- Frontend: Next.js 14 (App Router) + TypeScript + Tailwind CSS
- Backend: Next.js API Routes
- Database: Supabase (PostgreSQL)
- AI: OpenAI GPT-4o-mini avec JSON structuré + Zod
- Forms: React Hook Form + Zod validation
- Email: Resend (optionnel)
- Styling: Tailwind CSS avec design system personnalisé
- Cloner le projet
cd senegal-driver-mvp
npm install- Configurer les variables d'environnement
Copier .env.example vers .env.local et remplir les valeurs:
cp .env.example .env.localVariables requises:
NEXT_PUBLIC_SUPABASE_URL- URL de votre projet SupabaseNEXT_PUBLIC_SUPABASE_ANON_KEY- Clé anonyme SupabaseOPENAI_API_KEY- Clé API OpenAI (legacy - pour transport direct)GEMINI_API_KEY- Clé API Google Gemini (pour chat IA) ⭐ NOUVEAUWHATSAPP_PHONE_NUMBER- Numéro WhatsApp du chauffeurRESEND_API_KEY- Clé API Resend (optionnel)
- Configurer Supabase
Exécuter le schéma SQL dans votre tableau de bord Supabase:
# Le fichier supabase-schema.sql contient tous les CREATE TABLE nécessaires- Lancer le serveur de développement
npm run devOuvrir http://localhost:3000 dans votre navigateur.
src/
├── app/
│ ├── api/trips/ # API routes
│ │ ├── quote/ # Génération de devis + IA
│ │ └── email-quote/ # Envoi d'emails
│ ├── globals.css # Styles Tailwind + variables CSS
│ └── page.tsx # Page principale
├── components/
│ ├── forms/ # Formulaires
│ │ ├── trip-request-form.tsx
│ │ └── trip-quote-display.tsx
│ └── ui/ # Composants UI réutilisables
├── lib/
│ ├── supabase.ts # Client Supabase
│ ├── openai.ts # Client OpenAI
│ └── utils.ts # Utilitaires (WhatsApp, CSS)
├── schemas/
│ └── trip.ts # Schémas Zod pour validation
└── types/
└── index.ts # Types TypeScript
-
Variables d'environnement configurées
- Supabase URL + clé anonyme
- OpenAI API key
- Numéro WhatsApp
- Resend API key (si emails activés)
-
Base de données Supabase
- Projet créé
- Schéma SQL exécuté (
supabase-schema.sql) - Tables
trip_requestsettrip_quotescréées
-
Tests fonctionnels
- Formulaire de demande fonctionne
- Génération de devis par IA
- Bouton WhatsApp redirige correctement
- Envoi d'email (si activé)
- Stockage en base de données
- Push le code sur GitHub
git add .
git commit -m "feat: MVP Transport Sénégal ready for production"
git push origin main-
Connecter à Vercel
- Importer le projet GitHub
- Ajouter les variables d'environnement
- Déployer
-
Configuration post-déploiement
- URL de production dans
NEXT_PUBLIC_APP_URL - Tester toutes les fonctionnalités en prod
- Vérifier les logs Vercel pour les erreurs
- URL de production dans
- Créer un nouveau projet sur supabase.com
- Exécuter le contenu de
supabase-schema.sqldans l'éditeur SQL - Récupérer URL + anon key dans Settings > API
- Créer un compte sur platform.openai.com
- Générer une API key dans API keys
- Créditer le compte (minimum $5)
- Créer un compte sur resend.com
- Vérifier un domaine ou utiliser le domaine de test
- Générer une API key
- Authentification utilisateur chauffeur
- Dashboard admin pour gérer les demandes
- Notifications SMS via Twilio
- Paiement en ligne (Stripe/Wave)
- Géolocalisation temps réel
- PWA pour installation mobile
- Multi-chauffeurs et dispatch
- Analytics avec Vercel Analytics
Pour des questions techniques ou des améliorations, contactez l'équipe de développement.
Made with ❤️ for Sénégal 🇸🇳