flowchart TD
A([Arrivée de l'utilisateur sur exercice.php]) --> B{Code exercice présent dans l'URL ?}
B -- Non --> C[Erreur : Exercice introuvable]
B -- Oui --> D[Lecture de exercices.json]
D --> E{Exercice autorisé / public ?}
E -- Non --> C
E -- Oui --> F[Synchronisation syncUserCompletionData]
F --> G{Membre actif / Admin connecté ?}
G -- Oui --> H[Chargement & Fusion depuis user/pseudo.json + Cookie]
G -- Non --> I[Chargement depuis Cookie uniquement]
H --> J{Exercice déjà validé aujourd'hui ?}
I --> J
J -- Oui --> K[Affichage : Défi du jour déjà validé]
J -- Non --> L{Champ nom_du_json renseigné dans exercices.json ?}
L -- Oui --> M[Chargement du JSON spécifique de l'exercice]
M --> N[Calcul du Niveau basé sur le Score de l'utilisateur]
N --> O[Tirage au sort de l'exercice selon le Niveau]
O --> P[Affichage Titre & Description du JSON tiré au sort]
L -- Non --> Q[Affichage Titre & Description de exercices.json]
P --> R[Clic sur le bouton Lancer]
Q --> R
R --> S{Script externe spécifié dans 'lien' ?}
S -- Oui --> T["fetch(lien) : Récupération du PHP/HTML/JS"]
T --> U[Injection dans execution-section & Ré-exécution des scripts]
U --> V[Déroulement de l'exercice]
V --> W[Émission de l'événement JS exerciseFinished]
S -- Non --> X[Lancement du Chrono standard 60s]
X --> W
W --> Y[Affichage de feedback-section : Choix du ressenti]
Y --> Z[Soumission du formulaire feedback-form]
Z --> AA[Calcul de la nouvelle note]
AA --> AB[Sauvegarde dans localStorage]
AB --> AC["Requête POST (action: complete_exercise)"]
AC --> AD[Mise à jour des Cookies]
AD --> AE{Membre actif / Admin ?}
AE -- Oui --> AF["Mise à jour de user/pseudo.json (completed_today + notes)"]
AE -- Non --> AG[Rechargement de la page]
AF --> AG
- 💳 Faire un don maintenant avec :
- 📧 Pour toute question ou suggestion, contactez-moi.
Merci pour votre soutien ! 🌸