Changelog
Toutes les évolutions notables de la plateforme KLASSCI, regroupées par mois.
Le format suit librement Keep a Changelog.
Ce fichier est curé manuellement à partir de l'historique des livraisons. Les correctifs mineurs, refactorings internes et changements d'infrastructure ne sont pas listés systématiquement. Pour le détail technique complet, consulter l'historique Git du dépôt.
Octobre 2026
Ajouts
-
Des régularisations qui étaient des notes d'examen — dans la fenêtre des notes LMD d'une classe, un bandeau signale les évaluations saisies en « Régularisation ». Si c'étaient les notes d'examen d'un semestre, l'école choisit ce semestre, voit ce qui change, puis les requalifie en examen : elles s'appellent désormais « Examen … », aucune note ne bouge, et le contrôle continu reste distinct. Nanan sait aussi le faire, après votre clic « Valider ».

AvantAprèsLe bandeau dit combien d'évaluations sont concernées par semestre et montre chaque titre avant et après. -
Le rang d'une UE au bulletin, parcours par parcours — dans « Lier à des parcours », chaque parcours coché a son champ « Rang au bulletin ». Une même UE peut avoir un rang différent dans deux parcours, comme sur les bulletins officiels.

AvantAprèsLe rang se règle à côté des semestres de chaque parcours. -
La pondération contrôle continu / examen, si l'école la choisit — dans les paramètres LMD, une case fait entrer la répartition (par exemple 40 % de contrôle continu et 60 % d'examen) dans la moyenne de chaque élément. Une absence à l'examen compte 0, une seule partie présente compte seule. Décochée, rien ne change. Le PV de jury et le relevé indiquent la règle appliquée.

-
Nanan modifie et retire les éléments d'une maquette LMD — changer le code, l'intitulé, les crédits ou le rang d'une UE, ajouter ou modifier un ECUE, ou retirer un élément en choisissant ce qu'il devient : Nanan montre le tableau avant/après, signale une UE partagée avec d'autres parcours ou un semestre qui dépasse 30 crédits, et n'écrit rien avant votre clic « Valider ».
-
« Redoublant ? » à chaque inscription — la question se pose aussi au formulaire « Nouvelle inscription », dans « Accepter et inscrire » d'une candidature et dans « Réinscrire » d'une demande en ligne. Pour un nouvel élève, KLASSCI propose « Non » : l'école répond « Oui » s'il redouble en venant d'un autre établissement, et dit pourquoi.


-
Le statut redoublant, confirmé par une personne — KLASSCI déduit toujours si un élève redouble, d'après son niveau de l'année d'avant, mais une personne habilitée le confirme désormais : à la réinscription, sur la fiche d'inscription, ou en masse depuis la liste filtrée « Statut redoublant à confirmer ». Changer la valeur proposée demande un motif, une contradiction avec la décision de réinscription est signalée, et le contrôle avant génération des bulletins prévient tant qu'un statut reste à confirmer. Par défaut, le secrétariat, la scolarité, le coordinateur et le directeur des études peuvent confirmer.

AvantAprèsLa fiche dit d'où vient le statut, signale la contradiction, et se confirme ou se corrige en un clic. -
Nanan crée et modifie les classes — « ajoute une classe de 60 places à chaque filière et chaque niveau », « passe les 1res années à 50 places » : Nanan montre d'abord le tableau avant/après (noms, capacités, couples sans étudiant), reprend les matières de la classe voisine, refuse une capacité inférieure au nombre d'inscrits, et n'écrit rien avant votre clic « Valider ».
-
Confirmation du numéro par WhatsApp, dans l'autre sens — sur le portail d'inscription, la famille peut confirmer son numéro en touchant un bouton qui ouvre WhatsApp avec le code déjà écrit : elle l'envoie au numéro de l'école, et la page se valide d'elle-même quelques secondes plus tard. Aucun message n'est envoyé à un inconnu, ce qui protège le numéro de l'école. Réglage activé école par école.
-
« J'ai déjà fait ma demande » sur le portail de chaque école — une troisième entrée, à côté de « Nouvel étudiant » et « Déjà étudiant ici », pour retrouver la date, l'heure et le lieu de son rendez-vous avec sa date de naissance et son téléphone ou son matricule, puis télécharger ou se faire renvoyer sa convocation PDF.
-
Le lieu du rendez-vous sur la convocation — l'école indique où se présenter (par exemple « Scolarité, bâtiment A ») : il apparaît sur la convocation PDF, l'e-mail, le WhatsApp et la page de rendez-vous.
-
Nanan débloque une réinscription arrêtée par un impayé — demandez « pourquoi la réinscription de cet étudiant est bloquée ? » : Nanan affiche ce qui est dû et payé frais par frais, signale une décision de passage calculée sans aucune note, et, si la dette ne correspond pas à la réalité (élève repris d'un autre outil, exonération), prépare l'ajustement du montant dû. Rien ne change avant votre clic « Valider », un motif est obligatoire, et le montant ne descend jamais sous ce qui est déjà payé.
-
Réclamations de notes — l'élève conteste une note depuis « Mes notes », avec un motif et la photo de sa copie. L'enseignant donne son avis, l'école tranche : la note est corrigée ou maintenue, avec un motif, et l'élève suit la réponse au même endroit.
-
L'aide guidée par Nanan — le bouton « Aide » ouvre une conversation avec Nanan : un problème, une question « comment faire », une idée, ou le suivi de ses demandes. Si Nanan ne trouve pas, elle prépare la demande au support, capture de la page comprise, et l'école est avertie quand le support répond.
-
Nanan prépare, l'école valide — valider des inscriptions, annuler un versement par un avoir, corriger une note, créer une évaluation, générer des bulletins, ouvrir une année universitaire : sur simple demande, Nanan prépare l'opération et rien ne change sans un clic sur « Valider ».
Améliorations
-
Modifier les classes à la chaîne, sans attendre — la fenêtre de modification d'une classe s'ouvre aussitôt, se lit plus clairement, et « Enregistrer et modifier la suivante » passe directement à la classe d'après. Ctrl+Entrée enregistre.

AvantAprèsUne fenêtre plus lisible, et un bouton pour enchaîner sur la classe suivante. -
L'étape suivante ne passe plus pour une confirmation — après une action, KLASSCI indique l'étape suivante sans laisser croire qu'elle est faite : un bandeau discret si elle se fait sur la page ouverte, une fenêtre « Et maintenant ? » qui propose d'ouvrir la page sinon. Les messages ne gardent plus les étapes déjà faites par un collègue, même en validation groupée.

-
Bas du bulletin BTS mieux occupé — résultats, statistiques avec les absences et mentions du conseil sur trois colonnes de même largeur, puis la décision du conseil et la signature du directeur côte à côte, à la même hauteur. Une décision encore vide laisse des lignes d'écriture, et la largeur de signature réglée par l'école est respectée. Le bulletin tient toujours sur une page.

AvantAprèsLa place vide à droite disparaît : trois colonnes égales, puis décision et signature alignées. -
Rôles et permissions, écran refait — les rôles rangés par famille avec ce qu'ils font et les comptes qu'ils gèrent, une recherche dans les permissions, un indicateur « Non enregistré » avant de changer de rôle, et l'enregistrement sans recharger la page. Un bouton contrôle que chaque permission utilisée par l'application existe bien.

AvantAprèsLes chiffres du rôle choisi en tête, les rôles rangés par famille, une recherche, et l'enregistrement sans rechargement. -
Style des bulletins, écran refait — les deux modèles de bulletin s'affichent en aperçu côte à côte, avec le modèle actif, la date et l'auteur du dernier changement. Le choix s'enregistre sans recharger la page, et un échec est signalé au lieu d'un faux succès.

AvantAprèsDeux boutons radio sans aperçu deviennent deux modèles montrés tels qu'ils s'impriment. -
Accueil du jour : chaque famille convoquée se retrouve — la recherche ignore les accents, les apostrophes, les tirets et l'ordre des mots (« diabate » trouve « Diabaté », « nguettia » trouve « N'Guettia », « naomie dje » trouve « DJE … Naomie »), cherche aussi le nom et le matricule de l'élève quand c'est un parent qui a réservé, et accepte un téléphone avec ou sans indicatif. Une faute de frappe par mot est rattrapée : les orthographes voisines s'affichent sous un bandeau, et la touche Entrée ne les coche jamais à votre place.
-
« Accepter et inscrire » plus rapide — choix de l'année de l'inscription (la précédente, la courante et les suivantes), places disponibles recomptées aussitôt pour l'année choisie, confirmation demandée si l'année est terminée, bouton « Tout en majuscules » pour l'élève et le parent, nom du parent séparé d'office au premier mot (annulable), et rattachement d'un parent déjà enregistré : ceux qui ont le même téléphone ou le même nom sont proposés avant d'en créer un double.
-
Places disponibles comptées sur l'année de l'inscription — une classe pleine cette année n'apparaît plus pleine pour l'année suivante, et une inscription sur une année déjà remplie est refusée, dans la fenêtre comme dans le formulaire complet.
-
« Réinscrire » depuis les demandes : année, décision et statut déjà remplis — on choisit l'année de la réinscription (la précédente, la courante ou les suivantes), les places sont recomptées pour cette année, et une année terminée demande une confirmation. La décision proposée par les résultats de l'année quittée est présélectionnée, avec la moyenne qui la justifie, et le statut d'affectation (affecté, réaffecté, non affecté) est repris de l'inscription précédente. L'agent peut changer l'un comme l'autre. Le formulaire de réinscription reprend lui aussi le statut d'affectation, et une réinscription vers une année antérieure à celle que l'élève quitte est refusée.
-
L'année universitaire courante dans la barre du haut — une pastille sur ordinateur, à la suite du nom de l'école sur téléphone, orange quand l'année est terminée pour inviter à ouvrir la suivante.
-
Nouvelle fiche de réinscription — le dû, le payé et le reste de l'année quittée, la moyenne et la décision proposée, et un verdict clair : autorisée, bloquée, possible par dérogation, ou déjà faite. Chaque cas propose son action (encaisser, voir les frais, réinscrire avec reliquat, préparer l'année suivante, corriger la réinscription), plus un bouton « Demander à Nanan ». La personne qui ne voit pas les finances lit le verdict sans les montants.
-
Le reste dû toléré pour se réinscrire s'applique partout — le seuil fixé par l'école valait pour l'enregistrement mais pas pour la fiche, qui bloquait dès un franc dû. La fiche, la liste, la réinscription groupée et Nanan appliquent désormais le même seuil.
-
Formulaire de contact réservé aux établissements — il demande d'abord « Vous nous écrivez en tant que… ». Un étudiant ou un parent est orienté vers le portail de son école (inscription, réinscription, rendez-vous), et un message qui parle de « mon inscription » ou de « ma convocation » demande confirmation avant de partir.
-
Réinscription déjà déposée : le rendez-vous en un clic — l'étudiant qui retrouve une demande déjà enregistrée accède directement à son rendez-vous et à sa convocation, au lieu d'un simple message.
-
Résultats des étudiants refaits, plus rapides et en couleur — la liste se charge 50 élèves à la fois au fil du défilement, l'ouverture d'une classe passe de 2 à 5 secondes à environ une seconde, et la moyenne générale comme le taux de réussite passent au vert, à l'orange ou au rouge selon des repères que chaque école règle.

