Skip to Content
MoodlePartie 15 — Projets guidés (parcours pratique)Vue d'ensemble du parcours

Partie 15 — Projets guidés (parcours pratique)

⏱️ TL;DR — Une échelle de 6 projets à difficulté croissante pour ancrer tout le cours Moodle par la pratique. On part de la découverte (monter un vrai cours en ligne sans écrire de code) pour finir sur un outil LTI externe en Next.js branché sur Moodle. Chaque projet a un cahier des charges (contexte, périmètre, livrables, critères de réussite) et une section « Endroits à visiter » qui vous envoie explorer les écrans d’administration, les fichiers et les APIs clés. Les projets s’enchaînent : le plugin du Niveau 2 mène au module d’activité du Niveau 3, aux web services du Niveau 4, puis à l’outil LTI monétisable du Niveau 5.

🎯 Comment utiliser ce parcours

  • Faites-les dans l’ordre. Chaque niveau suppose le précédent. La découverte fonctionnelle (Niv. 0–1) n’est pas optionnelle : on ne développe bien pour Moodle qu’en ayant vécu Moodle côté enseignant et côté admin.
  • Un projet = une vraie livraison. Installez, cassez, réparez, désinstallez proprement. Un plugin qui « marche presque » n’a pas appris l’essentiel (upgrade, capabilities, désinstallation, caches).
  • Le cahier des charges est un contrat. Périmètre inclus / exclu explicites, comme une mission (voir Partie 13).
  • « Endroits à visiter » = exploration guidée. Avant de coder, allez voir les écrans d’admin et lisez le code du cœur indiqué. Le core de Moodle est votre meilleure documentation.
  • Cochez les critères de réussite. Ils définissent « terminé » et « vérifiable par vous-même ».

🪜 L’échelle des 6 projets

📊 Vue d’ensemble

Niv.ProjetOn pratiqueCode ?Chapitres liés
0Cours « Initiation à la photo »activités, ressources, notes, complétion, rôlesNonP1, P2, P3
1Administrer une plateformecatégories, cohortes, import CSV, rôles, sauvegardeNonP2
2Plugin local_todolist + block_progressinfoversion.php, XMLDB, capabilities, DML, hooks, blockOuiP5, P6
3Module d’activité mod_simplecheckmod_form, carnet de notes, complétion, events, backupOuiP6
4Web services + dashboard Next.jsexternal functions, tokens, protocoles, client ReactOuiP9, P7
5QuizLab — outil LTI externeLTI 1.3, launch, deep linking, grade passback (AGS)OuiP10, P13

🧵 Le fil rouge

À partir du Niveau 2, vos plugins grandissent avec vous — les mêmes fils rouges que la Partie 6 du cours :

  • Niv. 2local_todolist (todo-list par utilisateur) + block_progressinfo (bloc de progression).
  • Niv. 3mod_simplecheck : une activité notée complète (carnet de notes, complétion, events, backup/restore).
  • Niv. 4 — vous ouvrez Moodle vers l’extérieur : web services + un dashboard Next.js qui lit les données.
  • Niv. 5QuizLab : un outil LTI externe en Next.js, lancé depuis un cours, qui renvoie les notes — le micro-SaaS de la Partie 13.

🧰 Prérequis d’environnement

  • Niveaux 0–1 : une instance Moodle accessible (locale ou de démo). Aucun outil de dev. Voir Partie 1.
  • Niveaux 2–3 : une instance de dev locale (voir Partie 4) avec le mode débogage développeur activé, l’accès CLI (admin/cli/), et de quoi purger les caches.
  • Niveaux 4–5 : la même instance + un projet Next.js 15 séparé, et pour le Niv. 5 un enregistrement LTI 1.3 (Moodle joue le rôle de plateforme, votre outil celui de tool).

⚠️ Piège — Jamais de dev sur une instance de production, jamais de core hack (modifier le cœur de Moodle). Tout passe par plugin ou par configuration. Une instance jetable, c’est fait pour être cassée.

💡 Pour un dev React — Les Niveaux 0–1 sont l’immersion « produit » indispensable ; à partir du Niveau 2 vous codez du PHP structuré (pensez « monorepo à conventions strictes »), et les Niveaux 4–5 vous ramènent en terrain connu : REST + un front Next.js, puis un outil SaaS branché en LTI. C’est là que votre double compétence vaut cher.


Premier projet : Niveau 0 — Cours « Initiation à la photo ».