Historique
L'idée de Cahier de Prépa a germé en 2010, alors que j'avais comme d'autres collègues un bout de site web où mettre des informations, des liens, des documents... Je reprenais alors d'une année à l'autre la structure de mes sites successifs, en la rendant de plus en plus complexe et automatisée. L'intérêt était d'aller plus vite pour mettre des informations toujours plus ou moins identiques.
En 2010 donc, je suis arrivé à un point où il devenait possible de faire participer les collègues (merci à Delphine et Caroline pour votre motivation). Mais il y avait un gros problème à surmonter : pour pouvoir alimenter le site à plusieurs, il fallait évacuer le côté technique et bricolage pour avoir un site « qui fonctionne ». C'est à ce moment-là que je me suis dit qu'il fallait un vrai gestionnaire de contenu, permettant à n'importe quel autre professeur de tenir à jour simplement son Cahier de Prépa.
Cahier de Prépa est ainsi né en version 1.0 durant l'été 2011. Il contenait déjà plus de 3600 lignes de code réparties dans 25 fichiers.
Grâce aux retours de la quinzaine de collègues qui l'ont utilisé en 2011-2012, j'ai souhaité améliorer en particulier l'interface d'administration de Cahier de Prépa. Le mois d'août 2012 a servi à cela, et la version 2, intégrant notamment la protection par mot de passe à la lecture et une gestion des documents infiniment plus conviviale, a vu le jour début septembre 2012. On est alors à 5100 lignes de code.
De nouvelles fonctionnalités apparaissent à la rentrée 2013 (version 3), comme le flux RSS des nouveautés ou une amélioration générale de la lisibilité de l'interface d'administration. On atteint les 6000 lignes (version 3.2) réparties dans 32 fichiers (hors icônes et librairies javascript externes).
Des modifications sont arrivées durant l'année scolaire 2013-2014, mais c'est encore une fois à l'été que le développement a accéléré : à la rentrée 2014, on trouve dans la version 4 de nombreuses nouveautés, parmi lesquelles la possibilité de disposer facilement d'un compte pour chaque élève et colleur, d'envoyer des mails via Cahier de Prépa et de saisir les notes de colles. On dépasse tout juste les 8400 lignes, pour 41 fichiers. De nouvelles fonctionnalités, comme les comptes de type invités et les groupes d'élèves, arrivent aux vacances de Toussaint. La version 4.1 compte plus de 9300 lignes.
Le développement de la version 5 a largement débordé l'été 2015 (et ce n'est pas faute d'y avoir passé du temps !). La version 5.0 a dû attendre fin septembre pour sortir, un peu précipitamment... et il faudra attendre fin octobre pour avoir une version 5.1 stable et définitive. Les nouveautés sont techniques et cosmétiques plus que sur les fonctions : l'interface est entièrement repensée et prévue pour être plus fonctionnelle. Le thème est modifié, la séparation entre partie publique et interface d'administration est supprimée, une grande place est faite aux interactions sans rechargement par Ajax
, et le design s'adapte à la taille du navigateur (responsive design). La gestion des utilisateurs et des notes est grandement améliorée. On se trouve alors à 10600 lignes, pour 30 fichiers seulement (les deux fichiers principaux, l'un en JavaScript
et l'autre en PHP
, font presque 2000 lignes chacun).
La nouvelle fonctionnalité de la version 6, disponible en septembre 2016, est l'agenda. Les informations récentes et les flux RSS ont été aussi grandement améliorés et sont désormais plus faciles à lire. L'interface est restée identique, à quelques détails cosmétiques près, comme un changement de bibliothèque pour la sélection des dates et heures. La version 6.0 compte plus de 11700 lignes réparties sur 32 fichiers.
En 2017, l'été a été trop court. La nouvelle version 7 n'est pas du tout finie, pas utilisable. La 6 fonctionne suffisamment bien pour être prolongée une année de plus. Le version 7 ne sortira jamais en tant que telle.
Le travail réalisé sur la version 7 n'est pas pour autant perdu, et les modifications aboutissant à la version 8 sont nombreuses. Il s'agit pour une grande partie de travail de réécriture technique, prenant en compte notamment les possibilités de PHP7
pour le fichier ajax.php
de traitement sur le serveur et celle de JQuery3
pour le fichier edition.js
de traitement côté client. Mais beaucoup de fonctionnalités sont largement améliorée : la gestion des utilisateurs devient beaucoup plus fluide, les protections des accès paramétrables beaucoup plus finement. La vraie nouveauté devient la possibilité d'utiliser les notes de colles à un nouveau niveau : un nouveau type de compte, le compte administratif, peut maintenant relever les heures de colles. La version 8, sortie le 15 octobre 2018, compte plus de 14300 lignes de code pour 35 fichiers. Les deux fichiers principaux font désormais 2500 lignes chacun.
La version 9 sort le 29 août 2019 et compte 15300 lignes, dont près de 2700 sur chacun des deux fichiers principaux. La principale nouveauté est la possibilité de se connecter de façon globale à plusieurs Cahiers, et de pouvoir changer de Cahier après connexion. La gestion technique des sessions a été pour cela complètement revue. Un travail sur l'interface, notamment sur mobile, a été réalisé, dans le but de pouvoir se passer d'une application spécifique pour téléphone, le site web se suffisant. Enfin, le flux des contenus récents a été complété et corrigé afin de devenir un élément central du Cahier, sur une page dédiée.
Pour la première fois, la situation exceptionnelle de mars 2020 entraîne l'émergence d'une fonctionnalité majeure en cours d'année. Les versions 9.1 et 9.2 du 2 avril 2020 ouvrent ainsi les transferts de copies et de corrections personnalisées, à travers une interface nouvelle pour les élèves et améliorée pour les professeurs. L'envoi des documents en profite, avec désormais l'envoi multiple et simultané, ainsi que l'indication durant l'envoi de la progression du chargement. Ces ajouts représentent 1700 lignes de code, pour un total tout juste supérieur à 17000 lignes.
À l'été 2020, une nouvelle étape du développement, ambitieuse, démarre. L'idée est de pouvoir donner différents droits aux utilisateurs, de façon réglables. En particulier, les professeurs qui n'en ont pas besoin pourraient ne pas avoir le droit de faire de bêtises, et les élèves pourraient avoir le droit d'ajouter du contenu si les professeurs sont d'accord. Mais cela demande un travail colossal puisqu'une modification interne des droits demande une réécriture massive des trois parties du code : la partie présentation en PHP
, la partie animation en Javascript
, et la partie modification en PHP
, avec toute la gestion de la base de données. En particulier, les scripts JavaScript
vont être désormais coupés en 3 parties (commun.js
toujours chargé, lecture.js
chargé sur les pages sans édition, et edition.js
chargé quand il y a de l'édition possible). Le fichier PHP
qui réalise toutes les modifications est devenu beaucoup trop gros, et dangereux si différents utilisateurs y accèdent : il est découpé en 6 parties, en fonction des types d'utilisateurs qui exécutent les modifications.
Toutes ces modifications étaient un peu trop ambitieuses, et un seul été n'a pas suffit. Alors, à la rentrée 2020 et à la rentrée 2021, pas de nouvelle version. Seuls des petits ajustements sont apportés sur la version en cours (des améliorations du transferts de copies notamment. Mais la version 10 chauffe...
Et cette version 10, elle arrive enfin le 31 août 2022 et comptabilise plus de 21000 lignes de code. Malheureusement, c'est encore un peu précipité et de nombreuses insuffisances sont visibles les premiers jours. Mais cela fonctionne globalement, et les nouveautés sont très nombreuses : en plus de ces possibilités d'édition étendues pour les informations, il y a maintenant des possibilités de voir les contenus plus rapidement, par exemple par un regroupement des programmes de colles toutes matières pour les élèves ou par un accès direct à leur matière spécifique pour les professeurs. Les « transferts de copies » deviennent des « transferts de documents », accessibles aux colleurs et aux comptes lycée. Le « mode lecture » permet désormais pour les professeurs de voir le site comme s'ils étaient un élève : c'est une des questions que l'on se pose systématiquement sur un ENT. L'interface pour saisir et relever les notes de colles est nettement améliorée, avec la possibilité pour les colleurs d'écrire des commentaires pour les professeurs. Et le « blog de CdP » fait son apparition directement dans le menu, permettant très facilement à votre serviteur de parler à tous les utilisateurs, sans envoyer de mail...
Durant l'été 2023, le travail est donc axé sur la stabilisation de la version 10 et l'extension des possibilités d'édition. En particulier, il y a une fonctionnalité qui n'a que très peu évolué depuis son arrivée en 2016 : l'agenda. Alors l'agenda est enfin mis au niveau des autres fonctionnalités. La version 11 sort le 3 septembre 2023 et totalise près de 23000 lignes de code. Dans cette version, les mails peuvent désormais contenir des pièces jointes et il est plus facile d'ajouter un destinataire, d'écrire un lien vers un documents présent sur Cahier de Prépa. Enfin, Cahier de Prépa propose un mode sombre, qui s'adapte au réglage de l'appareil utilisé mais peut aussi être forcé. Cette version 11 est un aboutissement des évolutions initiées en 2020, complètement stable et avec une aide qui a été complètement réécrite elle aussi en trois ans.
À propos de l'auteur
Je m'appelle Cyril Ravat, je suis professeur agrégé de Sciences Physiques, en charge de la Physique et depuis 2013 de l'Informatique dans la PCSI du lycée Carnot, à Paris. Je suis, à côté de cela, intéressé par le développement de sites web depuis le début des années 2000.
Le développement de Cahier de Prépa me permet, sur mon temps libre, de m'adonner à une véritable passion. Je ne code pas depuis tout petit, j'ai découvert la programmation sur les calculatrices graphiques à 16 ans. Je suis très curieux et capable de lire des documentations et des commentaires pendant des heures pour trouver le code qui me conviendra le mieux dans son écriture. Je suis sujet à une certaine forme de perfectionnisme maladif, mais je me soigne.
Je suis favorable au logiciel libre et je pense que ce code doit être partagé avec ceux qui le souhaitent, sous licence libre.
Je suis engagé dans le développement selon les standards du web que constituent entre autres HTML 4.01 strict
et CSS 2.1
pour les version 1 à 4 de Cahier de Prépa, HTML 5
et CSS 3
depuis la version 5. J'aime le code propre et lisible, sans balise propriétaire ou obsolète, et j'essaie de le produire ainsi. Le fond des pages est uniquement géré par HTML
, l'affichage (agencement, tailles, couleurs) uniquement par CSS
. Il n'y a pas de table si les données présentées ne le justifient pas. Cela garantit un affichage quasi-similaire dans tous les navigateurs modernes. L'interface d'édition fait désormais appel énormément à JavaScript
, via la bibliothèque libre et interopérable jQuery
. Enfin, je fais attention au maximum aux problématiques de sécurité et toute la gestion du code PHP
et de la base de données tient compte de cela.