AvantAprèsLes chiffres clés passent dans le bandeau, chacun avec son repère, et la moyenne comme la réussite disent d'un coup d'œil si tout va bien. -
Des pages plus rapides partout — feuilles de style et scripts gardés par le navigateur au lieu d'être revérifiés à chaque page ; listes des étudiants, des classes et des relances, fiche étudiant et pages comptables allégées. La liste des relances s'ouvre environ deux fois plus vite, sans changer un chiffre.
-
Notifications et messages plus clairs — la page des notifications montre d'abord ce qui attend, puis les notifications regroupées par jour, avec des filtres en un clic et sans rechargement. Dans les messages, une conversation non lue se repère d'un coup d'œil et les choix d'écriture sont simplifiés.
-
Les bulletins se génèrent même quand on quitte la page — la génération d'une classe et le PDF groupé continuent en arrière-plan, avec le nombre d'élèves restants et le temps estimé.
-
Courriels aux couleurs de l'école — avis aux parents, lien d'activation, convocation et code de confirmation partagent un même gabarit, avec le logo et les couleurs de l'établissement.
-
Relances : seules les inscriptions actives sont relancées — une inscription annulée, terminée ou en attente sort de la liste ; l'école peut revenir à l'ancien comportement dans ses paramètres.
Corrections
-
Retirer un ECUE ne le fait plus passer en BTS — quand on retire un élément constitutif de la dernière maquette qui le contient (Unités d'enseignement LMD), KLASSCI demande ce qu'il devient : le supprimer s'il n'a jamais servi, l'archiver dans le LMD avec son historique s'il a déjà des notes ou des séances, ou, seulement si on le choisit, en faire une matière BTS. Avant, il retombait d'office dans les listes de notes et de bulletins BTS. La question s'affiche dans une fenêtre KLASSCI, et non plus dans une boîte du navigateur que celui-ci pouvait bloquer.

-
Demandes en ligne : le bouton « J'ai joint la famille » se lit en entier — dans le panneau d'une demande dont le contact n'est pas encore vérifié, le bouton « J'ai joint la famille : confirmer le contact » passe à la ligne au lieu d'être coupé, sur ordinateur comme sur téléphone.

AvantAprèsLe bouton de confirmation du contact se lit en entier. -
Type d'inscription lisible — la fiche d'une inscription affiche « Première inscription » au lieu de « Première_inscription », et la fiche imprimée dit « Réinscription » pour toute réinscription.
-
Fiche d'inscription : les fenêtres d'annulation et de suppression d'un versement s'affichent en entier — texte aligné à gauche, lien « Tout annuler » lisible et avertissement complet, au lieu d'un contenu poussé à droite et coupé.

AvantAprèsLes libellés reviennent à gauche et le lien « Tout annuler » réapparaît sous le montant. -
Téléphone et tablette : le service technique n'a plus le menu de la caisse — ce compte était pris pour un caissier ; sa barre propose maintenant l'accueil, l'abonnement, les matricules et les rôles.
-
Rôles : revenir aux permissions par défaut tient dans la durée — les permissions retirées ne reviennent plus à la mise à jour suivante, et enregistrer un rôle ne lui retire plus l'accès aux écrans qui utilisent encore un ancien nom de permission.
-
Le nom de l'école ne passe plus sous la cloche — sur la liste des étudiants au téléphone, un nom d'école long débordait sur les icônes de la barre du haut ; il est maintenant tronqué proprement.

AvantAprèsLe nom de l'école débordait sous la cloche ; il est tronqué, et l'année courante le suit. -
Le sélecteur de classe de la réinscription redevient lisible — « Sélectionner une classe… » s'affichait comme une barre grise, sur la page de finalisation comme dans les filtres de la liste des étudiants.
-
Un élève entré cette année n'est plus annoncé « déjà réinscrit » — sa réinscription vise bien l'année suivante, et corriger une réinscription vers la même classe explique le refus au lieu d'afficher une erreur technique.
-
Lier une unité d'enseignement à ses parcours enregistre à nouveau — retirer ou ajouter un parcours ne s'enregistrait plus, et créer ou modifier une UE ou un ECUE affichait « Erreur réseau » alors que l'enregistrement avait réussi.
-
Retrouver sa référence ouvre directement le rendez-vous — plus besoin de cliquer une seconde fois sur « Voir mon rendez-vous », et un numéro saisi « 07 07 … » est reconnu.
-
Une école dont l'abonnement n'est pas appliqué n'est plus dite « bloquée » — un dépassement apparaît en simple avertissement, et une école réellement bloquée voit enfin la page qui explique pourquoi, au lieu d'un « accès refusé ».
-
La réinscription décide sur la moyenne annuelle du bulletin — passage, rattrapage ou redoublement se jugent sur la moyenne imprimée au bulletin, et non plus sur un calcul différent.
-
Certificat de scolarité : la moyenne d'une année passée n'est plus vide quand ses notes existent.
-
Espace étudiant : une inscription pour l'année suivante est reconnue — l'étudiant inscrit pendant la campagne voit « Inscrit pour 2026-2027 » et sa classe, au lieu de « Aucune inscription active ».
Septembre 2026
Ajouts
-
Émargement des enseignants plus souple, réglé par chaque école — l'avance autorisée avant le cours, la limite « présent », la limite « en retard » et la fenêtre de l'émargement de fin se règlent dans les paramètres. Au-delà du retard toléré, l'école choisit entre l'absence enregistrée et le retard accepté avec un motif que la coordination voit. Les valeurs livrées reproduisent le fonctionnement actuel.
-
Prolonger un cours sans créer de conflit — depuis la gestion de sa séance, l'enseignant demande quelques minutes de plus avec un motif. La coordination décide après un contrôle automatique du temps ajouté : cours suivant de la classe, salle, autres cours de l'enseignant. Un créneau occupé ne peut pas être accordé et la raison est affichée. Accordée, la prolongation déplace l'heure de fin de ce seul cours, émargement de fin compris ; chacun est prévenu.
-
L'enseignant qui n'a pas le code peut le demander — un lien sous chaque cours du jour prévient d'un coup toutes les personnes qui génèrent les codes, avec la matière, la classe et l'heure. Le code se saisit directement dans la ligne du cours, en minuscules ou en majuscules.
-
Examens : de l'examen à la saisie des notes, avec un vrai anonymat — « Ouvrir la feuille de notes » crée l'évaluation de l'examen et ouvre sa saisie. Un examen anonyme attribue un numéro à chaque copie, dans un ordre tiré au sort, et la saisie affiche les numéros au lieu des noms ; lever l'anonymat est un droit à part, daté et nominatif. Une fois les notes verrouillées, elles ne se modifient plus.
-
Jury : reprendre la composition du dernier jury — à la création, président, assesseurs et secrétaire du dernier jury du même parcours ou de la même classe sont repris, chacun restant modifiable.
-
Disponibilités : ouvrir la semaine en un clic — un enseignant tout juste créé n'est plus à cocher case par case : un bouton rend disponibles toutes les heures du lundi au vendredi, puis on retouche les exceptions. Depuis l'ajout d'une séance, l'administration peut aussi rendre un enseignant disponible sur le créneau voulu, ou programmer quand même en connaissance de cause.
-
Paie : payer les heures réellement faites — au choix de l'école, la durée prévue des séances faites ou la durée depuis l'émargement de début jusqu'à la fin prévue, prolongations accordées comprises. Un enseignant sans taux horaire apparaît dans l'état de paie avec « Taux horaire manquant — Renseigner ».
-
Les listes se chargent au fil du défilement, partout — inscriptions, candidatures en ligne, demandes de réinscription, relances, journal de caisse, bulletins, corbeille, journal d'audit, enseignants, examens, séances de cours, annonces, présences, jurys et bulletins LMD, et une vingtaine d'autres écrans. Plus de numéros de page : la suite arrive quand on atteint le bas, avec les filtres et le tri en cours, et un compteur dit combien de lignes sont affichées sur combien. Un bouton « Charger la suite » reste là pour le clavier ou après une coupure de réseau. Une ligne saisie pendant qu'on fait défiler n'en fait ni répéter ni sauter une autre.
-
Retrouver le rendez-vous d'une famille, quel que soit le jour — une famille qui appelle sans connaître la date se retrouve par son nom, son téléphone (avec ou sans espaces), la référence de son dossier ou le matricule de l'élève. Chaque résultat donne le jour, l'heure, le statut et les rendez-vous déjà manqués, avec un accès direct au dossier. La recherche s'ouvre depuis le planning et l'accueil du jour ; quand l'accueil ne trouve personne ce jour-là, il propose de chercher tous les jours.
-
Agir sur tout un filtre en une fois — quand toutes les inscriptions affichées sont cochées, la barre propose de sélectionner toutes celles du filtre. Valider, annuler, exporter ou recalculer les frais porte alors sur l'ensemble, sans avoir à tout faire défiler.
-
Le relevé de notes LMD peut prendre la présentation officielle du ministère — en-tête à deux colonnes avec les emblèmes, semestres en marge, mention et décision portées unité d'enseignement par unité d'enseignement, cumul des crédits sur l'année. Un réglage de l'établissement choisit entre cette présentation et celle de l'application ; les écoles qui impriment déjà la seconde ne voient rien changer. Le choix est figé au moment où le relevé est émis : une école qui bascule plus tard ne modifie pas la présentation des relevés qu'elle a déjà signés et remis. La décision s'accorde au genre de l'étudiante — « Admise » — et une décision absente ne se remplace jamais par une conclusion inventée.
-
La fiche d'inscription porte enfin tout le dossier — état civil complet, coordonnées, scolarité avec le parcours jusqu'au domaine, parents et tuteurs avec leur lien et leur profession, et la liste des pièces avec ce qui reste à apporter. Une page pleine par exemplaire, et une signature pour le parent ou le tuteur. N'y figurent pas, délibérément : les identifiants du compte, les motifs internes de refus d'une pièce et les commentaires de caisse — ce sont des notes de service, pas des informations destinées à la famille qui emporte le papier.
-
Une fiche vierge à faire remplir en salle d'attente — le personnel l'imprime, l'élève la complète au stylo, la rapporte, et le secrétariat saisit. L'ordre des champs suit celui de l'écran de saisie pour que la ressaisie ne saute rien, les lignes sont hautes pour l'écriture à la main, le sexe et le statut d'affectation se cochent. Elle demande le niveau et la filière souhaités — c'est ce qui permet ensuite de choisir la classe — mais jamais la classe elle-même : la répartition est une décision de l'établissement. Niveaux, filières et parcours sont proposés à cocher, une case cochée se ressaisissant sans hésitation. Accessible depuis la liste des inscriptions.
-
KLASSCI s'installe sur le téléphone, et s'y utilise vraiment — l'application se pose sur l'écran d'accueil d'un téléphone ou d'une tablette, s'ouvre sans barre d'adresse et fonctionne comme une application du téléphone, pas comme un site rétréci. Barre d'onglets en bas avec une pastille qui glisse d'un onglet à l'autre, feuilles qui montent du bas et suivent le doigt, tirer-vers-le-bas pour rafraîchir, bandeau quand le réseau tombe. Chaque profil a ses propres onglets : l'étudiant voit Accueil, Notes, Emploi du temps, Absences ; l'enseignant, son appel et ses notes ; la caisse, l'encaissement.
Les premiers écrans sont livrés : accueil de l'étudiant, ses notes regroupées par unité d'enseignement et crédits en LMD, ses absences avec la justification qui part en une feuille (motif, pièce jointe, envoi sans rechargement), l'encaissement de la caisse en quatre étapes plein écran, le reçu avec ses actions, et l'appel de l'enseignant en lignes pleine largeur. Chaque action reste soumise au droit correspondant : ce que le compte ne peut pas faire ne s'affiche pas.
Sur tablette, un rail latéral remplace la barre du bas et les listes passent sur deux colonnes. Sur ordinateur, rien ne change.
-
Les logos de nos établissements défilent sur la page d'accueil — chaque école cliente y apparaît avec le logo qu'elle a elle-même déposé dans ses paramètres KLASSCI, celui qui coiffe ses bulletins. Elle change de logo, il change ici dans l'heure, sans que personne n'intervienne. L'instance de démonstration reste en dehors : ce mur montre des écoles réelles.
-
L'inscription en ligne porte les couleurs de votre établissement — la liste « Choisissez votre établissement » affiche désormais le logo et la ville de chaque école. Une fois l'école choisie, le formulaire reprend l'identité visuelle qu'elle a réglée pour ses documents PDF : son logo, le libellé de son en-tête et sa couleur principale, qui habille les boutons, les liens et les champs actifs. Le candidat voit à qui il confie son dossier, et le reconnaît. Vous ne configurez votre identité qu'une seule fois, dans vos paramètres : elle vaut pour vos bulletins comme pour votre page d'inscription. Si votre couleur ne laisse pas un texte lisible sur un bouton, elle reste sur le bandeau d'identité et les commandes gardent le bleu KLASSCI.
-
Suivi des pièces du dossier, étudiant par étudiant — la fiche d'inscription porte désormais un bloc « Pièces du dossier » où l'on coche ce que l'étudiant vient de remettre. Une case suffit : ni téléversement obligatoire, ni formulaire. Le compteur en tête dit s'il manque quelque chose, et quoi.
Une pièce appartient d'abord à l'étudiant, pas à l'année : six photos déposées en première année en couvrent trois, et l'écran affiche ce qu'il en reste. L'établissement décide, pièce par pièce, ce qui dure et ce qui se redonne chaque rentrée. Une pièce qui ne concerne pas un étudiant cette année s'écarte avec son motif.
Trois réglages d'établissement : ce qu'on fait d'un dossier incomplet (bloquer, signaler, se taire), si une inscription annulée rend ce qu'elle avait consommé, et si cocher au guichet vaut déjà validation. Là où la personne qui reçoit la pièce est celle qui la juge, un seul geste suffit — c'est le réglage par défaut.
-
Une page pour savoir qui rappeler — « Suivi des dossiers » liste, pour une année et une classe, les étudiants dont le dossier est incomplet, avec le nom des pièces qui manquent. Cinq compteurs en tête : inscriptions examinées, dossiers complets, dossiers incomplets, pièces à réclamer, pièces à relire. Chaque ligne mène directement au dossier de l'étudiant, à l'endroit exact où l'on coche.
-
La photo de l'étudiant se prend avec un téléphone — un dialogue s'ouvre juste après la création d'une inscription, au moment où l'étudiant est devant le guichet. Trois chemins : téléverser un fichier, photographier avec la caméra du poste, ou afficher un code QR que l'on scanne avec un téléphone. La photo prise au téléphone apparaît à l'écran ; le guichet la valide ou en redemande une autre — elle ne remplace la photo de l'étudiant qu'une fois acceptée.
La page ouverte par le code QR ne demande aucun compte et n'affiche qu'un nom : le lien expire en quelques minutes, ne vaut que pour un seul envoi, et ne dit rien du dossier. À la réinscription, si l'étudiant a déjà une photo, le dialogue demande d'abord s'il faut la remplacer.
-
Catalogue des pièces à fournir — l'établissement déclare ce qu'il réclame à l'inscription : intitulé, original ou copie, nombre d'exemplaires, durée de validité, et à quelles filières et quels niveaux la pièce s'applique. Un jeu de pièces courantes est proposé en un clic.
-
L'écran Maquette sait enfin ajouter et retirer une matière — il ne savait jusqu'ici que régler ce qui s'y trouvait déjà : la place au bulletin, le semestre, le statut tronc commun ou spécialité. Compléter une maquette obligeait à en sortir et à passer par la fiche de chaque matière, une par une ; en retirer une n'était possible nulle part sans effacer au passage les réglages de ses autres filières et niveaux. Un bouton « Ajouter une matière » ouvre le catalogue en signalant ce qui est déjà rattaché ; une croix en bout de ligne retire, et prévient d'abord quand la matière porte des évaluations sur ce niveau.
-
Chaque matière sait à quel semestre elle est prévue — la même page permet maintenant de dire, matière par matière, si elle est prévue au premier semestre, au second, ou aux deux. Un bouton « Valider les semestres » enregistre la réponse pour la filière et le niveau : « toutes les matières aux deux semestres » est une réponse en soi, et elle est reconnue comme telle. Tant qu'aucun semestre n'est validé pour ce couple, rien ne change dans vos bulletins. Une fois validés, ils sont lus : le bulletin d'un semestre ne fait plus figurer les matières prévues à l'autre, et le suivi des notes n'en attend plus de notes.
Améliorations
-
Nouveau tableau de bord enseignant — en ouvrant KLASSCI, l’enseignant voit ses cours du jour, ce qu’il doit faire maintenant (émarger, faire l’appel, émarger la fin, saisir des notes) du plus pressé au moins pressé, la part de ses cours émargés à l’heure ce mois et ses heures émargées, comparées au mois précédent, ainsi que ses heures sur huit semaines et ses prochains cours. Chaque chiffre mène à la page qui le détaille.
-
Écran d’émargement plus clair — chaque cours affiche les créneaux « à l’heure », « en retard » et « au-delà » réglés par l’école, l’heure actuelle et le temps restant. L’émargement de fin se fait dans la ligne du cours, une fois l’appel de début fait.
-
Moins d'allers-retours entre les écrans — après la création d'un enseignant : associer ses matières, ses disponibilités, son taux horaire, programmer une séance. Depuis un jury publié : ses bulletins. Depuis le rapport d'émargement : la paie du mois. Depuis la fiche d'un enseignant : ses fiches de paie. Depuis la fiche d'une matière : sa planification. Le menu enseignant gagne « Mes cours du jour » et « Mes disponibilités ».
-
Un seul rappel à la fois, jamais pendant un changement de mot de passe — les fenêtres de rappel ne s'empilent plus, la fenêtre des identifiants d'un compte créé passe devant toutes les autres, et les nouveautés ne sont montrées qu'aux personnes concernées.
-
Saisie des notes LMD plus sûre — la virgule est acceptée (« 12,5 »), une note hors barème est refusée sur place au lieu d'entrer dans la moyenne, et un bouton « Valider mes notes » les rend officielles d'un coup. Les semestres 3 à 10 apparaissent dans le pilotage académique.
-
Écrans refaits aux couleurs KLASSCI — années universitaires, émargements, disponibilités et accueil des enseignants, rapport d'émargement ; sélecteurs avec recherche sur les écrans LMD ; fiche enseignant et jury lisibles sur téléphone.
-
Chercher partout avec Ctrl K — Ctrl K (⌘ K sur Mac, ou le champ de recherche du menu sur téléphone) ouvre une recherche au centre de l'écran. Elle trouve plus d'une centaine de pages de l'application, même avec des mots courants (« encaisser », « reçu », « caisse »), et les fiches : étudiants, paiements, classes, filières, matières, enseignants. Les flèches parcourent les résultats, Entrée ouvre, Échap vide puis ferme. Chacun ne voit que ce que son compte peut ouvrir, et les recherches récentes ne gardent que des pages, jamais de noms ni de montants.

AvantAprèsTaper « paie » ne trouvait rien ; la recherche propose maintenant les pages correspondantes. -
Un assistant qui répond avec les chiffres de l'école — posez une question en français (« combien d'inscrits cette année ? », « qui doit encore des frais ? ») : l'assistant va chercher la réponse dans les données de l'établissement, en ne lisant que ce que votre compte a le droit de voir, et indique ce qu'il consulte pendant qu'il le fait. La réponse s'écrit au fur et à mesure. L'école choisit le modèle d'IA dans ses réglages et y colle sa propre clé, conservée chiffrée et jamais réaffichée ; si un modèle ne répond pas, un autre prend le relais sans que la conversation ne s'interrompe. Un bouton de test vérifie en quelques secondes que tout fonctionne.

