# Arborescence du projet

Légende : [x] livré à l'étape 1, [2] [3] [4] = étape de livraison prévue.

```
foulee/
├── config/
│   ├── config.sample.php        [x] modèle de configuration
│   └── config.php               (à créer, jamais versionné)
├── app/                         (hors du dossier public)
│   ├── bootstrap.php            [x] chargement, config, base
│   ├── DB.php                   [x] accès PDO + réglages (table settings)
│   ├── Pace.php                 [x] modèle d'allures (VMA + indice d'endurance)
│   ├── Blocks.php               [x] structure des séances : km, durée, charge, texte
│   ├── PlanGenerator.php        [x] moteur de génération des plans
│   ├── Router.php               [2] routes propres (URL sans .php)
│   ├── helpers.php              [2] échappement, CSRF, vues, redirections
│   ├── Auth.php                 [2] connexion, rôles, mot de passe oublié
│   ├── Stripe.php               [2] Checkout + vérification du webhook (cURL, sans Composer)
│   ├── Mailer.php               [2] emails via Brevo ou mail()
│   └── controllers/
│       ├── front.php            [2] pages publiques, calculateur, commande
│       ├── api.php              [2] JSON : allures, aperçu du plan, leads
│       ├── account.php          [3] espace athlète
│       └── admin.php            [4] back office
├── views/
│   ├── layout/                  [2] front.php, account.php [3], admin.php [4]
│   ├── front/                   [2] accueil, distance, objectif, calculateur, tarifs, faq, commande, merci, connexion, légal
│   ├── account/                 [3] tableau de bord, plan, semaine, séance, allures, renfo, charge, profil, impression
│   ├── admin/                   [4] stats, commandes, clients, plans, bibliothèque, renfo, produits, réglages, leads, simulateur
│   └── emails/                  [2] bienvenue, mot de passe, fiche allures
├── public/                      (racine web : le domaine pointe ici)
│   ├── index.php                [2] contrôleur frontal unique
│   ├── .htaccess                [2] réécriture d'URL, sécurité
│   ├── manifest.webmanifest     [3] appli installable (PWA)
│   ├── sw.js                    [3] cache hors ligne
│   └── assets/css, js, img      [2][3][4]
├── database/
│   ├── schema.sql               [x] 12 tables
│   └── seed.sql                 [x] réglages, 3 produits, 3 routines renfo, 81 séances
├── tools/
│   └── simulate.php             [x] simulateur de plan en ligne de commande
├── install/install.php          [2] création du premier compte admin
├── storage/logs/                [2] journaux webhook et emails
└── docs/                        [x] cette documentation
```

# Plan du site

## Front office (public, mobile d'abord)

| URL | Page |
|---|---|
| `/` | Accueil : promesse, fonctionnement, distances, tarifs, avis, FAQ |
| `/plan-10-km`, `/plan-semi-marathon`, `/plan-marathon` | Page de vente par distance (SEO) |
| `/plan-semi-marathon/1h45` … | Pages par objectif chrono, générées automatiquement (SEO longue traîne) |
| `/calculateur-allures` | Outil gratuit + capture d'email |
| `/tarifs`, `/faq` | Tarifs et questions |
| `/commander` | Tunnel en 6 étapes avec aperçu du plan en direct |
| `/commande/merci` | Confirmation, connexion automatique à l'espace |
| `/connexion`, `/mot-de-passe-oublie`, `/reinitialiser` | Compte |
| `/mentions-legales`, `/cgv`, `/confidentialite` | Légal |
| `/webhook/stripe` | Réception des paiements (serveur à serveur) |

## Espace athlète (connecté, installable sur téléphone)

| URL | Page |
|---|---|
| `/espace` | Aujourd'hui : séance du jour, compte à rebours, semaine en cours |
| `/espace/plan` | Toutes les semaines, phases, km |
| `/espace/semaine/{n}` | Détail d'une semaine |
| `/espace/seance/{id}` | Séance avec allures, bouton « fait », ressenti (RPE) |
| `/espace/allures` | Zones, chronos estimés, temps de fractionné |
| `/espace/renfo` | Routines A, B, C |
| `/espace/charge` | Graphique de charge et alertes |
| `/espace/profil` | Mise à jour de la VMA (toutes les allures suivent), mot de passe |
| `/espace/imprimer` | Version PDF via l'impression du navigateur |

## Back office (rôle admin)

| URL | Page |
|---|---|
| `/admin` | CA, ventes, leads, conversion, plans actifs |
| `/admin/commandes` | Liste, détail, statut Stripe |
| `/admin/clients` | Clients, leurs plans, « voir en tant que » |
| `/admin/plans/{id}` | Plan complet, régénération |
| `/admin/seances` | Bibliothèque : filtres, création, édition des blocs avec aperçu |
| `/admin/renfo` | Routines |
| `/admin/produits` | Prix, durées, activation |
| `/admin/reglages` | Zones, indice d'endurance, affûtage, volumes, charge |
| `/admin/leads` | Emails du calculateur, export CSV |
| `/admin/simulateur` | Générer n'importe quel plan pour le vérifier |
