Skip to content
English

Le projet ​

CapyCode est un éditeur de code pédagogique pour débutants : l'ergonomie de VS Code (explorateur, onglets, terminal, Git), dans un navigateur, sans rien installer. Il sert à apprendre Python, et aussi SQL et OCaml. Il est destiné à être intégré à Capytale, le service d'activités de programmation de l'Éducation nationale, qui l'affiche dans un cadre.

Ce que fait l'application ​

  • Éditer plusieurs fichiers dans des onglets, sur un ou deux volets, avec coloration, complétion, recherche, formatage et analyse du code Python à la frappe.
  • Exécuter un programme (bouton ▶, Ctrl+Entrée), dialoguer avec un interpréteur (la console Python), lancer python, pip et des commandes de fichiers dans un terminal. Les sorties graphiques (turtle, matplotlib, p5, tkinter) s'affichent dans le panneau inférieur.
  • S'initier à Git : indexer, commiter, créer et fusionner des branches, comparer des versions, voir le graphe, depuis l'interface ou dans le terminal.
  • Garder et partager son projet : il reste dans le navigateur d'une visite à l'autre ; on l'exporte en ZIP (historique Git compris) ou on le partage par un lien.
  • Fonctionner hors ligne pour l'édition, Git et les projets (PWA). L'exécution, elle, a besoin du réseau au premier chargement de Python.

Les principes qui guident le code ​

PrincipeConséquence
Tout dans le navigateurAucun serveur applicatif : fichiers dans IndexedDB, Git en JavaScript, analyse Python en WebAssembly, exécution dans des workers. Le site est statique.
Le code de l'élève est isoléIl s'exécute dans un worker d'origine opaque : il ne peut lire ni le projet, ni le dépôt, ni le stockage de la page.
Basthon tel quelLes noyaux Basthon officiels sont utilisés sans surcouche ; une amélioration de l'exécution se fait dans Basthon, pas dans CapyCode.
Une seule source de véritéToute écriture passe par le système de fichiers ou le service Git, qui préviennent l'interface. Personne ne rafraîchit à la main.
Décrire une foisUn langage, une commande de l'IDE, une commande du terminal sont déclarés en un seul endroit ; menus, aide, raccourcis et complétion en dérivent.
Accessible et traduitRGAA 4.1.2 (WCAG 2.2 AA) visé, tout au clavier ; interface en anglais par défaut et en dix langues, sans texte écrit en dur.
Une base faite pour durerCouches vérifiées par ESLint, aucun avertissement toléré, tests par domaine, documentation mise à jour dans le même commit que le code.

Pour qui est cette documentation ​

Pour un développeur (ou un agent IA) qui rejoint le projet. Elle explique ce qui existe et pourquoi ; le code dit le comment. Parcours conseillé :

  1. Démarrer : installer, lancer, se repérer dans le dépôt.
  2. Visite guidée du code : suivre quatre actions de l'élève à travers le code.
  3. Vue d'ensemble de l'architecture, puis les pages du domaine sur lequel vous travaillez.
  4. Contribuer et les recettes avant votre première modification.
  5. Évolution pour comprendre d'où vient le projet et ce qui reste ouvert.

Les règles qui s'imposent à tous, en bref, sont dans AGENTS.md à la racine du dépôt ; un glossaire donne le vocabulaire du projet.

Les gens et les dépôts ​

  • CapyCode : ce dépôt, sur la forge de l'Éducation nationale (GitLab), déployé par sa CI sur le serveur de Capytale.
  • Basthon (basthon-kernel) : les noyaux d'exécution, publiés sur npm (@basthon/kernel-*). CapyCode suit leurs versions ; ce qui manque à l'exécution se demande ou se fait là-bas.
  • Capytale : la plateforme qui intègre CapyCode et dialogue avec lui par postMessage (voir Intégration dans une page hôte).