AvantAprèsLa même question restait sans réponse ; l'assistant lit maintenant les indicateurs et donne le nombre d'inscrits de l'année. -
La fenêtre « Nouveautés » montre les changements en images — une nouveauté à la fois, avec la capture de l'écran avant et après, que l'on compare en faisant glisser le curseur. On passe de l'une à l'autre par les puces du bandeau, les flèches du clavier ou les boutons. Chaque compte ne voit que les nouveautés qui le concernent : la caisse, celles de la caisse ; un étudiant, aucune qui ne lui serve.

AvantAprèsUne liste de textes devient une nouveauté à la fois, avec sa capture avant et après. -
Écran d'encaissement refait, au bureau comme sur téléphone — au bureau, quatre étapes numérotées (étudiant, inscription, versement, mode de paiement) et, à droite, un panneau qui reste visible avec le reste à payer frais par frais et le bouton d'enregistrement. Sur téléphone, le pas-à-pas occupe tout l'écran, le récapitulatif s'affiche avant le choix du mode, les modes sont présentés en tuiles, et le nom de l'étudiant n'est plus coupé. Dans « Ma caisse », les coupures se comptent ligne par ligne. Les suggestions de montant fixes (25 000 et 50 000 FCFA), identiques pour toutes les écoles, sont remplacées par « Tout le reste » et « La moitié ».

AvantAprèsLes quatre étapes à gauche, le reste à payer et le bouton d'enregistrement toujours visibles à droite. -
Accueil du jour : le dossier de chaque famille en un clic — le lien « Dossier » figure désormais sur toutes les lignes, pas seulement sur les rendez-vous manqués.
-
Un frais réservé à une catégorie d'étudiants n'est plus facturé quand on ignore dans laquelle il se trouve — un frais réservé aux nouveaux arrivants était appliqué dès lors que le dossier ne portait pas la mention « ancien », y compris quand la case n'avait simplement pas été remplie. Les deux sens demandent désormais une réponse explicite. Le choix est assumé : mieux vaut oublier un frais que d'en encaisser un à tort, car un frais oublié se réclame encore, alors qu'un versement déjà reçu ne peut plus être retiré sans le laisser sans affectation.
-
Les pages « Entreprise » sont accessibles depuis n'importe quelle page — À propos, Sécurité, Confidentialité et Mentions légales ne figuraient que dans le pied de page, et deux d'entre elles nulle part. Elles sont désormais regroupées sous une entrée « Entreprise » de la barre de navigation, sur l'accueil comme sur Université, Collège, Classe virtuelle, le blog et la documentation. Ces pages portaient d'ailleurs une barre de navigation absente : on y arrivait par un lien reçu ou une recherche, et le seul chemin de retour était un fil d'Ariane. Sur téléphone, les quatre liens sont posés à plat dans le menu plutôt que repliés dans un sous-menu qui aurait demandé un geste de plus.
-
La même barre de navigation partout — l'accueil, Université, Collège et Classe virtuelle avaient chacun la leur, de hauteurs différentes, et la classe virtuelle n'offrait ni retour vers les autres univers, ni choix de langue, ni menu sur téléphone. Une seule barre les sert désormais toutes, chaque page gardant ses propres liens. Sur téléphone, le bouton de contact figure enfin dans le menu, là où il était le seul moyen de l'atteindre.
-
La démonstration produit s'arrête et s'explique — les trois écrans en perspective de la page d'accueil tournaient en boucle sans fin : une capture d'écran ou un aperçu de partage les attrapait toujours de travers. Ils sont maintenant posés, répondent au passage de la souris, et portent chacun une étiquette qui nomme ce qu'il montre — pilotage LMD, caisse et paiements, application mobile des familles.
-
« S'inscrire en ligne » figure dans le pied de page — l'entrée des familles n'était accessible que depuis la barre de navigation, c'est-à-dire nulle part une fois la page parcourue jusqu'en bas.
-
Le suivi des notes reçues s'affiche enfin pour ceux qui saisissent les notes — le bandeau qui annonce ce qui manque était posé sur l'écran de saisie et sur la liste des évaluations depuis le début, mais deux obstacles le rendaient invisible : sa condition d'affichage ne connaissait que le droit de consultation globale du pilotage, et les deux écrans ne lui transmettaient pas l'année universitaire. La seule personne à qui le chiffre sert était donc la seule à ne pas l'avoir. Le périmètre n'est pas élargi pour autant : une classe qu'un enseignant n'enseigne pas, ne corrige pas et n'a pas saisie lui reste refusée.
-
Le chiffre se remet à jour après un enregistrement de notes — le calcul est gardé dix minutes pour rester rapide. Le bandeau le redemandait sans le dire, recevait la même réponse périmée, et continuait d'annoncer manquantes les notes qu'on venait de saisir. L'enregistrement force désormais le recalcul ; un simple changement de classe continue de se servir dans le cache.
-
Une évaluation programmée pour plus tard ne compte plus comme des notes manquantes — une classe à jour de ses corrections lisait « 25 notes manquantes » pour un devoir prévu le mois suivant, que la saisie refuse d'ailleurs d'enregistrer avant sa date. Seules les évaluations déjà tenues, ou sans date, entrent maintenant dans le compte.
-
La saisie rapide dit maintenant ce qu'elle a sauté — une ligne laissée vide, sans note et sans case « absent », était ignorée en silence, et l'écran répondait « Les notes ont été enregistrées avec succès » comme si tout était passé. Le message compte désormais ce qui a été enregistré et nomme les élèves qui restent à saisir tant qu'ils sont cinq ou moins. La saisie étant progressive par nature, le ton est celui d'un reste à faire, pas d'un reproche.
-
Une note annoncée manquante dit maintenant quand c'est un doublon d'élève — le bandeau signalait « 1 note manquante » sur une matière dont l'établissement avait pourtant tout saisi. Les deux disaient vrai : la classe portait deux dossiers actifs pour la même personne, dont les noms ne différaient que d'un prénom, et la note était sur l'autre. Les deux dossiers sont désormais nommés côte à côte avec leurs matricules — et ce rapprochement s'affiche pour toute la classe, y compris quand aucune note ne manque : c'est le cas qui coûte le plus cher, puisque deux dossiers entièrement notés ne font bouger aucun compteur et produisent pourtant deux bulletins.
-
« Enseignant à confirmer » ne s'affiche plus quand le professeur est saisi juste à côté — le bandeau cherchait l'enseignant à relancer dans le planning général, et nulle part ailleurs. Une école qui ne remplit pas le planning voyait donc ce message sur toutes ses matières alors qu'elle avait saisi ses professeurs dans l'écran des bulletins. À défaut de planning, ce sont maintenant ces noms-là qui s'affichent ; la source se lit au survol. Et quand aucune des deux ne répond, le message dit où aller poser l'information au lieu de laisser croire à une donnée douteuse.
-
L'onglet Matières d'une classe, la configuration des matières et celle des professeurs montrent la même liste que le bulletin — ces trois écrans en donnaient trois différentes. Deux croisaient la liste des filières et celle des niveaux d'une matière, dont le produit invente des couples que la maquette ne porte pas ; le troisième ignorait le tronc commun parent, si bien qu'une classe de spécialité y affichait moins de matières que son bulletin n'en porte et que le professeur d'une matière héritée n'était saisissable nulle part.
-
Le contrôle avant génération de bulletins d'une classe est nettement plus rapide — il recalculait à chaque appel l'intégralité du suivi de couverture des notes, que personne n'affichait à cet endroit.
-
Confirmer un doublon à l'inscription laisse désormais une trace — quand le contrôle signale un étudiant déjà existant, la confirmation faisait sauter le contrôle entièrement, sans que rien ne garde trace de ce qui avait été écarté. Des mois plus tard, devant deux dossiers actifs pour la même personne, plus personne ne pouvait dire si quelqu'un avait sciemment confirmé. La confirmation reste souveraine — elle n'est simplement plus muette.
-
L'écran « Affectation Tronc Commun / Spécialité » s'appelle désormais « Maquette du bulletin » — son nom ne décrivait plus qu'une de ses quatre fonctions. Il porte aussi la composition de la maquette, le semestre de chaque matière et sa validation, et le rang au bulletin. Un titre faux par omission envoie chercher ailleurs ce qui est là. L'adresse de la page, elle, ne change pas : les liens que vous avez enregistrés continuent de fonctionner.
-
La commande de synchronisation des maquettes simule désormais avant d'écrire — réservée à l'équipe technique, elle reconstruisait la maquette à partir du croisement de deux listes indépendantes, et l'écrivait sans rien demander. Deux listes ne peuvent décrire qu'un tableau complet : dès qu'une matière est enseignée dans une filière en première année et dans une autre en deuxième, le croisement invente aussi les deux combinaisons que personne n'a demandées. Elle ne savait par ailleurs qu'ajouter, jamais retirer — donc elle pouvait recréer ce qu'un retrait venait d'enlever. Elle montre maintenant ce qu'elle ferait, et n'écrit que si on le lui demande explicitement.
Sécurité
-
Chaque rôle n'accède plus qu'à ce qui le concerne sur les évaluations et les annonces — un compte de caisse ou de comptabilité pouvait ouvrir le formulaire des évaluations, en créer, en modifier ou en supprimer, et un compte qui ne faisait que lire les annonces pouvait en publier ou en supprimer. Il faut désormais le droit correspondant (voir, créer, modifier). Les rôles qui travaillent sur ces écrans gardent exactement leurs accès. Les actions rapides de la barre du haut ne proposent plus que des pages qui s'ouvrent pour la personne connectée ; la caisse y trouve « Encaisser » et « Ma caisse ».
-
Retrait d'outils de dépannage qui restaient accessibles sans identification — un dossier hérité des débuts du projet exposait des informations techniques sur le serveur ainsi que des scripts de maintenance qu'un visiteur pouvait déclencher. Il a été supprimé de toutes les instances. Dans la foulée, la connexion depuis l'application mobile applique désormais la même limite d'essais de mot de passe que le formulaire web, et la liste des classes n'est plus consultable sans être connecté.
-
Les composants externes de la plateforme ont été remis à jour, et le contrôle qui devait les surveiller peut enfin sonner — KLASSCI s'appuie, comme toute plateforme moderne, sur des briques logicielles écrites par d'autres. Treize failles classées hautes ou critiques y dormaient. L'une permettait de glisser du code exécutable dans une page à travers un texte mis en forme ; une autre de faire tomber le serveur en lui soumettant un document conçu pour l'occuper indéfiniment ; une troisième d'échapper aux règles qui décident quels services extérieurs la plateforme accepte d'appeler. Elles sont fermées. Le point le plus gênant n'était pourtant pas les failles elles-mêmes, mais le fait que personne ne pouvait les voir : la vérification automatique chargée de les signaler était écrite de telle façon qu'elle ne pouvait jamais échouer, et annonçait donc « tout va bien » quoi qu'elle trouve. Elle décide désormais réellement, et sur ce qui part en production plutôt que sur les outils de développement. Elle s'arrête aussi sur une alerte que la base de référence n'a pas encore classée — une alerte non évaluée n'est pas une alerte bénigne, et c'est exactement ce qui avait laissé passer un défaut de vérification des clés utilisées pour signer les notifications. Quand un risque doit être assumé faute de correctif publié, il reste affiché comme tel avec son motif, plutôt que masqué : accepter un risque et le cacher sont deux choses différentes. Enfin, les tests ne s'exécutaient que lors d'une relecture de code, jamais sur une mise en ligne directe : ils s'exécutent maintenant dans les deux cas, sur la branche de développement comme sur celle de chaque établissement.
-
Les pièces déposées ne sont plus servies directement par le serveur web — extraits de naissance et pièces d'identité étaient écrits dans un dossier public. Ils vivent désormais hors de portée du serveur, et ne s'ouvrent qu'à travers l'application, qui vérifie qui demande.
-
Modifier la composition d'une classe demande un droit — changer les matières d'une classe, y ajouter ou en retirer des élèves n'exigeait aucune permission particulière.
Corrections
-
Jury : plus de décision automatique sans quorum, ni de décision sur un dossier incomplet — un dossier sans moyenne est signalé incomplet au lieu d'être déféré. La date et les observations saisies à la création d'un jury sont désormais enregistrées.
-
Rattrapage et bulletins — une session de rattrapage exige sa session d'origine et ne se publie pas sans examen ; un bulletin sans aucune note ne peut plus être publié.
-
Paie — un bulletin au net négatif ne peut plus être enregistré ni validé, et la fiche de paie imprime lisiblement le net à payer.
-
Ajout de séance — l'enseignant qu'on vient d'associer à une matière apparaît et est sélectionné sans recharger la page ; les heures s'affichent « 7h46 » et non plus avec des décimales.
-
Encaisser sur téléphone : le montant proposé ne s'additionne plus à la saisie — le reste dû était proposé d'office, et les chiffres tapés s'y ajoutaient : 120 000 FCFA proposés, puis 25 000 tapés, donnaient 12 000 025 000 FCFA. Le premier chiffre tapé remplace désormais le montant proposé, et la confirmation d'un montant inhabituel s'affiche au-dessus du clavier.
-
Téléphone : les deux boutons du bas ne touchent plus le bord de l'écran (encaissement, relances).
-
Rejeter une demande libère son créneau de rendez-vous — une candidature ou une demande de réinscription rejetée gardait sa réservation, et la place restait prise. Le créneau redevient disponible pour une autre famille.
-
Des compteurs qui disent vrai — plusieurs écrans comptaient seulement les lignes de la première page : les coordinateurs actifs, les bulletins LMD publiés et leur moyenne, les présences enregistrées. Ils portent désormais sur l'ensemble, et ceux des jurys et des sessions de rattrapage suivent les filtres de classe, de parcours et de semestre. Sur la messagerie de l'étudiant, marquer un message comme lu ne fait plus baisser le nombre total de messages.
-
La liste des étudiants se charge enfin en entier sur téléphone — la grille de fiches s'arrêtait aux trente premiers étudiants.
-
La liste des étudiants devient un vrai écran de téléphone — recherche en haut, quatre onglets (Tous, Inscrits, En cours, Sans inscription) et des lignes compactes : photo ou initiales, nom, classe et matricule, état de l'inscription. Un étudiant sans inscription cette année garde sa dernière classe, avec son année. Une inscription en cours se valide d'un geste depuis la ligne, la liste se charge au fil du défilement, et les actions secondaires (réinscriptions, export, corbeille) passent dans un menu qui monte du bas, chacune seulement si le compte y a droit. L'écran d'ordinateur ne change pas.

