import { BrowserRouter as Router, Routes, Route, Link, useNavigate, useSearchParams, useParams } from 'react-router-dom'; import { useEffect, useState } from 'react'; import { BookOpen, FileText, Smartphone, ArrowRight, Phone, CheckCircle, Download, AlertCircle } from 'lucide-react'; import PrivacyPolicy from './PrivacyPolicy'; const WA_NUMBER = import.meta.env.VITE_WHATSAPP_NUMBER || '221771234567'; const API_URL = import.meta.env.VITE_API_URL || 'http://localhost:3001'; function Navbar() { return ( ); } function Hero() { return (
Formation directement sur WhatsApp

Maîtrise ton business,
un message à la fois.

Des formations audio interactives sur WhatsApp pour les entrepreneurs du Sénégal. Reçois ta leçon chaque matin et génère ton dossier business en IA.

S'inscrire sur WhatsApp Mon espace étudiant
); } function Features() { const features = [ { icon: , title: 'WhatsApp natif', desc: 'Pas d\'application à installer. Reçois tes leçons audio et exercices directement dans WhatsApp.' }, { icon: , title: 'Parcours structurés', desc: 'Des formations multi-jours conçues pour les entrepreneurs de l\'informel au Sénégal.' }, { icon: , title: 'Dossier IA', desc: 'À la fin de ta formation, l\'IA génère automatiquement ton One-Pager PDF et ton Pitch Deck.' }, ]; return (

Comment ça marche

Une expérience d'apprentissage conçue pour les entrepreneurs mobiles.

{features.map((f, i) => (
{f.icon}

{f.title}

{f.desc}

))}
); } // ── Student Portal ──────────────────────────────────────────────────────────────── function StudentPortal() { const navigate = useNavigate(); const [phone, setPhone] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); setLoading(true); const cleaned = phone.replace(/\s+/g, '').replace(/^\+/, ''); try { const res = await fetch(`${API_URL}/v1/student/me?phone=${cleaned}`); if (res.ok) { navigate(`/student/${cleaned}`); } else if (res.status === 404) { setError('Numéro non trouvé. Envoie INSCRIPTION sur WhatsApp pour t\'inscrire.'); } else { setError('Erreur serveur. Réessaie dans un moment.'); } } catch { setError('Impossible de joindre le serveur.'); } finally { setLoading(false); } }; return (

Mon espace étudiant

Entre ton numéro WhatsApp pour voir ta progression.

setPhone(e.target.value)} className="focus:ring-primary focus:border-primary block w-full pl-10 sm:text-sm border-gray-300 rounded-xl py-3 border outline-none transition-colors" placeholder="+221 77 123 45 67" />
{error &&
{error}
}

Pas encore inscrit ? Envoie INSCRIPTION sur WhatsApp

); } // ── Student Dashboard ───────────────────────────────────────────────────────────── function StudentDashboard() { const { phone } = useParams<{ phone: string }>(); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); useEffect(() => { fetch(`${API_URL}/v1/student/me?phone=${phone}`) .then(r => { if (!r.ok) throw new Error('not found'); return r.json(); }) .then(setData) .catch(() => setError('Impossible de charger tes données.')) .finally(() => setLoading(false)); }, [phone]); if (loading) return
Chargement...
; if (error) return (

{error}

← Retour
); return (

{data.name || 'Mon espace'}

{data.phone} · {data.language} · {data.activity || 'Secteur non défini'}

← Changer de compte
{/* Enrollments */}

Mes formations

{data.enrollments.length === 0 ? (

Tu n'es inscrit à aucune formation.

Voir les formations disponibles
) : (
{data.enrollments.map((e: any) => (

{e.trackTitle}

Jour {e.currentDay} sur {e.totalDays}

{e.status === 'ACTIVE' ? '🟢 En cours' : e.status === 'COMPLETED' ? '✅ Terminé' : e.status}
{/* Progress bar */}

{e.progressPercent}% complété

{e.status === 'ACTIVE' && ( Continuer sur WhatsApp )}
))}
)} {/* Payments */} {data.payments.length > 0 && ( <>

Mes paiements

{data.payments.map((p: any) => (

{p.amount.toLocaleString()} {p.currency}

{new Date(p.createdAt).toLocaleDateString('fr-FR')}

Payé
))}
)}
); } // ── Payment Success ─────────────────────────────────────────────────────────────── function PaymentSuccess() { const [searchParams] = useSearchParams(); const phone = searchParams.get('phone') || ''; return (

Paiement réussi !

Ta formation a été débloquée. Tu vas recevoir ta première leçon sur WhatsApp dans quelques minutes.

Continue ton apprentissage :

Ouvrir WhatsApp
{phone && ( Voir mon espace étudiant )} ← Retour à l'accueil
); } function Footer() { return (
EdTech.sn

Former les entrepreneurs d'Afrique grâce à une éducation accessible, mobile-first et propulsée par l'IA.

Plateforme

Entreprise

© {new Date().getFullYear()} EdTech.sn. Tous droits réservés.
); } function App() { return (
} /> } /> } /> } /> } />
); } export default App;