ntic:diagramme_page_exercice

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

Merci pour votre soutien ! 🌸