AvantAprèsDes fiches en grille deviennent des lignes compactes, avec recherche et onglets en haut. -
Maquettes LMD : une même UE partagée entre deux parcours se gère enfin proprement — un élément constitutif (ECUE) réservé à un parcours n'apparaît plus chez l'autre. Modifier un ECUE pour le réserver à un autre parcours le déplace, au lieu de le copier ; une case permet de le garder dans les deux si c'est voulu. Retirer la version commune d'un ECUE ne la fait plus revenir. Une étiquette « Commun + réservé » signale les ECUE en double, avec le geste pour les corriger.
-
Maquettes LMD : la masse horaire se saisit parcours par parcours — les heures de cours magistraux, travaux dirigés et travaux pratiques tapées pour une UE commune à deux parcours restent dans le parcours affiché, au lieu d'aller dans l'autre. Un élément qui n'appartient pas à la maquette affichée est refusé avec un message clair.
-
Maquettes LMD : saisir des heures ne remet plus les crédits à zéro — une ligne de la maquette horaire créée en tapant des heures reprend les crédits de l'ECUE tels qu'ils sont fixés pour le parcours affiché, au lieu de 0 qui faussait le total de crédits du parcours. Retirer la dernière ligne d'un ECUE, ce qui le ferait sortir du LMD, demande désormais une seconde confirmation, avec le conseil d'utiliser plutôt le crayon pour le changer de parcours.
-
Maquettes LMD : la fiche d'une UE montre chaque parcours séparément — une UE commune à deux parcours affiche un onglet par parcours, avec ses propres éléments constitutifs, ses crédits et sa masse horaire. Elle mélangeait jusqu'ici les deux maquettes dans un seul tableau, et comparait les crédits à ceux de la fiche plutôt qu'à ceux du parcours.
-
Maquettes LMD : une ligne de planning supprimée ne bloque plus sa recréation — saisir de nouveau des heures pour un élément dont la ligne avait été supprimée échouait. La ligne est désormais rétablie, repartie de zéro, sans reprendre les heures, l'enseignant ni les observations d'avant.
-
Maquettes LMD : le coefficient d'un élément vaut 1 dès sa création — le champ affichait un 1 grisé qui n'était pas enregistré. Il est désormais prérempli, et reprend le coefficient de la matière choisie quand on rattache une matière existante.
-
Le planning LMD dit de quelle année il parle — l'année universitaire en cours est affichée en tête, et seules ses lignes sont montrées. Le filtre Parcours des unités d'enseignement devient une liste avec recherche, qui affiche le code et le nom de chaque parcours.
-
Le portail groupe se met à jour dès qu'un paiement est validé ou annulé — lorsqu'un établissement valide ou annule un paiement, il prévient le portail groupe pour que la vue du fondateur reflète aussitôt le nouvel encaissement, au lieu d'attendre le rafraîchissement suivant de quelques minutes. Ce signal n'était en réalité jamais envoyé sur les instances en production. Il part de nouveau, et si l'établissement n'est pas relié au portail, l'anomalie est désormais consignée au lieu de passer inaperçue.
-
Changer le barème ou le coefficient d'une évaluation déjà notée recalcule enfin les moyennes — les notes, elles, ne bougeaient pas : rien ne relançait donc le calcul, et la moyenne enregistrée, calculée sur l'ancien barème ou l'ancien coefficient, l'emportait à l'écran comme au bulletin. Passer un devoir de coefficient 1 à 3, avec 10/20 à ce devoir et 20/20 à l'autre, laissait 15 au lieu de 12,5. La fiche de l'évaluation comme l'édition rapide depuis la grille des notes recalculent désormais. Le barème ne peut plus descendre sous une note déjà saisie : la saisie refusait déjà une note au-dessus du barème, mais baisser le barème ensuite contournait la règle — un 18 ramené sur 10 aurait donné 36 sur 20. Un recalcul qui échoue est signalé, sans laisser croire que la modification n'a pas été enregistrée. Les bulletins déjà générés gardent leur moyenne officielle jusqu'à leur régénération.
-
« Annuler » annule toujours sur les boîtes de confirmation — sur les écrans qui demandent une confirmation (inscriptions, paiements, fiche étudiant, matières, notes, emploi du temps), un clic trop rapide sur le bouton de validation, pendant que la boîte finissait de s'ouvrir, était perdu : si l'on cliquait ensuite sur « Annuler », sur la croix ou sur Échap, l'action s'exécutait quand même. Le bouton de validation ne réagit désormais qu'une fois la boîte entièrement ouverte, et « Annuler » annule toujours. La boîte annonce aussi son titre et le libellé de sa croix aux lecteurs d'écran.
-
La validation groupée des inscriptions annonce ce qu'elle fait vraiment (
/esbtp/inscriptions→ Valider la sélection) — la boîte de confirmation promettait de valider d'office les paiements encore en attente. KLASSCI fait l'inverse, et c'est voulu : une inscription dont le paiement n'est pas encore validé est laissée de côté, jamais validée à la place de la caisse. Le message le dit désormais : seules les inscriptions avec un paiement validé sont validées, leurs étudiants sont notifiés, les autres sont écartées. -
Déplacer une évaluation ne laisse plus une moyenne périmée derrière elle — changer la matière, la classe ou le semestre d'une évaluation transférait bien les notes, mais rien ne recalculait les moyennes enregistrées, des deux côtés : celle qu'on quitte gardait une valeur qu'aucune note ne justifiait plus, celle qu'on rejoint ignorait les notes arrivées. Ce n'était pas un défaut d'affichage : la moyenne enregistrée l'emporte sur les notes, à l'écran comme au bulletin. Mesuré après un déplacement : un élève dont les cinq notes donnent 15,6 voyait 15. Les quatre chemins de déplacement recalculent désormais les deux côtés. Sur les déplacements par lots, le recalcul est plafonné pour répondre à temps ; au-delà, la réponse rend les paramètres exacts à relancer. Une moyenne qui n'a plus rien à moyenner n'est jamais remise à zéro — plus aucune note, ou seulement des absences : elle est laissée telle quelle et signalée, son sort restant une décision de l'établissement, et aucune moyenne à zéro n'est créée à partir de simples absences. Sur la page de l'évaluation, le message dit ce qui a vraiment bougé (la classe, la matière ou la période) et mène directement au contrôle de la génération des bulletins de la classe concernée, qui propose de la retirer — ou, quand il ne reste que des absences, nomme chaque élève et chaque matière avec un lien vers ses moyennes. Chaque lien n'apparaît que pour qui peut ouvrir l'écran visé ; sinon le message dit à qui s'adresser. Un recalcul qui échoue est signalé sur la page, au lieu d'un « mise à jour avec succès » muet.
-
Le recalcul d'une moyenne pouvait l'écrire à 0 sur 20 quand la période de l'évaluation était enregistrée « 1 » — la période d'une évaluation s'écrit de deux façons en base (« 1 » ou « semestre1 »), héritage historique. Le recalcul qui suit l'enregistrement d'une note ne cherchait les notes que sous l'une des deux écritures : il n'en trouvait aucune, calculait une moyenne sur rien, et écrivait 0 sur 20 par-dessus la moyenne réelle — 14,00 devenu 0,00, mesuré. Les notes sont désormais relues sous les deux écritures.
-
Le semestre d'une note déplacée d'un semestre à l'autre était enregistré dans un format que les outils de maintenance ne reconnaissaient pas — les outils de réparation à distance y écrivaient le libellé (« semestre1 ») là où tout le reste de l'application enregistre le numéro. Conséquence : l'outil de ménage des moyennes orphelines ne retrouvait plus la note, considérait la moyenne comme sans support, et la supprimait. Le format est désormais celui du reste de l'application.
-
Le nettoyage des moyennes orphelines respecte enfin le périmètre demandé — l'outil de synchronisation des notes sait limiter son ménage à une classe et à une période. Cette limite s'appliquait à l'une de ses deux catégories seulement : la première, celle des moyennes dont la matière n'existe plus, balayait l'établissement entier quoi qu'on lui demande. C'est pourtant celle qui supprime le plus largement, puisque son critère ne dépend d'aucune option.
-
Les champs d'état civil d'un étudiant ne sont plus grisés pour qui a le droit de le modifier — nom, prénoms, sexe, date et lieu de naissance, nationalité et matricule étaient verrouillés à l'écran sauf pour les comptes ayant l'accès à l'administration. Un responsable de scolarité, à qui l'école avait pourtant accordé « modifier les étudiants », ouvrait la fiche sans pouvoir corriger une seule ligne. Ces champs suivent désormais ce droit-là.
-
L'emploi du temps et les prochaines séances de l'application mobile répondent de nouveau — les deux écrans réclamaient à la base une information qui n'existe pas sous ce nom pour les matières. La base refusait alors la demande entière, et les deux écrans restaient vides sans rien expliquer. Ils affichent de nouveau les séances et le nom de la matière.
-
Les mots s'accordent au genre de l'étudiante — « Affectée », « Réaffectée », « Non affectée », « Non inscrite ». Une fille lisait jusqu'ici son nom suivi d'un participe au masculin sur son propre dossier et sur le reçu que sa famille emporte. L'accord se fait là où le mot qualifie une personne nommée ; les en-têtes de colonnes de tarifs et les compteurs restent au masculin, qui est aussi la forme d'un groupe mixte.
-
Le statut d'affectation s'affiche de nouveau pour les réinscriptions groupées — un étudiant réinscrit en masse comme non affecté n'avait aucun badge dans la liste ni sur sa fiche : il apparaissait comme si son statut n'était pas renseigné, alors que c'est lui qui décide du montant à payer.
-
L'onglet du second semestre affichait le coefficient du premier — sur l'écran « Modifier les moyennes », le coefficient d'une matière était cherché sans préciser la période ni l'élève : le calcul retombait sur le premier semestre, et n'atteignait jamais le coefficient hérité du tronc commun, qui tombait sur une valeur de repli. Ce n'était pas qu'un affichage — l'écran reporte cette valeur dans son formulaire, et l'enregistrement l'écrit en base ; les deux sont corrigés. Une troisième porte est fermée au passage : enregistrer une note créait une ligne de résultat dont le coefficient valait 1 d'office, jamais celui de la maquette, et c'est ce 1 que l'écran réaffichait ensuite. Le recalcul lit désormais la maquette pour les lignes nouvelles. Les lignes déjà enregistrées ne bougent pas, justes ou fausses : un coefficient de 1 déjà en base peut être un choix de votre établissement ou l'ancien défaut, et rien ne permet de les distinguer — elles se corrigent à la régénération du bulletin, ou à la main.
-
Une matière LMD ne s'imprime plus sur un bulletin BTS — sur les instances qui ont importé des maquettes LMD, un élément constitutif obtenant une ligne dans une maquette BTS sortait sur le bulletin de la classe, alors que les deux écrans qui permettent de gérer les matières l'écartent l'un comme l'autre. La matière apparaissait donc sur le bulletin sans être visible nulle part où on aurait pu l'en retirer — c'est ce qui rendait le défaut coûteux, bien plus que la matière en trop. L'audit a montré que ce n'était pas un accident isolé : huit écrans pouvaient afficher, ou laisser rattacher, un élément LMD dans un contexte BTS, dont le panneau « matières disponibles » d'une classe, qui les listait toutes. Les écrans d'assiduité sont volontairement laissés tels quels : ils peuvent légitimement concerner des matières LMD. Si une note avait été saisie sur une telle matière, elle cesse d'apparaître au bulletin — la note n'est pas supprimée, mais il faut régénérer le bulletin pour que le document reflète la correction.
-
L'appréciation d'une matière s'affiche enfin sur le bulletin — les deux écrans concernés lisaient une propriété qui n'a jamais existé sous ce nom. Une propriété absente ne lève aucune erreur : elle rend une valeur vide. L'appréciation saisie à la génération était donc toujours remplacée par un tiret, en silence, sur toutes les instances.
-
« Duplicate entry » à la génération d'un bulletin : une matière retirée puis remise ne bloque plus tout — la génération se termine en écartant les matières qu'elle n'a pas retenues. Cet effacement est doux : la ligne reste en base, invisible, mais occupe toujours sa place unique. Si la matière revenait au programme, la génération suivante ne la voyait pas, tentait de la recréer, et la base refusait — définitivement. Le bulletin de cet étudiant devenait impossible à éditer.
-
Redouble ou admis se décide sur la moyenne annuelle, plus sur le seul second semestre — le bulletin du second semestre imprimait « Redouble la classe » sous une moyenne annuelle supérieure au seuil. Un étudiant à 11,20 sur l'année mais 9,40 au second semestre lisait une décision que son propre bulletin contredisait deux lignes plus haut. Le réglage existe toujours pour qui veut décider sur le seul second semestre, mais ce n'est plus ce qui est livré. Attention : les écoles déjà ouvertes doivent basculer le réglage à l'écran — là où l'écran des réglages a déjà été ouvert une fois, l'ancienne valeur est enregistrée et continue de s'appliquer.
-
Générer un bulletin n'efface plus la décision du conseil saisie à la main — sur un bulletin de second semestre, la décision tapée par l'établissement était remplacée par du vide dès que le calcul automatique ne répondait pas. Or il ne répond pas en mode manuel, qui est le mode livré par défaut : régénérer un bulletin suffisait à perdre la décision.
-
Retirer un élève d'une classe archive enfin toutes ses notes — l'archivage s'appuyait sur une seule des deux façons dont une note est rattachée à une classe. Changer la classe d'une évaluation ne met pas la première à jour : les notes concernées restaient vivantes après le retrait de l'élève et continuaient de peser sur ses moyennes ailleurs. Les deux rattachements sont désormais pris ensemble, à l'archivage comme à la restauration.
-
La vue annuelle d'une classe de tronc commun n'est plus vide — sur « toute l'année », le suivi demandait la composition du second semestre seulement. Une classe de tronc commun, dont tous les élèves passent en spécialité au second semestre, y apparaissait sans un seul élève alors que tout son premier semestre était saisi. La vue annuelle réunit désormais les deux semestres, et chaque évaluation n'attend que les élèves qui étaient là à son semestre à elle.
-
Une cohorte de second semestre écrite « S2 » n'est plus lue comme le premier — le calcul qui dit qui appartient à une classe sur une période ne reconnaissait que trois écritures ; toutes les autres retombaient sur le premier semestre sans un mot. Sur une classe de tronc commun, dont la composition change entre les deux, cela désignait les mauvais élèves — pour un effectif, un rang, ou une génération de bulletins en masse.
-
Une matière retirée à un élève ne compte plus comme une note reçue — le même marquage sert à deux choses : l'établissement qui écarte un élève d'une matière, et le système qui note qu'un élève n'était pas encore dans la classe. Les secondes étaient comptées comme faites, et une classe dont la moitié des élèves sont arrivés en cours d'année pouvait afficher « toutes les notes sont reçues » sans qu'aucune ne soit saisie.
-
Cocher une filière sur la fiche d'une matière la rattache vraiment — le formulaire annonçait « mise à jour avec succès » et la matière n'apparaissait nulle part, parce qu'il écrivait dans des tables que les écrans de bulletin ne lisent plus. Deux autres défauts du même formulaire sont corrigés au passage : il vidait toutes les filières et tous les niveaux d'une matière à chaque enregistrement, et il remettait à zéro la place au bulletin, le semestre et le statut tronc commun des combinaisons qu'il conservait.
-
La maquette d'un semestre n'écrase plus celle de l'autre — charger la maquette du second semestre après celle du premier faisait basculer d'un semestre à l'autre toute matière commune aux deux : elle disparaissait du bulletin du premier, sans un mot. Quand un chargement contredit un semestre déjà écrit, le lot entier est désormais refusé avec la liste des matières concernées, plutôt que d'écrire un choix que personne n'a fait.
-
Le suivi des notes n'envoie plus les notes de toute la classe à qui n'en affiche aucune — la réponse portait, pour chaque évaluation et chaque élève, la note chiffrée, le nom de qui l'avait saisie, celui de qui l'avait corrigée et les horodatages, y compris vers des écrans qui n'en montrent rien. Les notes et leurs auteurs ne sont désormais servis qu'au porteur du droit de consultation globale ; les doublons d'élèves, eux, restent visibles de tous ceux qui voient le bandeau — c'est précisément ce qui explique à l'enseignant pourquoi une note « manque ».
-
Une matière d'un autre système ne fausse plus les moyennes — une matière LMD sur laquelle on avait créé une évaluation et saisi des notes entrait dans le calcul du bulletin d'une classe BTS. Mesuré sur une 2ᵉ année Bâtiment : une telle matière y portait trente-quatre notes, et un 14/20 accompagné d'un 4/20 rendait une moyenne générale de 10,67 au lieu de 14,00 — valeur enregistrée telle quelle sur le bulletin. Douze calculs de moyenne du produit appliquent désormais la même règle : la génération du bulletin, l'aperçu « Officiel / Courant », le tableau de la page Résultats, les statistiques de classe imprimées sur la feuille, la moyenne du parcours de la fiche étudiant, l'accueil mobile de l'élève, et la décision de réinscription — qui n'affiche rien mais tranche entre passage et redoublement. Les notes ne sont pas supprimées : elles ont été saisies par quelqu'un, et leur sort revient à l'établissement. Les bulletins déjà imprimés gardent leur valeur tant qu'ils ne sont pas régénérés.
-
La « Moyenne générale » de la page Résultats affichait la note d'une seule matière — la bande d'indicateurs du haut lisait les moyennes enregistrées, stockées une ligne par matière, et retenait la dernière lue comme moyenne générale de l'élève : sans pondération, sans ordre. Un élève à 14 en matière principale et 4 sur une matière secondaire faisait afficher 4,00. Le taux de réussite se calculait sur ces mêmes valeurs. La bande moyenne désormais toutes les matières de l'élève. Le rang n'est plus repris d'une ligne de matière non plus : c'était un rang dans la matière, pas dans la classe.
-
L'écran « Modifier les moyennes » ne se ferme plus derrière un péage — jusqu'ici, toute matière dont le coefficient n'était pas configuré pour le couple filière + niveau faisait refuser l'ouverture de l'écran. Pire, l'issue dépendait de l'historique : le même élève, sur la même matière, voyait l'écran s'ouvrir s'il avait déjà une moyenne enregistrée, et se faire rediriger sinon. L'écran s'ouvre désormais dans les deux cas, avec un coefficient à 1 et l'encart qui le signale. Le lien « Configurer les coefficients » reste à portée. L'enregistrement est par ailleurs devenu tout ou rien : en cas de refus, rien n'est conservé et le message dit lequel.
-
Une matière d'un autre système reste visible et retirable sur cet écran — signalée « hors système », sans champ de saisie, et avec sa croix. La masquer emporterait son bouton de suppression et la rendrait impossible à enlever : c'est précisément le défaut que le retrait de maquette corrige ailleurs.
-
Les confirmations de l'écran Maquette ne passent plus par les boîtes du navigateur — retirer une matière qui porte des évaluations enchaîne deux confirmations, et c'est le cas courant. Or les navigateurs proposent, après des boîtes natives répétées, une case « empêcher cette page de créer des boîtes de dialogue supplémentaires » ; cochée, la confirmation suivante répond « non » sans que rien ne l'indique — sur le seul écran d'où la matière fautive peut sortir. Les trois confirmations utilisent maintenant la fenêtre de l'application, que le navigateur ne peut pas museler.
-
Un lot de retraits de maquette ne laisse plus d'état partiel — un échec au troisième retrait laissait les deux premiers effacés, les suivants intacts, et une erreur qui ne disait pas lesquels. Le lot est désormais tout ou rien, donc rejouable tel quel après correction.
-
L'écran Maquette tient sur un téléphone — ses lignes débordaient de cent deux pixels sous 640 px de large : le nom de la matière, les boutons de semestre et la place au bulletin se chevauchaient, et la croix de retrait sortait de l'écran. Les lignes passent maintenant à la ligne au lieu de se serrer.
-
Charger une maquette en nommant sa filière ne tombe plus sur la mauvaise — le nom d'une filière et celui d'un niveau d'étude ne sont pas uniques ; seul leur code l'est. Deux filières homonymes faisaient charger la maquette contre l'une des deux, au hasard de l'ordre d'enregistrement, sans un mot. Le code est désormais essayé en premier, et un nom qui désigne plusieurs entrées est refusé en les nommant toutes, pour que ce soit l'établissement qui tranche. Même règle pour les établissements mixtes, où les filières créées automatiquement pour un parcours LMD portent le nom de ce parcours : une maquette BTS ne peut plus tomber dessus.
-
Un élève réinscrit voyait ses moyennes de l'année précédente à 0,00 — l'écran « Modifier les moyennes » sait reprendre les notes de l'année d'avant, ce qui est le cas de tout élève réinscrit. Mais il affichait la ligne avant d'avoir calculé la moyenne, si bien que la valeur montrée était zéro. Le défaut ne se voyait que là : partout ailleurs, enregistrer une note crée aussitôt une ligne de moyenne, qui prenait le relais.
Août 2026
Ajouts
-
Transfert depuis un autre établissement supérieur — le formulaire d'inscription en ligne ne supposait plus que tous les candidats sortaient du lycée. Une question en tête de la section « Votre parcours » permet désormais de choisir entre « Je sors du lycée » et « Je viens d'un autre établissement supérieur ». Dans le second cas, cinq champs apparaissent : l'établissement quitté (obligatoire), la formation suivie, le dernier niveau validé, l'année de dernière inscription et le motif du transfert. Les informations du baccalauréat restent demandées dans les deux cas — c'est la pièce que l'établissement vérifie en premier. L'école retrouve la mention « Transfert » directement dans sa liste de candidatures, avec l'établissement d'origine, et le détail complet dans la fiche du dossier ; accepter une candidature de transfert ouvre le formulaire d'inscription avec la case Transfert déjà cochée et l'établissement d'origine reporté.
-
Inscription en ligne des nouveaux étudiants — un bachelier peut désormais déposer sa candidature depuis klassci.com : identité, résidence, vœu de formation, série et établissement d'origine, statut d'affectation et coordonnées d'un tuteur. L'établissement retrouve chaque dossier dans une corbeille dédiée, l'accepte ou le rejette avec un motif, et l'acceptation ouvre le formulaire d'inscription déjà rempli de ce que le candidat a saisi. Le canal est fermé par défaut : chaque établissement l'ouvre quand il le décide, et la période est celle déjà renseignée pour la réinscription.
-
Date d'ouverture des inscriptions sur place — un nouveau réglage permet d'annoncer le jour où le guichet ouvre. Le candidat le lit sur sa confirmation de dépôt, au lieu d'appeler l'établissement pour demander quand venir.
-
Export groupé des bulletins en un seul PDF (
/esbtp/bulletins) — un bouton « Exporter PDF groupé » réunit tous les bulletins correspondant aux filtres appliqués (année, classe, période, statut, recherche) dans un seul document PDF, dans l'ordre de votre choix : par classe, nom, matricule, moyenne ou rang, en ordre croissant ou décroissant. L'export reste possible même si certains bulletins ne sont pas encore générés : ceux-ci sont simplement absents du document, vous en êtes averti avant le téléchargement (nombre inclus / nombre absent), et une page de récapitulatif en tête du PDF liste les bulletins non inclus. Idéal pour imprimer toute une classe en une seule fois, prête à distribuer.
Améliorations
-
Le portail dit précisément pourquoi un dépôt est refusé — une inscription existe déjà, une candidature est enregistrée sous un autre nom, l'établissement a déjà accepté le dossier : chaque situation a sa phrase et son issue. Deux d'entre elles s'adressent aussi bien au candidat qu'à un proche qui partage le même téléphone, et sont écrites pour rester vraies dans les deux cas.
-
Une affluence sur les candidatures ne ferme plus la réinscription — les deux portails ont désormais leurs propres limites, et consulter la liste des formations ne consomme plus le quota réservé aux envois.
-
Reprise du tuteur déclaré en ligne — dans le formulaire d'inscription, un bouton recopie le tuteur saisi par le candidat et indique ce qu'il reste à compléter.
-
Détail par semestre sur la vue annuelle des résultats (
/esbtp/resultats) — pour un étudiant passé du tronc commun à une spécialité, l'onglet Annuel présente désormais un tableau par semestre : le semestre 1 avec sa classe de tronc commun, le semestre 2 avec sa classe de spécialité, chacun accompagné de ses matières, de son total de coefficients et de sa moyenne. Chaque tableau correspond ainsi exactement aux lignes qu'il affiche, là où l'écran mêlait auparavant la moyenne annuelle en haut et la moyenne d'un seul semestre juste en dessous. La mention « Admis » ou « Ajourné » reste réservée à la décision annuelle, un tableau semestriel se contentant d'indiquer si la moyenne du semestre se situe au-dessus ou en dessous de 10.
Corrections
-
Impression des bulletins plus robuste — un bulletin dont une matière n'avait pas de coefficient défini pouvait rester impossible à imprimer. Ce cas est désormais géré automatiquement, en téléchargement individuel comme en export groupé, et le bulletin s'imprime normalement.
-
Résultats corrects après un changement de classe de spécialité — un étudiant réorienté vers une autre spécialité en cours d'année voyait sa moyenne affichée à 0,00 avec la mention « Ajourné » et aucune note pour le semestre 2. Ses résultats suivent désormais sa classe de spécialité en cours, et la moyenne annuelle combine correctement le semestre 1 du tronc commun et le semestre 2 de la spécialité.
-
Bulletins non finalisés signalés comme tels — un bulletin dont la moyenne n'a pas encore été générée n'écrase plus les notes déjà saisies et n'affiche plus 0,00 ni « Ajourné » par défaut. L'espace personnel de l'étudiant indique clairement que le bulletin est en attente de génération.
-
Finalisation annuelle des classes de tronc commun — quand tous les étudiants d'une classe de tronc commun ont été orientés en spécialité, la génération des bulletins affiche un message explicite invitant à lancer l'opération depuis les classes de spécialité, où le semestre 1 du tronc commun est repris automatiquement, au lieu du message « Aucun étudiant actif » qui prêtait à confusion.
-
Export Excel de la liste d'une classe — la colonne Prénoms est de nouveau renseignée, et les informations du parent ou tuteur (nom, prénoms, téléphone, adresse électronique, profession) ainsi que l'adresse électronique de l'étudiant s'affichent au lieu de « N/A ».
-
Aperçus PDF de l'analyse comptable et du bulletin — ces deux pages pouvaient refuser de s'ouvrir. Elles s'affichent de nouveau normalement.
Juillet 2026
Ajouts
- Architecture multi-univers KLASSCI (
/,/universite,/college,/lms) : la page d'accueil devient un hub qui oriente vers KLASSCI Université, KLASSCI College et le futur LMS. La landing Université reste disponible sur une route dédiée, College dispose d'une présentation produit avec interfaces desktop et mobile, et l'architecture Fumadocs est préparée pour chaque univers.
Améliorations
- SEO social renforcé : métadonnées dédiées par univers avec OpenGraph, Twitter Cards, liens canoniques et alternatives FR/EN pour les aperçus WhatsApp, Slack, LinkedIn et X.
Juin 2026
Ajouts
-
Refonte premium de la fiche d'une note (
/esbtp/notes/{id}) — la page de détail d'une note adopte le design premium KLASSCI : hero gradient avec l'identité de l'étudiant et l'évaluation, indicateurs clés en un coup d'œil (note brute, note ramenée sur 20, mention, type d'évaluation) et un encart « Résultat » avec score coloré selon le niveau, commentaire et traçabilité (auteur de la saisie, dernière modification). -
Journal d'audit plus lisible (
/esbtp/audit) — les types d'entités affichés dans le journal d'audit, l'activité par utilisateur et les exports PDF / Excel n'affichent plus de préfixe technique : on lit désormais « Note », « Étudiant », « Paiement » au lieu de libellés techniques. -
Module Réconciliation Caisse OHADA (
/esbtp/comptabilite/reconciliation) — workflow complet de bouclage caisse physique vs paiements enregistrés en 6 étapes (brouillon → revue → approbation avec séparation des devoirs → clôture avec verrouillage des paiements → PV PDF officiel signable, archivable 10 ans). Saisie des comptages par mode de paiement (espèces, mobile money, virement, chèque, Wave, Orange Money, MTN MoMo, Moov Money) avec détection automatique des écarts et wizard de résolution premium qui propose quatre actions au choix : créer un paiement correctif, ajuster un paiement existant, annuler un paiement, ou accepter l'écart avec motif justifié. Bouton « Voir les transactions » sur chaque carte de mode pour pointer ligne par ligne face au portail merchant, avec lien direct si l'URL du portail (Orange Money, MTN MoMo, Moov Money, Wave) est configurée dans les Réglages. Dashboard santé intégré à la page Comptabilité avec bandeau d'alerte rouge dès qu'une session reste ouverte trop longtemps, KPIs (sessions en retard, brouillons + en revue, jours depuis la dernière clôture, pourcentage de sessions sans écart sur 90 jours). Notifications email envoyées automatiquement chaque matin à 8h aux utilisateurs ayant la permission d'ouvrir une réconciliation. Entièrement configurable par école (fréquence quotidienne / hebdomadaire / mensuelle, seuil de tolérance d'écart en FCFA, URLs des portails merchant, délai au-delà duquel une session est considérée comme en retard). -
Export comptable SAARI / Sage Ligne 100 (
/esbtp/paiements) — nouveau format d'export Excel compatible avec le logiciel Sage Ligne 100 au format BNI BKE, configurable par école (code journal, compte par défaut, mapping JSON catégorie de frais → compte SAARI, couleurs tenant pour l'en-tête). L'export reproduit fidèlement la structure attendue par Sage avec en-tête de tableau visible et libellés de colonnes conformes. -
Refonte premium de la page Paiements (
/esbtp/paiements) — hero gradient KLASSCI, KPIs cliquables qui filtrent instantanément la liste (total encaissé, paiements validés, en attente, rejetés), scroll infini au lieu de pagination classique, animation discrète sur les nouvelles lignes, sélecteurs premium partout (zéro select natif). -
Refonte premium de la page Bulletins (
/esbtp/bulletins) — hero gradient, table moderne avec clic-row pour ouvrir le bulletin, actions en masse (publier, exporter, envoyer par email à toute la classe), AJAX sans rechargement de page. -
Refonte premium de la page Étudiants (
/esbtp/etudiants) — table moderne click-row, scroll infini, modal d'édition premium pour modifier rapidement un étudiant sans changer de page, actions de correction en masse (réassignation de classe, mise à jour de matricule, archivage). -
Saga « dropdowns universels » — règle technique transversale qui garantit que tous les menus déroulants apparaissent toujours par-dessus le reste du contenu (cartes, modales, KPIs survolés, hero gradient), partout dans la plateforme. Plus aucun menu coupé en bas du viewport ni masqué par un élément voisin.
Améliorations
-
Bulletin Yakro PDF — police agrandie pour une meilleure lisibilité, format A4 optimisé (marges et padding réduits, mojibake « Matière » → « Matière » corrigé, lignes d'information en table à 2 colonnes label/valeur alignés), tout tient désormais sur 1 page A4 avec mentions en grille 2 colonnes, tableaux résultats et statistiques compactés, signature et cachet manuel aérés. Le nom du ministère devient paramétrable multi-lignes (fini la répétition « Recherche Scientifique »).
-
Coefficients S1/S2 séparés — gestion distincte des coefficients par semestre (chaque matière peut avoir un coefficient différent en S1 et S2) avec copie inter-période (preview override/merge avec confirmation) et modal coefficients enrichi (switch S1/S2 inline, jauge de complétude qui indique combien de matières sont configurées, prévisualisation des changements avant validation).
-
Configuration des matières refondue en premium (
/esbtp/config-matieres) — refonte complète, switch S1 / S2 / Annuel en AJAX sans rechargement, modal de copie d'une période vers l'autre, propagation immédiate à la classe en cours. -
Barème assiduité à 5 paliers — la note d'assiduité devient plus nuancée (au lieu d'un bonus / malus binaire, 5 paliers configurables) avec redesign premium complet de la page d'édition des absences (
/esbtp/absences/edit). -
Audit comptable formalisé — audit complet du module Comptabilité (KPIs dashboard vs CLI vs UI, garde-fous, perf rendering) qui a révélé et corrigé 5 bugs production avant qu'ils ne soient remontés par les écoles.
Corrections
-
Tableau de bord des présences du coordinateur fiabilisé (
/coordinateur/attendance-dashboard) — certains indicateurs (cours clôturés, taux d'émargement, alertes de séances non clôturées) pouvaient rester à zéro ou vides à la suite d'une évolution interne. Ils affichent de nouveau les bonnes valeurs. -
Page de traitement des justificatifs d'absence à nouveau accessible (
/esbtp/attendances/justifications) — l'écran qui liste les justificatifs à traiter renvoyait une page introuvable ; il s'ouvre de nouveau normalement. -
Notifications côté étudiant — correction d'un message d'erreur qui pouvait apparaître à l'ouverture de la cloche de notifications pour un étudiant.
-
Notes visibles avant la génération du bulletin (
/esbtp/etudiants/{id}) — sur la fiche d'un étudiant, l'onglet Académique affichait « Aucune note enregistrée pour cette année » tant que le bulletin n'était pas généré, alors que des notes existaient déjà. Les résultats provisoires calculés à partir des notes saisies s'affichent désormais (clairement signalés comme provisoires) et sont automatiquement remplacés par le bulletin officiel dès sa génération. -
Saisie rapide des notes : décimales libres acceptées (saisie rapide BTS et LMD, édition de note, page Notes, dashboard enseignant, notation externe) — la grille bloquait toute décimale autre que 0,25 / 0,50 / 0,75 (impossible de saisir 11,44 ou 12,23). Toutes les vues de saisie acceptent désormais les décimales libres au format français (le backend et la base supportaient déjà cette précision).
-
Bannière brouillon notes (
/esbtp/notes) — la bannière « Brouillon non sauvegardé détecté » disparaît désormais correctement après enregistrement et ne réapparaît plus à la réouverture du modal pour la même classe / matière / période. -
Page Personnel (
/esbtp/personnel/unified) — le menu déroulant « Nouveau Personnel » du hero était clippé par la section suivante et un KPI passait au-dessus. Hero refactorisé pour libérer le menu des contextes d'empilement. -
Dropdowns universels — les menus sont désormais téléportés vers la racine de la page à l'ouverture pour échapper aux contextes d'empilement créés par certains parents (cartes, modales, hero gradient).
-
BTS Tronc commun — fallback hiérarchique — si aucune cible d'orientation n'est configurée, la classe remonte automatiquement à sa filière mère pour proposer les bonnes spécialisations.
-
Bulletin — résolution canonique du type de formation — le type de formation (BTS, LMD, etc.) est désormais résolu de manière cohérente entre la configuration des matières, le bulletin et la matière globale.
-
Page Résultats — refonte de la requête (union au lieu de jointure indirecte qui buguait) et fallback moyenne arithmétique sans coefficients quand les coefficients ne sont pas encore configurés.
-
Édition des absences — corrigé le crash 500 à l'ouverture (méthode interne manquante) et corrigé un bug de rendu Blade qui empêchait l'enregistrement.
-
Routes spéciales bulletins (
/esbtp-special/bulletins/*) — désormais ouvertes à la permission « Configurer les bulletins » (rule customizable-roles : pas de rôle hardcodé), au lieu d'être réservées à un rôle figé. -
Configuration des matières — le switch S1 / S2 manquait un sélecteur sur les boutons (en plus des liens), corrigé. Le modal coefficients affiche désormais l'état « En cours d'enregistrement » sur le bouton Enregistrer.
-
Page Création de matière (
/esbtp/matieres/create) — le JavaScript n'était jamais chargé sur la page (mauvaise directive Blade), corrigé.
Sécurité
-
Verrouillage post-réconciliation — les paiements validés inclus dans une session de réconciliation clôturée ne peuvent plus être modifiés, annulés ni supprimés, sauf dérogation explicite par un superAdmin (toujours journalisée). Permission
comptabilite.reconciliation.bypass_lockrequise et trace dans l'audit log. -
Séparation des devoirs OHADA sur la réconciliation — la personne qui ouvre une session de réconciliation ne peut pas l'approuver elle-même (configurable par école via le setting
comptabilite.reconciliation.require_separation_of_duties, activé par défaut pour respecter le standard OHADA). -
Permission « Gérer la spécialisation des inscriptions » introduite au lieu d'un rôle hardcodé sur le workflow BTS Tronc commun — chaque école choisit désormais à quel rôle accorder la gestion de la spécialisation post-tronc commun (rule customizable-roles : aucun rôle hardcodé en plus).
Mai 2026
Ajouts
-
Formulaire de création/édition de classe LMD-aware avec auto-switch BTS/LMD (
/esbtp/classes) — quand vous choisissez un niveau d'études Licence, Master ou Doctorat, le formulaire bascule automatiquement en mode LMD avec un panneau distinct : sélecteur de Mention premium groupé par Domaine (Sciences Juridiques, Lettres, Sciences de la Vie…) avec recherche live et chip secondaire du domaine, affichage du Domaine en lecture seule hérité automatiquement de la mention, sélecteur de Parcours premium en cascade filtré par la mention choisie (chip Code, recherche live, sentinel « Aucun parcours = tronc commun mention » toujours visible). Pour les niveaux BTS, le formulaire affiche la Filière classique. Si vous changez le niveau pendant l'édition (BTS vers LMD ou inverse), les champs incompatibles sont automatiquement réinitialisés. Validation stricte côté serveur : impossible de créer une classe Licence/Master/Doctorat sans choisir au moins une mention. Si aucune mention LMD n'est encore configurée pour votre instance, un message clair invite à demander la configuration à l'administration. Le formulaire fonctionne aussi bien depuis la page dédiée que depuis les modals « Nouvelle classe » et « Modifier classe » sur la liste des classes. -
Refonte premium de la page « Gestion des notes » côté enseignant (
/dashboard/teacher/grades) — hero gradient KLASSCI avec 4 indicateurs intégrés (Évaluations totales, Publiées, Brouillons, Notes saisies récemment), grille premium des évaluations avec badges type monochrome bleu (Cours Magistral, TD, TP, Projet, TPE, Examen, Autre) qui changent uniquement par l'icône (rouge sémantique conservé pour Examen), liste timeline des dernières notes saisies avec avatar gradient + chip score sémantique (vert ≥10/20, rouge <10/20, gris « Absent »), états vides élégants avec call-to-action, responsive complet mobile/tablette. -
Configuration de la maquette pédagogique LMD entièrement éditable depuis l'interface — sur la page Planning LMD, chaque cellule du tableau (CM, TD, TP, Projet, TPE, crédits ECTS) devient éditable au simple clic. La modification est enregistrée instantanément sans rechargement de page, le total des heures se recalcule automatiquement. L'assignation d'un enseignant à un ECUE se fait via une recherche élégante (groupée par rôle, avec photos de profil). Toutes les modifications sont tracées dans le journal d'audit pour conformité.
-
Édition en lot des volumes pédagogiques — sélectionnez plusieurs ECUE en une fois (case à cocher par ligne ou « tout sélectionner »), une barre d'action apparaît en bas de l'écran. Cliquez sur « Modifier en lot » pour ouvrir un éditeur compact où vous choisissez quels champs appliquer (par exemple : « TPE = 30h pour les 12 ECUE sélectionnés, sans toucher au reste »). Idéal pour appliquer une politique pédagogique uniforme sur toute une promotion en quelques secondes.
-
Maquettes UEMOA Licence prêtes à l'emploi — 5 parcours Licence 3 spécialisés ajoutés sur Ephrata (Droit Privé, Droit Public, Économie, Gestion, Agroéconomie), aux côtés des troncs communs Licence 1 et 2 déjà importés. Au total, 9 parcours complets (Droit, Sciences Économiques et de Gestion, Sciences de la Vie et de la Terre, Lettres Modernes) couvrant 232 unités d'enseignement et 447 ECUE, conformes au standard UEMOA (30 crédits par semestre). Plus besoin de saisir manuellement la maquette pédagogique — tout est pré-rempli, modifiable, audité.
-
Suivi des étudiants en situation de handicap (
/esbtp/accessibility) — nouvelle page dédiée pour superviser la cohorte des étudiants avec aménagements pédagogiques. Pour chaque étudiant : reconnaissance officielle, catégories (motrice, visuelle, auditive, cognitive, psychique, dys, maladie chronique), aménagements concrets (tiers-temps en pourcentage configurable, salle adaptée, supports agrandis, interprète LSF, prise de notes, ordinateur autorisé, pauses pendant épreuves), assistant requis, période de validité. La fiche étudiant accueille une nouvelle section « Accessibilité & aménagements » avec un panneau d'édition premium (chips colorées, toggles, dates de validité). Un pictogramme discret apparaît à côté du nom dans la liste des étudiants, dans les listes d'appel et listes complètes de classe, dans les feuilles de saisie de notes et dans tous les exports PDF / Excel — pour que l'enseignant repère en un coup d'œil les étudiants concernés. Les listes d'appel et listes complètes de classe affichent désormais en pied de page un encart « Aménagements à respecter » qui rappelle les adaptations pour chaque étudiant concerné. La description médicale détaillée est strictement séparée du résumé visible aux enseignants : par défaut, seuls les coordinateurs et secrétaires y accèdent. Toutes les modifications sont tracées dans l'audit log. Cinq nouvelles permissions paramétrables par école dans la matrice des rôles personnalisés. Export cohorte dédié (aperçu + PDF + Excel + envoi par email).
Corrections
-
Modal « Nouvelle classe » / « Modifier classe » qui ne basculait pas en mode LMD (
/esbtp/classes) — quand vous choisissiez un niveau Licence/Master/Doctorat dans le modal AJAX, le formulaire restait sur l'affichage initial sans afficher les sélecteurs Mention/Domaine/Parcours. Bug invisible (pas d'erreur affichée) qui forçait à utiliser la page autonome/esbtp/classes/create. La bascule fonctionne désormais aussi bien dans les modals qu'en page autonome, avec une transition animée et le reset automatique des champs incompatibles. -
Modal « Nouvelle classe » qui retournait une erreur 500 (
/esbtp/classes) — quand vous cliquiez sur le bouton, le formulaire ne se chargeait pas (erreur serveur). Causé par une variable utilisée avant définition dans le partial du formulaire. Le modal se charge maintenant sans erreur sur toutes les instances. -
Filtre et badges sur la liste des séances de cours (
/esbtp/seances-cours) — après la normalisation des types de séance en UPPERCASE (CM, TD, TP, Projet, TPE, Examen, Autre), le filtre dropdown et les badges colorés ne reconnaissaient plus les valeurs (ancien format minuscule). Le filtre, les badges et les statistiques par type sont désormais cohérents avec les nouvelles valeurs canoniques. Les badges multicolores sont remplacés par du monochrome bleu KLASSCI (l'icône distingue le type, rouge sémantique conservé pour Examen). -
Cascade niveau → semestre dans le planning LMD — le filtre semestre s'adapte désormais automatiquement au niveau choisi (Licence 1 → S1+S2, Licence 2 → S3+S4, Licence 3 → S5+S6) selon le standard UEMOA, indépendamment des UE déjà rattachées au parcours sélectionné. Le filtre niveau affiche tous les niveaux LMD actifs.
-
Robustesse de l'édition multi-utilisateurs — l'édition simultanée d'une même cellule par deux personnes affiche désormais un message clair de conflit (« Cette planification a été modifiée par un autre utilisateur, rechargez la page ») au lieu d'une erreur générique. Les sessions expirées, permissions perdues ou erreurs de validation côté serveur affichent toutes des messages contextuels précis.
Sécurité
- Journal d'audit étendu aux maquettes pédagogiques — chaque modification de volume horaire, de crédit, de coefficient ou d'enseignant assigné est désormais tracée dans le journal d'audit accessible depuis le menu « Sécurité & Audit » (permission
security.audit.view). Vous savez précisément qui a modifié quoi, quand, et avec quelle valeur avant/après.
Améliorations
-
Saisie de notes plus robuste, même avec un wifi instable (
/esbtp/notes, modal de saisie) — chaque frappe est désormais sauvegardée localement dans le navigateur. Si la connexion tombe pendant que l'enseignant saisit 600 notes en classe, rien n'est perdu : à la prochaine ouverture du modal pour la même classe / matière / période, une bannière jaune « Brouillon non sauvegardé détecté — il y a 4 min · 38 notes en attente de synchronisation » propose de tout restaurer en un clic. Un badge réseau dans l'en-tête du modal indique en permanence l'état de la synchronisation : vert « Synchronisé », orange « Sauvegarde… », rouge « Hors ligne — brouillon local ». Si l'enseignant tente de fermer le modal alors que des sauvegardes sont encore en cours, une confirmation premium s'affiche pour éviter toute perte. -
Saisie clavier façon Excel (
/esbtp/notes, modal de saisie) —TabetShift+Tabnaviguent par colonne,EnteretShift+Enterpar ligne,Ctrl+Senregistre toutes les notes en attente,Escdéfocus la cellule,Ctrl+Fouvre la barre de recherche. Au premier focus de la première cellule, un tooltip discret affiche l'astuce une seule fois (auto-disparaît après 6 secondes ou au premierTab). -
Refonte premium du modal de saisie de notes (
/esbtp/notes) — l'en-tête de tableau (Étudiants, Semestre 1/2, Évaluations, Synthèse) reste collé en haut lors du défilement vertical de la grille. Une barre d'outils intégrée affiche une recherche d'étudiant en direct (filtre par nom, prénom ou matricule) et le compteur en temps réel (« 87 étudiants · 6 évaluations · 12 visibles »). Au-delà de 80 étudiants par classe, la grille n'affiche que les 50 premiers et un bouton « Charger 30 étudiants de plus » apparaît en bas pour éviter le ralentissement. Lorsque le tableau dépasse à droite, un dégradé subtil et une flèche flottante invitent à faire défiler horizontalement. -
Sauvegarde plus visible : toast premium au lieu d'un flash de ligne (
/esbtp/notes) — chaque note enregistrée déclenche désormais un toast élégant en haut à droite (« Note enregistrée — Marie Konaté · moyenne 14,25/20 ») qui s'enchaîne intelligemment si plusieurs notes sont sauvegardées en moins d'une demi-seconde (« 8 notes enregistrées — Marie, Aïcha, Jean, +5 »). La ligne du tableau garde aussi son flash vert pour la confirmation visuelle directe. -
Toggle absent visuellement clair (
/esbtp/notes) — la case à cocher minuscule est remplacée par un interrupteur (form switch) rouge avec libellé « Abs ». Quand un étudiant est marqué absent, sa ligne est légèrement teintée de rouge, son nom passe en italique et un badge « Absent » (ou « Absent 3/6 » si seulement certaines évaluations) s'affiche à côté de son nom. -
En-têtes d'évaluation lisibles + édition rapide (
/esbtp/notes) — les minuscules champs barème et coefficient sont remplacés par un affichage lisible sur trois lignes : titre de l'évaluation, « / 20 · Coef 1 », badge du type. Un bouton crayon discret apparaît au survol et ouvre un mini formulaire pour modifier rapidement le titre, le barème (1 à 100) et le coefficient (0,1 à 10) sans changer de page. -
« Créer et continuer » dans la création d'évaluation (
/esbtp/notes) — un nouveau bouton à côté de « Créer l'évaluation » permet d'enregistrer la nouvelle évaluation et de garder le formulaire ouvert avec la classe, la matière, la date, les horaires, le barème et le coefficient déjà conservés, pour enchaîner deux ou trois évaluations dans la même session sans réouvrir le modal à chaque fois.
Ajouts
-
Saisie offline des notes : export Excel + ré-import avec aperçu Avant/Après (
/esbtp/notes) — chaque modal de saisie propose désormais un bouton « Exporter Excel » (1 ligne par étudiant, 1 colonne par évaluation avec barème et coefficient dans le titre, freeze pane sur étudiant et nom, autoFilter, matricule en format texte pour préserver les zéros initiaux) pour saisir les notes hors connexion, par exemple en classe ou à la maison. Au retour, un bouton « Importer Excel » avec drag-drop ouvre une fenêtre de prévisualisation premium qui affiche, en quatre indicateurs colorés (à créer, à mettre à jour, inchangées, erreurs) et dans un tableau ligne par ligne, exactement ce qui va changer avant validation. La validation est par cellule (note dans le barème, matricule existant, format français12,5accepté, marqueurABSreconnu pour absence) et l'application est atomique. Limite 5 Mo par fichier, 10 exports par minute, 5 prévisualisations et 3 imports par minute pour éviter les abus. -
Aperçu de l'impact d'une note sur la moyenne en temps réel (
/esbtp/notes) — chaque fois qu'un enseignant tape une note dans la grille de saisie, un encadré discret s'affiche sous l'étudiant et indique en moins d'une seconde la nouvelle moyenne matière, la nouvelle moyenne générale et le changement de mention CAMES (Très Bien / Bien / Assez Bien / Passable / Insuffisant) si la note bascule l'étudiant vers une mention différente. Garde-fou contre les fautes de frappe et confirmation visuelle immédiate de l'impact pédagogique. -
Refonte premium des pages enseignant (création + modification) — formulaire en une seule page avec hero gradient KLASSCI, trois champs requis pour démarrer (nom, téléphone, spécialisation), section « Régime d'engagement » avec radio cards (Vacataire / Permanent / Consultant) et champs conditionnels selon le régime, panneau « Profil détaillé » pliable pour diplômes et grade, date de début d'activité optionnelle pré-remplie au jour.
-
Refonte premium de la modification rapide des disponibilités (
/esbtp/enseignants/bulk-availability) — chaque item enseignant repensé : avatar gradient avec initiales, stats premium (Préférés / Disponibles / Indisponibles) avec couleurs sémantiques, grille calendrier 7×11 avec gradients par statut, mode édition avec bordure bleue active, légende dans card grise. -
Pattern unifié d'export PDF / Excel avec aperçu, envoi par email du document, et paramètres d'export premium par tenant. Le même flux est utilisé pour les paiements, les listes de classe, les bulletins et les rapports comptables.
-
Personnalisation PDF par établissement — paramètres tenant pour couleur d'accent, position du logo, footer signature, marges, et aperçu du rendu en nouvelle tab sans téléchargement intermédiaire.
-
Chat interactif avec notifications événementielles — la messagerie réagit en temps réel aux événements métier (paiement validé, inscription validée, paiement créé) et affiche les notifications correspondantes dans la barre latérale du destinataire.
-
Modale « Nouveau message » premium sur le chat — header gradient, avatars circulaires des destinataires, recherche temps réel, accessibilité clavier complète.
-
Polish UI 2026 du chat — groupement des messages consécutifs du même expéditeur, optimistic UI à l'envoi (le message apparaît immédiatement), bannière « Nouveau » sur les conversations non lues.
-
Page de recouvrement actionnable (
/esbtp/comptabilite/relances) — chaque ligne d'impayé propose un deeplink WhatsApp pré-rempli avec le message de relance personnalisé, plus un widget de précision affichant le taux de réussite des relances par mode de communication. -
Workflow gating complet — chaque rôle (caissier, comptable, secrétaire, coordinateur, enseignant) voit uniquement les sections de la sidebar, les routes et les boutons d'action correspondant à son périmètre. Une commande CLI permet de superviser les permissions accordées par tenant.
Améliorations
- Fusion des tables
esbtp_enseignant_profilesdansesbtp_teachers— un seul écran d'édition, un seul schéma. Les notions de « type de contrat » et « statut d'emploi » sont unifiées dans un champ unique « Régime » (Vacataire / Permanent / Consultant). « Date d'embauche » devient « Date de début d'activité ». Les tablesesbtp_enseignant_profiles,esbtp_enseignant_disponibilites,esbtp_enseignant_affectations(jamais réellement alimentées par l'UI moderne) sont supprimées. - Cleanup des champs hors-contexte sur la fiche enseignant — retrait de Laboratoire, Motivation, Méthodes d'enseignement, Outils pédagogiques, upload CV et photo (à venir via upload progressif). Le filtre et la colonne « Département » sur la liste sont également retirés (KLASSCI cible l'enseignement supérieur sans découpage en départements).
- Bandeau « Vue secondaire » sur la liste des enseignants rappelant que la gestion principale du personnel se fait depuis
/esbtp/personnel/unified. - Permissions enseignants centralisées sur la nouvelle relation Eloquent — tous les écrans (dashboard enseignant, présences, notes, attendance, planning) utilisent maintenant la même relation pour accéder au profil de l'enseignant connecté. Les pages ne plantent plus après les changements de schéma.
Sécurité
- Throttle sur les routes enseignants — 60 requêtes par minute sur le groupe enseignants et 5 requêtes par minute sur la réinitialisation de mot de passe (qui crée un mot de passe aléatoire).
Améliorations
- Le bouton « Imprimer » imprime désormais le vrai document, pas la page web (aperçus de liste d'appel, liste complète de classe, situation financière étudiant, attestation de fréquentation, certificat de scolarité, emploi du temps, bulletin, reçu de paiement, rapport de présence) — auparavant le bouton imprimait toute la page (avec la barre latérale KLASSCI, le topbar et les cartes KPI visibles dans l'aperçu d'impression). Désormais, cliquer sur « Imprimer » ouvre le vrai PDF du document dans un nouvel onglet ; il suffit de cliquer sur l'icône imprimer du visualiseur PDF (ou de faire Ctrl+P) pour obtenir un tirage propre, exactement comme le PDF qu'on télécharge. En bonus, si l'utilisateur fait Ctrl+P par accident sur n'importe quelle page de l'app, la barre latérale et le topbar sont automatiquement masqués pour ne garder que le contenu utile.
Suppressions
- Purge des références « ESBTP » qui apparaissaient en fallback dans les e-mails, SMS, PDF et écrans d'installation — KLASSCI étant un produit multi-établissements, voir « ESBTP » comme valeur par défaut quand l'école n'avait pas (encore) renseigné son nom était incohérent. Désormais, les e-mails de notification aux parents utilisent « votre enfant » comme valeur de repli (au lieu de « ESBTP »), les SMS de relance affichent l'acronyme paramétré dans les Réglages (au lieu d'un préfixe « ESBTP: » figé), et tous les PDF (reçus, certificats, emploi du temps, bulletin grades, attestations) tirent leur en-tête (nom, adresse, téléphone, e-mail, ville) directement des Réglages de l'école — finis les « Ecole Spéciale du Bâtiment et des Travaux Publics », « BP 2541 Yamoussoukro », « esbtp@aviso.ci » qui s'imprimaient en dur si la configuration n'était pas complète. Placeholders et sous-titres des formulaires nettoyés également. Les noms légitimes (« ESBTP Yakro » et « ESBTP Abidjan » sur la page de choix de style de bulletin, qui sont les vrais noms des deux modèles disponibles) sont préservés.
Corrections
- Logo de l'école qui n'apparaissait pas (zone blanche) sur les listes d'appel, listes complètes de classe, exports étudiants/classes et plusieurs PDF comptables — sur les bandeaux bleus en tête de ces documents, le logo se transformait en rectangle blanc à cause d'un effet de filtrage CSS hérité, et le chargement du fichier ne tentait qu'un seul emplacement de stockage (donc absent dès qu'un tenant historique avait son logo dans un sous-dossier différent). Le logo s'affiche désormais avec ses vraies couleurs, encadré dans une carte blanche pour rester lisible sur le bandeau coloré, et la résolution du fichier essaie maintenant l'ensemble des emplacements possibles (avec deux logos KLASSCI livrés en dernier recours pour ne jamais se retrouver avec un en-tête sans logo).
Sécurité
- Bouton « Effectuer un paiement » désormais accessible aux rôles avec la permission « créer un paiement » (fiche étudiant
/esbtp/etudiants/{id}et fiche inscription/esbtp/inscriptions/{id}) — auparavant, les boutons « Enregistrer un paiement », « Effectuer un paiement » et « Payer » s'affichaient bien (la permission de création de paiement était attribuée) mais cliquer dessus puis valider le formulaire échouait silencieusement avec une erreur 403, parce que l'endpoint exigeait en plus la permission « valider une inscription » qui ne sert pas dans ce flux. Le caissier et tout rôle personnalisé qui a la permission de saisie de paiement peut désormais ajouter un paiement depuis ces deux écrans, comme attendu. - Case « Valider le paiement immédiatement » réservée à la permission d'auto-validation (modals de paiement sur fiche étudiant et fiche inscription) — la case à cocher s'affichait pour tout le monde, et était même pré-cochée sur la fiche étudiant. Cliquer dessus permettait à l'utilisateur de valider son propre paiement dans la foulée, en court-circuitant la séparation des tâches anti-fraude. Désormais, la case n'apparaît que pour les utilisateurs ayant explicitement la permission « Auto-valider ses propres paiements » (réservée aux très petites écoles avec un seul compte comptable). Pour tous les autres, le paiement est créé en attente de validation et un comptable doit le valider séparément.
Corrections
- Pré-inscription d'un nouvel étudiant par le caissier (
/esbtp/inscriptions/pre-inscription) — le bouton « Enregistrer la pré-inscription » échouait avec une erreur d'intégrité base de données dès qu'il s'agissait d'un nouvel étudiant (jamais inscrit auparavant). Seule la pré-inscription d'un ancien étudiant en réinscription fonctionnait. Le bug remontait à la première version de la fonctionnalité caissier. Corrigé : la pré-inscription d'un nouvel étudiant aboutit désormais comme prévu et bascule l'inscription en statut « prospect » avec ses frais souscrits et son éventuel acompte encaissé. - Erreur
RelationNotFoundException [enseignantProfile]sur la page Planning Général et plusieurs endpoints liés aux présences, aux notes et au dashboard enseignant — corrigée. Une nouvelle relationUser → teacherProfile(aliasteacheretenseignant) est exposée et utilisée par tous les écrans concernés. - Modals « Créer un enseignant » sur
/esbtp/planning-generalet sur le formulaire de création de séance — affichaient encore les anciens champs (Département, Type de contrat, Statut d'emploi, Date d'embauche) après la fusion DB. Désormais alignés sur le nouveau schéma : Régime + Date de début d'activité. - Champ Téléphone obligatoire sur la modification d'un enseignant — le formulaire bloquait les enseignants legacy dont le téléphone n'était pas saisi. Le champ est désormais facultatif côté formulaire de modification (la validation serveur l'accepte vide).
Avril 2026
Ajouts
- Saisie globale des heures sans matière (présences) — la nouvelle interface permet de saisir les heures de cours sans assigner de matière spécifique, utile pour les cours mutualisés ou les conférences. Pattern
UNIQUE+NULLcross-compatible MariaDB/MySQL via une colonne générée. - Portail groupe pour les fondateurs — agrégation cross-tenant des indicateurs financiers, pédagogiques et opérationnels avec scoring de santé par établissement, alertes automatiques (plan mismatch, tenant inactif, expiration SSL, baisse d'effectif), et bannière d'abonnement transverse.
- Onboarding membres du groupe — création du rôle DGA, flow d'invitation par email avec mot de passe auto-généré et URL signée 24h, force-change du mot de passe à la première connexion, fallback
username(générationprenom.nomavec déduplication automatique en cas de collision). - Notifications cross-tenant — système d'invoices, notifications enseignants, notifications fondateurs, table dédiée avec préférences par utilisateur.
- Blocage des classes pleines sur le formulaire d'inscription : affichage en temps réel des places disponibles avec seuils colorés (vert au-dessus de 30 %, orange entre 10 et 30 %, orange foncé en dessous de 10 %, rouge complet), désactivation automatique du bouton de soumission, prise en compte des inscriptions validées de l'année courante uniquement.
- Contexte conversationnel du chatbot Claude — le bot mémorise désormais le résultat du dernier outil exécuté (étudiants ou classes) pour répondre à des questions de suivi telles que « et dans la classe d'à côté ? » sans devoir re-spécifier la classe.
- Filtres enrichis pour le chatbot — recherche d'étudiants par étape de workflow et statut, recherche de classes par système (BTS / LMD) et disponibilité de places.
- Schéma tarifaire Signature 2026 — trois paliers (Essentiel, PRO, ELITE) alignés sur l'enseignement supérieur, formule Partenaire à 15 000 XOF par an, période d'essai de 3 mois, grandfathering 24/18/12 mois pour les abonnements existants.
- Refonte premium de la liste des matières (
/esbtp/matieres) — hero gradient à 4 KPIs live, filtres hybrides (3 selects toujours visibles + bouton avancés repliable), barre d'actions groupées sticky, menu kebab par ligne (Voir / Configurer / Modifier / Supprimer), confirmations modales, suppression en lot par AJAX, état vide premium. - Refonte premium de la réinscription (
/esbtp/reinscription) — onglets et indicateurs alimentés par la même source (KPIs annuels par classe), badges d'état clairs (Réinscrit / À réinscrire / En attente), tris et recherche en temps réel, alignement sur le pattern visuel des autres modules. - Refonte premium des annonces (cinq vues : index, création, édition, détail, gestion) — header gradient KLASSCI, badges sémantiques par audience (étudiants / enseignants / tous), confirmations
iiConfirmpartout, suppression du fond vert legacy au profit de la palette monochrome bleu KLASSCI. - Inscription sous réserve pour année future — un étudiant peut s'inscrire avant la rentrée avec un sursis sur les pièces manquantes ou les frais. Tableau de bord dédié
/esbtp/inscriptions/sous-reserveavec détection automatique des pièces manquantes, alertes intelligentes par condition de réserve, redirection vers la fiche inscription au clic sur la ligne, lien dans la sidebar. Les sections Vue d'ensemble, Académique et Présences de la fiche étudiant affichent désormais un fallback explicite quand l'année courante est encore en sous réserve. - Refonte premium de la fiche inscription — info-grid avec deux colonnes parents / étudiant, barre de finance résumée (frais attendus / payés / solde), liste des autres inscriptions du même étudiant, états vides premium, table des paiements modernisée. Page d'édition également refondue (suppression du champ adresse devenu redondant, info-grid parents, headers de section).
- Configuration des bulletins remaniée — page de paramétrage repensée par établissement (modèle, mentions, formules de calcul, signatures, notes sur 20 ou 100), correction des liens cassés dans la sidebar.
- Alerte d'expiration de mot de passe à 6 mois — message d'avertissement contextuel dans l'en-tête (« votre mot de passe expire dans X jours »), redirection vers le formulaire de changement, distinction visuelle entre première connexion et expiration. Une commande CLI permet de débloquer un compte expiré sans accès UI.
- Bouton afficher / masquer le mot de passe sur la page de création de l'admin lors de l'installation initiale, et sur les modales premium de changement de mot de passe (4 profils : superadmin, secrétaire, comptable, coordinateur).
- Activation et désactivation des modules par tenant — chaque tenant peut activer ou désactiver les modules Enseignants / Notes & Évaluations / Emploi du temps / Présences / LMD / Comptabilité / Caisse / Communication / Support technique. La sidebar et les KPIs du dashboard masquent les sections désactivées. Les permissions correspondantes (
module.*.access) sont gérées via l'écran de configuration des rôles. - CLI de management distant des tenants — endpoints REST + commandes Artisan pour créer un utilisateur, lister les comptes, supprimer en soft, créer ou définir l'année universitaire courante, débloquer un mot de passe expiré. Authentification par token Sanctum. Permet d'opérer un tenant sans accès UI (utile pour le support et l'onboarding).
Améliorations
- Refonte complète du module comptabilité — six pages premium repensées : tableau de bord comptable, paiements, suivi par catégorie, configuration des frais, dashboard, relances. Pattern
planning-headerà deux rangées avec KPIs intégrés au héros. - Refonte de l'onglet Présences sur la fiche étudiant — un seul héros sombre unifié rassemblant la synthèse, sous-cards blanches pour le détail granulaire, gate des années précédentes pour éviter les régressions visuelles.
- Refonte de la page emploi du temps — vue jour/semaine/mois avec puces de séances colorées, kebab d'actions par séance, légende, paramètres PDF dynamiques par établissement, duplication de semaine en un clic.
- Refonte premium des inscriptions — KPI live-update, actions groupées (annulation, export), confirmations modales
iiConfirm, toasts uniformes, partage de styles viacommon.jset namespace CSSii-*. - Refonte de la page classes — structure revue, badges sémantiques, table modernisée, AJAX pour les filtres.
- Refonte des modales d'administration — uniformisation sur la palette monochrome bleu KLASSCI, suppression des couleurs décoratives non sémantiques.
- Sécurisation des actions monétaires — limitation
throttle:60,1et10,1sur les routes de paiements et remplacement de tous leswindow.confirm()natifs par des dialogues customiiConfirm.
Corrections
- Fix N+1 dans la recherche de classes du chatbot — passage de 300 requêtes par appel à 2, via
withCountfiltré et un seul lookup d'année universitaire courante. - Fix double définition
selectClasse()dans le sélecteur de classe : la deuxième définition par hoisting JavaScript écrasait silencieusement la première sans appelertoggleSubmitButton(), le bouton n'était jamais désactivé via la modale « classe pleine ». Les deux fonctions sont fusionnées. - Bouton « Notes » sur la page évaluations redirige désormais vers la saisie rapide ; correction de la suppression en lot.
- Suppression d'un
composer installau déploiement qui figeait certains tenants sur des environnements partagés.
Sécurité
- Audit IDOR phase 1 — création de trois Policies, ajout de
authorize()sur les routes sensibles, masquage deviewFinancialspour les rôles non autorisés. - Cleanup des traces et stack traces exposées en production sur dix routes identifiées.
- Migration de 230+ appels
hasRole()vers le système de permissions Spatie (@can,@cannot), suppression des hardcodes de rôles dans les contrôleurs.
Mars 2026
Ajouts
- Système LMD complet parallèle au BTS — gestion des UE, ECUE et crédits par semestre, pivot many-to-many ECUE↔UE avec coefficients contextuels, parcours étudiants avec validation progressive des crédits, bulletins LMD avec moyennes pondérées, formules de calcul configurables (AQ, NAQ, APC).
- Module tronc commun — flow d'inscription tronc commun puis spécialisation, bulletin de classe d'origine, matières communes, planning strict, trois paramètres de configuration (bulletin, matières, planning).
- Note de conduite — calcul automatique sur 16/20 (déduction d'un point par tranche de 4h d'absence), mentions Blâme et Avertissement, huit niveaux d'appréciation, paramétrage par établissement, prise en compte des absences par matière.
- Rôle caissier — espace dédié avec dashboard caisse, flow de pré-inscription multi-étapes avec saisie des frais par catégorie, paiement partiel, génération automatique des identifiants via
UserService, banner de complétion administrative avec garde-fous. - API LMS multi-tenant — endpoints publics de découverte des établissements (sans token permanent requis), authentification dédiée avec rate-limiting
lms-discovery, documentation interne accessible viaGET /api/lms/documentation. - Module documents étudiants — upload, liste, téléchargement, badge d'extension, gestion des permissions de lecture par rôle.
- Différenciation BTS/LMD sur la fiche étudiant — onglets semestriels, reliquats par catégorie de frais, CECT à vie, accessor
photo_urlunifié. - Configuration interactive des frais — commande artisan pour gérer les souscriptions de frais en mode interactif, génération sans doublons, archivage des inactifs.
- Module ECUE — modale à deux onglets avec validation de crédits, tabs Select2 premium, page UE 100 % AJAX (zéro rechargement), liaison UE↔Parcours multi-semestres.
Améliorations
- Refonte du dashboard coordinateur — design premium avec KPIs et navigation AJAX entre onglets sans rechargement.
- Refonte de la page emploi du temps — design premium, KPIs, scrollable charts avec ECharts, format horaire HH:MM partout.
- Refonte des pages résultats (index, classes, classe) — vues annuelle / S1 / S2, intégration de l'assiduité, fix du filtrage des notes incohérentes.
- Refonte de la page Notes — calendrier de disponibilités avec édition inline, recherche temps réel dans les modales de sélection, modal autonome remplaçant l'embed AJAX legacy.
- Refonte de la page Pré-inscription — cards d'analyse premium, étapes centrées avec lignes continues entre cercles, recherche d'étudiant pour le flux de réinscription.
- Refonte de la page Planning Annuel — fusion de l'onglet Events, calendrier équilibré (900 px, cellules 48 px), KPIs corrigés sur tous les onglets, modal d'enregistrement sans rechargement.
- Refonte des sections Coordinateur et Charge par classe — design premium, modal d'émargement aligné avec la page attendance-codes.
- Refonte de la situation financière — preview en héros sombre style fiche étudiant, PDF style document formel, boutons d'action sur l'onglet Finances, fallback SVG pour avatar manquant.
- Refonte de la page Personnel — design premium, masquage des rôles selon les permissions, ajout de l'onglet caissier dans l'unifié.
- Optimisations de performance — extraction des constantes de configuration des frais, suppression de l'email hardcodé, fix N+1 dans LMD avec eager-loading approprié.
Corrections
- Fix bulletin LMD moyennes à zéro — incohérence de format de période dans la requête, ajout de
getPeriodeVariants(). - Fix workflow inscription — requirement d'un paiement validé avant validation de l'inscription, alerte sur la page étudiant en cas d'inscription en attente, redirection automatique après validation.
- Fix dashboard pour superAdmin — fond blanc, texte d'avertissement plus doux, AJAX refresh corrigé pour les chargements de classes/enseignants.
- Fix rendering du modal parent — élimination du flash au survol, suppression des transitions, modal customisé remplaçant le modal Bootstrap pour la recherche de parent.
- Fix Select2 dans les modales — z-index 1075, dropdown forcé en bas, dropdownParent body pour échapper à
overflow-y:auto. - Fix bouton « Modifier disponibilité » dans la grille enseignant.
Février 2026
Ajouts
- Système de bulletins enrichi — pondération des semestres pour la moyenne annuelle, persistance des résultats à la génération, sélecteur de style de bulletin, toggle style Abidjan.
- Bulletin par étudiant — modal de coefficients auto-suffisant directement sur la fiche étudiant, sans aller-retour vers une page séparée.
- Refonte des Filières & Niveaux — pills sélectionnables, gestion par filière du niveau dans les liaisons.
- Module Émargement enseignant — badges « À venir », édition en lot, modal de rapport, suivi des heures réalisées, polling des disponibilités.
- Documents administratifs PDF — refonte complète des prévisualisations, paramètres de couleurs configurables, génération via Browserless pour fiabilité, watermarks renforcés, header thématique appliqué aux certificats.
- Génération PDF de feuilles de notes vierges pour saisie manuelle.
- Création rapide d'enseignant depuis la modale de séance de cours.
- Recherche temps réel dans les modales de sélection d'étudiants, classes, matières.
Améliorations
- Refonte du calendrier de disponibilités — édition inline directement dans
add-seance. - Refonte de la modale notes fullscreen + fix de l'erreur 500 sur
quick-createenseignant. - Refonte des stats de présence enseignant + refonte de la page rapport enseignant.
- Refonte de la section « Suivi des heures par matière » sur la page classe.
- Filtres de classes dans le planning + format horaire HH:MM standardisé.
- Modales de gestion étudiants sur la page classe (ajout, retrait, transfert).
Corrections
- Fix bulk-update-status des présences enseignant — utilisation de
url()au lieu deroute()pour éviter le crash quand la route n'est pas en cache sur le serveur. - Fix régénération matricule — application des changements lors de l'édition étudiant.
- Fix matricule auto-generation — récupération des informations depuis l'inscription la plus récente.
Janvier 2026
Ajouts
- Refonte premium de la landing page — design éditorial inspiré de zed.dev, IBM Plex Serif/Sans/Mono, palette bleu KLASSCI sur fond beige, dot grid + texture grain, animations premium (gradient text shimmer, blobs morphing, clip-path text reveal, button pulse, pillar stagger), 9 captures réelles dans le marquee hero, modales de fonctionnalités, dark mode complet, mobile responsive.
- Manager de permissions par rôle — interface dédiée, regroupement des permissions par module, ouverture automatique des groupes, regroupement des rôles dans l'UI.
- Refonte complète du module Notes — workflow par modal, endpoints API dédiés.
- Module Présences enseignants — détail par enseignant, statistiques individuelles, bouton PDF dans le bandeau bulk, accordéon pour l'édition en lot, sélecteurs de temps dans l'embed, confirmations en cas de conflit lors de la génération rapide.
- Édition en lot d'emploi du temps pour les séances avec gestion des conflits enseignants.
- Auto-génération de matricule pour les nouveaux étudiants.
- Coefficients par filière et niveau — application stricte au lieu d'un fallback global.
- Tip d'aide pour l'emploi du temps — modal guide pas à pas.
- Workflow plan-and-confirm — process de validation avant code pour les changements significatifs.
Améliorations
- Déblocage des coefficients moyennes — UX améliorée pour les cas tronc commun.
- Résolution ESBTP-ABIDJAN — matricules MASTER/L3 ajustés, gestion des classes pleines.
- Gestion bulk des disponibilités enseignants — interface dédiée, application en masse.
Dernière mise à jour : 25 avril 2026
