URL: https://linuxfr.org/news/ecole-inclusive-une-application-libre-pour-la-prise-en-charge-des-eleves-en-situation-de-handicap Title: École Inclusive: une application libre pour la prise en charge des élèves en situation de handicap Authors: lovasoa DSMejantel et Ysabeau 🧶 🧦 Date: 2024-03-02T12:23:24+01:00 License: CC By-SA Tags: école, éducation, base_de_données, sqlite, handicap, inclusion et sql Score: 4 Directeur adjoint d’un collège en Occitanie, chargé de la SEGPA et de l’accueil des élèves en situation de handicap, je me suis retrouvé dans une situation où le suivi des élèves et de leurs accompagnants devenait difficile, notamment par manque d’outils adaptés. Loin de me décourager, j’ai créé ma propre application de suivi, *École Inclusive*, en utilisant le cadriciel libre [SQLPage](https://sql.ophir.dev) et la publie aujourd’hui sous licence GPLv3. Ce projet a été possible grâce au support proposé par la documentation en ligne et à de fréquents échanges avec Ophir Lojkine, créateur de SQLPage. Sans aucune connaissance préalable en programmation, j’ai réalisé toute cette application en *SQL*. Cela permet un large panel de fonctionnalités pour _École Inclusive_, qui gère tout le suivi horaire des élèves, des classes et des accompagnants, les emplois du temps, les statistiques, les notifications, l’identification des utilisateurs avec plusieurs niveaux de permission. ![Logo](https://college-bourrillon.fr/sqlpage/logo.png) ---- [Le code source d'École Inclusive sur Github (licence GPLv3)](https://github.com/DSMejantel/Ecole_inclusive) [SQLPage, le framework pour construire des applications en SQL sur lequel s'appuie École Inclusive](https://sql.ophir.dev/) ---- # L’application « École inclusive » ## Une application pour améliorer la prise en charge pédagogique des élèves en situation de handicap Tout a commencé pendant un match de la dernière coupe du monde de rugby, un dimanche soir à une heure déjà tardive. Énième appel à l’arbitre vidéo dans cette compétition. Les données et leur gestion, leur analyse, leur partage, l’aide à la décision. Cette problématique m’a rappelé que, dans le cadre d’une de mes missions, j’étais moi aussi confronté à une vague d’informations pas toujours très claires et toujours plus nombreuses ne rendant pas mes arbitrages très faciles dans la prise en charge des élèves que je suivais. Profitant de cet arrêt de jeu, je tapotais sur le site de Framasoft à la recherche d’une Webapp libre pour la gestion de mes données. C’est ainsi que je laissais les Springboks s’envoler au score et que je fis la connaissance de SQLpage. ## De professeur d’histoire-géo à créateur d’applications ### Un début de carrière déjà marqué par les logiciels libres Le problème à résoudre avant tout, c’est que je ne suis pas un programmeur et que je n’ai suivi aucune formation dans ce domaine. Formé dans les dernières années du XXᵉ siècle au métier de professeur d’histoire-géographie, j’avais intégré l’usage d’outils numériques à mes pratiques dès le départ. Dans le cadre de mes missions de référent numérique dans mon collège, j’avais déjà mis la main à la pâte pour monter un logiciel de traitement de texte collaboratif ([Framapad](https://framapad.org/abc/fr/)) sur un petit serveur privé, installer des logiciels en ligne libres comme [Moodle](https://moodle.com/fr/), [Joomla](https://www.joomla.fr/) ou [Wordpress](https://wordpress.com/fr/), adapter de-ci de-là quelques lignes de PHP ou de CSS. À titre personnel, fervent adepte du libre, je ne travaille plus que sur des versions d’Ubuntu depuis 2005 et il m’arrive d’utiliser régulièrement la ligne de commande. ### Changement de cap Retour au collège. La crise sanitaire est passée par là et les restrictions ne me permettent plus de travailler de manière collaborative entre élèves de niveaux ou de profils différents. C’est notamment le cas pour les travaux par groupes de compétences que j’organisais avec le logiciel libre [Sacoche](https://sacoche.sesamath.net/), projet très actif sur l’évaluation par compétences et l’analyse des résultats des élèves. Mes missions vont alors se diversifier encore et je n’enseigne plus directement depuis l’automne 2020. Toujours dans le même établissement, en raison de la vacance de ces postes, je vais remplir les fonctions de principal-adjoint ou de directeur de SEGPA (Section d’Enseignement Général et Professionnel Adapté pour des élèves ayant des difficultés d’apprentissages importantes). Parmi les dossiers suivis dans ces postes figure la gestion des « pôles inclusifs d’accompagnement localisé » (PIAL) et de leur AESH, les Accompagnants d’Élèves en Situation de Handicap. Le sujet de l’École Inclusive pour tous les élèves ayant besoin d’aménagements est ainsi devenu un axe majeur dans mon implication sur notre collège. Avec des élèves toujours plus nombreux… ### Rentrer dans une nouvelle logique Et cette année, j’ai rajouté une corde à mon arc en m’essayant à la programmation d’applications. Pendant les quelques minutes où les directeurs de jeu visionnaient l’action au ralenti, j’ai concentré ma réflexion sur trois points importants, sur trois arbitrages plus personnels : #### Quelles devront être les grandes fonctions de la nouvelle application ? Je cherchais avant tout un outil qui fournisse des informations claires et précises en m’échappant des documents de tableur reçus tous les mois avec des actualisations ou des suppressions, des erreurs possibles, de transcription de nom, des propositions de responsables impossibles à respecter et surtout des données non croisées avec la réalité du terrain. Des collègues avaient tenté de revenir au classeur papier avec un côté élève et un autre adulte. Mais tout changement d’un côté demandait la même charge de travail de l’autre. #### Qui s’y connectera ? Si à l’origine j’envisageai un usage mono-utilisateur avec un outil hors-ligne, la possibilité d’avoir un outil collaboratif avait son charme et une utilité justifiée pour suivre les différents besoins de nos élèves. Je n’oublie pas non plus le sentiment de frustration en tant que professeur quand – au début des inclusions dans les années 2000 – j’accueillais des élèves en situation de handicap sans avoir suffisamment de précisions ou de solutions d’aides à ma disposition. Élargir la communauté d’utilisateur n’est pas un sujet à exclure. #### Comment ça marche ? Je devais pouvoir croiser plusieurs données qui ne se recouvraient qu’en partie : celles reçues via les parents d’élèves notifiés par la MDA-MDPH (Maison De l’Autonomie – Maison des Personnes Handicapées), celles transmises par les services de la DSDEN (Direction des Services De l’Éducation Nationale), avec nos informations ou décisions internes provenant de plusieurs coordonnateurs. Au vu de l’augmentation incessante des demandes et des aménagements attribués, un outil puissant et numérique ne pouvait être que la solution pour éviter des erreurs et rationaliser les suivis. En quelques clics Framasoft me suggérait SQLpage. ## Un besoin au tout début : le suivi de l’aide humaine dans le cadre des PIAL * **Qu’est-ce que le PIAL ?** Cela correspond pour nous à une zone géographique avec des écoles primaires urbaines et rurales, un collège et deux lycées. À la dernière rentrée de septembre 2023 cela représente 85 élèves et 42 accompagnants. * **Les accompagnants**, terme que je préfère à l’acronyme AESH ou AVS, sont devenus des pièces essentielles à la bonne scolarisation d’élèves toujours plus nombreux. Sur notre collège de 700 élèves, 12 accompagnants interviennent. Certains ont une quotité de travail de 35h mais les plus récents n’ont des contrats que de 24h. Deux d’entre eux exercent une partie de leur mission sur un lycée ou sur une école. * **Leurs missions.** Ils aident les élèves dans leurs apprentissages mais parfois pour des actes de la vie quotidienne ou sociale (repas, toilette, relations sociales…). Ils suivent en général plusieurs élèves, de 2 à 4, individuellement ou de manière mutualisée quand les élèves à besoin ont pu être placés dans la même classe. La plupart des élèves du PIAL font la totalité de leur temps scolaire sur une classe de référence avec un accompagnement qui ne cible que quelques matières. Les AESH positionnés sur les dispositifs ULIS peuvent suivre sur la semaine la totalité des élèves de leur groupe : 10 maximum d’après les textes, de 13 à 15 en réalité. Les élèves de ces dispositifs ont une scolarité partagée entre la classe de référence et l’enseignement d’un coordonnateur de l’ULIS. * **Comment sont attribuées les aides ?** Toutes les notifications d’aménagements ou accompagnements attribués en compensation d’un handicap sont issues d’un long parcours administratif de plusieurs mois. Ce délai qui part du dépôt de la demande par la famille se termine par une commission qui a pris l’avis de professionnels du monde médico-social et de l’éducation. Dans notre collège 84 élèves ont une notification MDPH, pas nécessairement un accompagnant. Cela représente 1 élève sur 8. Si l’on ajoute les autres dispositifs d’aides attribués en interne ou par la médecine scolaire nous arrivons à 1 élève sur 4 soit 6 élèves par classe en moyenne. ### Le suivi #### Quelles données est-il utile de rassembler ? Au-delà des données basiques d’identification des élèves, il est important de noter la nature des aménagements (AESH, ULIS, Ordinateur, etc.), la date de fin d’attribution et le nom de l’enseignant-référent auprès de la MDPH. Ensuite, nous devons relier l’élève à un (ou plusieurs dans quelques cas) accompagnants sur un certain nombre d’heures. De plus, au début de l’année les coordonnateurs des ULIS ou du PIAL donnent des conseils de mise en œuvre des aides et des objectifs progressifs à atteindre. Ces éléments peuvent être réactualisés régulièrement. #### Pourquoi enregistrer ces données ? Les premières données sont indispensables pour programmer des réunions de suivis et de renouvellement dans les temps. Les suivantes ont tout leur intérêt pour donner du sens et du contenu à l’accompagnement. En cas de remplacement ponctuel d’un AESH, on pourrait ainsi facilement lui transmettre les informations essentielles. Enfin dans un cadre plus administratif, les services de l’Éducation Nationale nous contactent afin de vérifier que les accompagnants sont bien sollicités à la hauteur de leur quotité de travail et pour des statistiques comparant les aides individuelles ou mutualisées. Cela permet aussi de motiver des demandes de recrutement. ### Un modèle de gestion à perfectionner… #### Comment se faisait le suivi avant la création du nouvel outil ? Pendant trois ans, les coordonnateurs du PIAL mettaient à jour un lutin[^1] avec les emplois du temps élèves et ceux des accompagnants. Mais aussi, quand on les recevait, les notifications de la MDPH ; en effet, ce n’est pas automatique voire souvent non autorisé par certains inspecteurs. Ces derniers préférant que l’information soit donnée par les parents, ce qui n’est pas toujours le cas et ce qui ne permet pas d’anticipation des besoins. #### Quelles étaient les limitations ? Si la mise à jour d’emploi du temps peut se faire régulièrement dans le classeur, la diffusion de l’information auprès de l’ensemble des acteurs n’est pas forcément rapide quand il y a plusieurs acteurs pédagogiques dans le suivi. Enfin, si une gestion classique peut suffire sur de tous petits effectifs, elle ne permet pas de vue d’ensemble dès que l’on atteint des effectifs d’élèves et d’AESH importants et elle ne permet pas de rationaliser certaines aides. Transmettre rapidement des informations précises restait un défi dans le cas de remplacements de dernière minute. Un détail qui a également son importance, la fonction de pilotage et de coordination du PIAL reste une mission qui s’ajoute aux tâches de sa fonction d’origine. Cela est rémunéré à hauteur d’une indemnité correspondant très rarement au temps réellement passé sur cette gestion de plus en plus lourde. Comme dans l’exemple de notre arbitre, avoir un outil moderne, réactif, croisant les regards ne peut qu’être la solution ! #### Pourquoi cela n’existe-t-il pas ? J’ai débuté comme enseignant l’année où le ministre de l’Éducation Nationale comparait notre institution à un mammouth. Nous avons (souvent) changé de dirigeant mais pas forcément de rythme. Et j’ai parfois l’impression que nous n’avançons pas très vite. J’ai posé la question en 2020 et l’on m’a répondu qu’un logiciel était en préparation pour la gestion des AESH. Depuis, rien. Cela bouge un peu côté suivi des élèves avec le Livret de Parcours Inclusif. J’ai bien vu un menu apparaître dans notre Intranet mais aucune directive ne nous est parvenue pour l’activer. La MDPH devrait pouvoir nous communiquer les notifications via cette interface, en contradiction d’ailleurs avec les recommandations actuelles. Depuis octobre dernier, rien de plus. Cela reste une coquille vide… ### SQLPage : créer une application web rapidement sans expérience de développeur web ### Principes généraux de SQLPage J’ai tout de suite été séduit par l’idée de pouvoir me concentrer sur les données et sur la personnalisation de leur traitement sans avoir à perdre du temps sur de la mise en page. SQLpage fonctionne comme un petit serveur web. Le binaire de l’application pèse un peu moins de 20 Mo. Quant aux fichiers créés, l’ensemble reste vraiment très léger #### Un outil pertinent pour créer « école inclusive » Maitriser ses propres données et avoir le choix dans la mise en relation et l’affichage des informations me semblait primordial. De plus SQLpage apparait être un outil léger dont on peut utiliser plusieurs briques au choix suivant ses besoins. Et, en tant qu’adepte du logiciel libre, le fait de pouvoir utiliser un programme ouvert, avec une communauté naissante et active correspondait bien à ma philosophie. Détail important à mes yeux, pouvoir retrouver ses données en cas de changement de support à l’avenir était plutôt rassurant. En effet les données stockées dans un fichier de base de données peuvent être facilement exportées au format tableur. #### Un SQLpager averti en vaut deux Comme je vais le détailler dans la partie suivante, s’engager sur SQLpage ne s’est pas révélé aussi simple que cela pour quelqu’un qui n’est pas habitué à coder et qui ne maitrise pas le langage SQL. Ceci dit, je ne regrette pas d’avoir franchi le cap et cela m’a permis de me familiariser avec la plateforme github et de faire d’indéniables progrès tant dans le langage SQL, très accessible au demeurant, que dans la langue de Shakespeare. Si on est prêt à perdre un peu de son temps sur la documentation de SQLpage et quelques tutoriels sur le SQL, on gagne en rapidité de codage par la suite… ## Création de l’application ### Les grandes étapes du développement #### Principales fonctionnalités et rythme de développement Lorsque j’ai suivi le lien de Framasoft, je m’attendais à trouver un logiciel avec une interface utilisateur qui permette par glisser déposer de construire des formulaires, un peu sur le modèle d’extensions que j’avais parfois utilisées sur Joomla ou Wordpress. Se retrouver devant un dossier avec un fichier nommé index.sql à rédiger soi-même est plutôt déstabilisant quand, comme moi, on ne maitrise pas le langage SQL. J’ai testé pendant deux jours en fonctionnant par copier-coller depuis la documentation ou depuis les exemples mis à disposition sur Github. Mon inexpérience dans le domaine du codage et ma connaissance de l’anglais sommaire dans ce domaine ont failli me pousser à abandonner SQLpage très rapidement. Heureusement, j’ai trouvé ce tutoriel dans la langue de Molière : [Écrire une appli web en une journée avec SQLPage *(publié sur linuxfr)*](https://linuxfr.org/news/ecrire-une-appli-web-en-une-journee-avec-sqlpage). Il m’a permis de bien comprendre les rudiments à la fois du langage SQL et du fonctionnement de SQLpage. Après ces deux jours de tâtonnements, je me suis donné quatre semaines pour parvenir à un logiciel basé autour de trois pages principales en SQL, une pour recenser les élèves, une autre pour leurs accompagnants et une dernière pour mettre en relation les notifications et aménagements accordés. En ne travaillant qu’à temps perdu, c’est-à-dire très tard le soir ou très tôt le matin, j’ai pu parvenir en deux semaines à un premier logiciel, encore imparfait mais répondant à une grande partie du cahier des charges que je m’étais fixé. Pour cela, je me suis appuyé principalement sur des fonctionnalités de base comme les composants [`form`](https://sql.ophir.dev/documentation.sql?component=form#component) pour insérer des informations via un formulaire, et [`list`](https://sql.ophir.dev/documentation.sql?component=list#component), [`card`](https://sql.ophir.dev/documentation.sql?component=card#component) ou [`table`](https://sql.ophir.dev/documentation.sql?component=table#component) pour afficher les données et [`csv`](https://sql.ophir.dev/documentation.sql?component=csv#component) pour les exporter. On se prend au jeu et on progresse très vite. Il est possible de voir très rapidement le résultat de ses requêtes et d’affiner les composants à utiliser ainsi que leurs paramétrages. Pour un débutant, comme pour un programmeur plus chevronné, on apprécie grandement l’interprétation des erreurs de code éventuelles que ce soit dans la syntaxe SQL (Ah, les virgules oubliées par-ci par-là !) ou dans la mauvaise utilisation des composants de SQLpage… La mise en place de mon projet s’est déroulée en parallèle d’une phase de développement intense de SQLpage avec une version nouvelle par semaine et une documentation enrichie au même rythme. Plusieurs nouvelles fonctionnalités sont ainsi venues enrichir le code d’École Inclusive. Au bout de quatre semaines, je tenais un logiciel fonctionnel, enrichi par des composants mis à jour comme [`map`](https://sql.ophir.dev/documentation.sql?component=map#component), [`datagrid`](https://sql.ophir.dev/documentation.sql?component=datagrid#component) ou nouveaux comme [`button`](https://sql.ophir.dev/documentation.sql?component=button#component). Entre-temps, j’ai opté pour une version en ligne du logiciel et des données. Cela m’a obligé à me pencher sur les composants [`authentication`](https://sql.ophir.dev/documentation.sql?component=authentication#component) et [`cookie`](https://sql.ophir.dev/documentation.sql?component=cookie#component). Huit semaines après ma découverte de SQLpage, je pouvais déployer une version aboutie, collaborative et en ligne via un protocole HTTPS grâce à [la version majeure 0.17 de SQLpage](https://sql.ophir.dev/blog.sql?post=SQLPage%20v0.17). #### Comment est structurée l’application ? La **structure de la base de données**, c’est l’étape la plus importante avant de débuter le codage. Même s’il reste possible de modifier, rajouter des tables ou des champs en cours de projet, établir un schéma clair et détaillé de la structure des données utiles aide à anticiper la construction future du logiciel. Pour ma part, j’avais besoin de plusieurs tables pour respectivement les élèves, les accompagnants, les enseignants-référents, les établissements scolaires, les notifications, les aménagements et enfin une pour rassembler les suivis. Cela se calquait sur le fonctionnement classique des procédures. Au fil de l’avancée du projet, j’ai ajouté des tables pour gérer les utilisateurs et leurs sessions. Et afin de faciliter la gestion des notifications ou aménagements, j’ai construit deux tables "many to many" pour enregistrer de manière plus lisible les notifications multiples (par exemples AESH et Matériel pédagogique) ainsi que les pluri-dispositifs qui peuvent en découler (comme SEGPA et AESH). Cette étape a bénéficié du développement du composant 'form' et de sa fonction multi-select. Enfin, j’ai créé des tables supplémentaires pour pouvoir utiliser les fonctions 'upload' du composant 'form' et stocker des fichiers images contenant des photos des élèves et les emplois du temps de chaque accompagnant. ![Schéma de la base de données d’École Inclusive](https://github.com/DSMejantel/Ecole_inclusive/assets/552629/1a41bd57-f904-4e5e-a0f1-7df648e37b98) ## Une interface utilisateur simplifiée Le principal avantage de SQLpage est de pouvoir se focaliser sur le travail de codage du contenu sans se soucier de la mise en page. Pas de temps perdu sur des fichiers css ou html pour organiser la présentation, ceci est délégué à SQLpage qui propose une mise en forme par défaut pour chaque composant. Ceci est très appréciable et le rendu est sobre et élégant dès le début de la construction du projet. Au niveau de la charte graphique d’*École Inclusive*, j’ai choisi d’avoir un menu horizontal en haut de page pour accéder aux pages consacrées à chaque catégorie d’acteurs. L’autre choix a été sur le code couleur où j’ai opté pour des tonalités vertes et orange. ![page_Classes](https://github.com/lovasoa/SQLpage/assets/552629/c02a047e-5ec4-4468-85ba-8c3a60deeef0) Au fur et à mesure de l’avancement du logiciel et de son enrichissement en fonctionnalités, j’ai prévu d’autres outils de navigation. Si au départ je m’étais focalisé sur des onglets, qui renvoient en réalité sur des pages différentes. Il est possible d’utiliser des variables et de construire un système d’onglet sur un seul et même fichier sql. Le composant `button` a grandement facilité la tâche. Ceci d’autant plus que l’on peut générer des boutons de façon dynamique. Ainsi, je peux avoir des listes de boutons qui reprennent l’ensemble des classes ou des dispositifs créés pour chaque collège ou lycée du PIAL. Vers la fin du projet, j’ai mis en place l’appel à un menu stocké dans un fichier json ce qui évite d’avoir à modifier le composant shell sur chacune des pages, ce qui est - pour l’avoir testé à mes dépens - une tâche très fastidieuse. ### Un code puissant et dynamique La seule limite à l’interface et au codage est celle de notre imagination, en effet SQLpage m’a permis de mettre en œuvre chacune de mes idées à chaque fois que je cherchais à améliorer les fonctionnalités « d’École Inclusive ». Ainsi d’une structure prévue sur 4 fichiers sql je suis passé à une structure de 94 fichiers dans la version actuelle. Maintenant que je maîtrise mieux SQLpage, je pense qu’il serait possible de réduire le nombre de pages, mais, dans ma découverte du code à mes débuts, il était plus facile d’écrire des pages plus courtes. En s’appuyant sur la documentation en ligne, il est facile d’utiliser les composants de bases pour rentrer les données et les afficher sous forme de listes, de tables (avec fonction de recherche) ou de cartes (avec l’ajout d’images ou de photos) de manière dynamique en étant redirigé vers un contenu spécifique grâce à l’écriture de requêtes sur une variable comme l’id d’un élève ou d'un établissement scolaire ou d’une classe. ![page_Eleve_ajout](https://github.com/lovasoa/SQLpage/assets/552629/726a693f-1434-48a7-a4b1-85c60efb2fe2) ![page_Eleve](https://github.com/lovasoa/SQLpage/assets/552629/4e9dcc41-ea55-45a8-a3de-af03ff7da5f6) Ce qui m’a demandé davantage de réflexion a été de me lancer dans l’édition et la modification de données existantes. Depuis une icône présente sur une ligne de données d’un tableau, je voulais pouvoir, suivant les cas, éditer ou supprimer une entrée. J’avoue qu’il m’a fallu quelques jours pour arriver à un résultat correct pour dans l’ordre : afficher le formulaire, appeler les données concernées et lancer une mise à jour de la table dans la base. Pour cela j’ai contourné certaines difficultés en faisant appel à des variables afin de stocker certaines données et les réutiliser plusieurs fois sur la page, par exemple pour créer des liens dynamiques. Dans les tables, j’ai souhaité mettre en évidence des situations demandant une vigilance comme une date d’expiration de notification proche de l’échéance ou l’ayant dépassée ou une fiche incomplète. Il est possible de mettre en place des conditions pour jouer soit sur la couleur d’une ligne soit sur l’affichage d’une icône particulière. Enfin, la sécurisation du site dans le cadre d’une authentification avec des droits d’accès, des codes d’activation et des mots de passe forts a demandé une réflexion plus poussée et l’aide du concepteur de SQLpage. ### Les points techniques intéressants #### Les fonctionnalités de sqlpage utilisées Au-delà des fonctionnalités alliant formulaires et données en liste ou en tableau, SQLpage offre des possibilités puissantes à la fois sur le plan fonctionnel et sur le plan esthétique. Ainsi, il est possible de générer un trombinoscope ou des fiches de synthèse des élèves de chaque AESH. Cela se base sur le composant 'card' qui permet une présentation claire et concise des informations. Le composant 'map' permet de situer chaque établissement scolaire, de différencier par des icônes les différents types de structures et bien évidemment de créer un lien vers leur page respective. La visualisation des données sous forme de graphiques avec le composant 'chart' est un des points que je voulais pouvoir afficher pour analyser le temps de suivi de chaque élève et la répartition des missions des AESH. ![page_AESH](https://github.com/lovasoa/SQLpage/assets/552629/1d5181d0-d51d-45a4-8b1a-a8c13bdd6975) ![page_AESH_2](https://github.com/lovasoa/SQLpage/assets/552629/426ba2a6-3da3-4a85-9b91-78fbcb10c0bd) En termes d’import/export, SQLpage permet de récupérer le résultat de requêtes sous forme de fichiers au format csv avec un composant dédié. L’importation à travers le composant 'form' autorise des envois de fichiers uniquement ou des traitements par lots comme dans le cas d’importations d’utilisateurs. Enfin, les composants 'autenthication' et 'cookie' sont très efficaces pour mettre en place un site sécurisé. Dernier point fondamental dans le cadre de la sécurisation des données, SQLpage qui reste un mini-serveur web supporte directement le protocole https. #### Publication en open-source Un simple outil comme SQLpage permet ainsi de développer relativement facilement des applications en open-source qui sont facilement fonctionnelles et attrayantes d’un point de vue graphique. De plus, l’ensemble logiciel, fichiers et base de données reste très léger et l’affichage des pages est instantanée même dans le cas de requêtes complexes. ## Réception de l’application ### par les services de l’Éducation Nationale L’École Inclusive me parait naturellement devoir se pencher sur le suivi des élèves. Aussi ai-je fait part rapidement de mon projet aux enseignants-référents qui suivent les dossiers des élèves sur l’ensemble du département. Ils ont été séduits par l’idée car, eux aussi, font face à une échelle encore plus vaste à l’augmentation du nombre d’enfants à besoins particuliers. Intégrer leur rôle dans l’application était une évidence car ce sont eux qui programment et dirigent les réunions de suivis de la scolarité. Chaque début d’année, nous organisons une rencontre pour croiser nos données qui peuvent être parfois divergentes quant à des dates de fin de notification ou des aménagements multiples. Mais les services de l’École Inclusive revêtent également des aspects administratifs à travers le déploiement et la gestion des accompagnements humains. Je suis rentré en contact avec les services administratifs de la DSDEN de la Lozère. L’accueil du logiciel (encore en version de test) a été bon, notamment sur son volet administratif avec les possibilités de quantifier en heures les accompagnements et la différenciation entre les accompagnements individuels ou mutualisés mais aussi sur son volet de traitement et de croisement des bases de données élèves et AESH. ### par les collègues Dans notre collège, où plusieurs dispositifs coexistent et où un quart des élèves bénéficient d’un aménagement particulier, nous avions l’habitude depuis trois ans de distribuer une fiche A4 par classe avec la liste des élèves et trois colonnes recensant de manière synthétique le constat des difficultés, les aménagements et les objectifs. La mise à jour du tableur était complexe avant la rentrée ou en cours d’année. Certains renseignements sur les suivis manquaient sans parler des oublis ou petites erreurs d’actualisation ou problèmes de mise en page qui pouvaient se glisser dans les listes. Aussi, proposer à tous les coordonnateurs de dispositifs un outil en ligne, collaboratif, plus complet et toujours à jour les a convaincus immédiatement. Sans tutoriel, ni formation, la prise en main a été très facile du fait de la navigation simplifiée et très intuitive. En moins de trois semaines, l’ensemble des fiches de 184 élèves a été mis à jour. Cela a permis d’avoir un retour constructif de mes collègues et de recueillir des suggestions pour améliorer le logiciel. L’ajout d’une icône pour ajouter un premier aménagement, masquer des onglets inutiles pour des élèves sans accompagnement, la création d’un champ précisant le rôle de l’accompagnant ou encore l’import des emplois du temps des AESH. Le logiciel a été testé lors de remplacements d’AESH, dans un premier temps en faisant des captures d’écran des pages des consignes de suivis puis avec un compte actif pour une AESH. Cela s’est révélé très pratique et très facile d’utilisation. Il reste à franchir le pas de l’ouverture à l’ensemble des équipes pédagogiques et cela sera facilité par les récentes fonctionnalités d’importation permise par SQLPage. ## Le futur de l’application École Inclusive ### évolutions techniques envisagées Pour répondre à une utilisation pratique pour tous et plus particulièrement pour les enseignants, une sortie au format PDF pour chaque classe permettrait une diffusion claire aux équipes pédagogiques. Une gestion plus fine des droits avec un mode d’édition intermédiaire est à envisager pour que chaque professeur principal puisse intervenir sur les informations des élèves de sa classe. ### Vers un déploiement de l’application dans un cadre légal… La mise en ligne d’École Inclusive sur un serveur reste une démarche relativement simple chez un hébergeur qui offrirait une solution dédiée ou virtualisée. Il est possible de déployer un serveur Linux sur lequel on lance SQLpage comme service. Pour une utilisation sur un seul établissement et par un seul coordonnateur, 'École Inclusive' peut tourner hors-réseau sur différents systèmes d’exploitation. Pour rester dans un strict cadre légal, il faut que le logiciel soit déployé sur une machine ou un hébergement pris en charge par l’Éducation Nationale. ### … et dans le respect des données privées Les services du Rectorat chargés de la Protection des Données nous accompagnent dans cette démarche afin de respecter les préconisations de la CNIL. Le type de données utilisé par le logiciel ne pose pas de problème. Pour les utilisateurs de l’application dont des données personnelles sont conservées dans la base de donnée, il faut prévoir un droit de regard et de rectification conformes au standard du RGPD. Mais, rappelons que cet outil permet déjà une gestion des droits à plusieurs niveaux en tant qu’administrateur, éditeur ou consultant. Dans ce dernier cas, certaines données comme les numéros de téléphone personnels sont masqués. ### Vers un élargissement de l’utilisation à d’autres établissements ? Le logiciel 'École Inclusive' va être présenté mi-mars aux chefs d’établissements publics de Lozère (13 collèges et 3 lycées). Cette démarche trouve sa pertinence dans le fait que les PIAL regroupent plusieurs établissements et que les enseignants-référents sont déployés à l’échelle du département. Cependant il sera difficile de mettre en concurrence cette application avec le Livret de Parcours Inclusif quand il sera un jour opérationnel. École Inclusive devra peut-être se recentrer sur la gestion des accompagnants et sur le suivi horaire dans une optique plus administrative que pédagogique. Mais il faut noter une plus grande souplesse et une saisie plus simple et plus directe dans École Inclusive qui ne se limite pas aux situations classiques des PPRE, PAP et Gevasco mais qui peut s’adapter à la physionomie des établissements. Chaque accueil réalisé dans la structure peut être suivi avec par exemple les élèves inclus venant d’établissements médico-sociaux, les élèves allophones, les PAI pour situations médicales… En conclusion, le plus important n’est pas l’arrivée mais la quête. Celle qui m’a conduit à me poser des questions et à construire École Inclusive dans l’intérêt des élèves à besoins particuliers et des membres des équipes éducatives qui les suivent. Cette application est disponible en open-source sur Github (https://github.com/DSMejantel/Ecole_inclusive). Elle reste encore en évolution et elle se perfectionne au fur et à mesure de l’apparition de nouvelles fonctionnalités de SQLpage. Elle demeure très perfectible : code et interface pourront évoluer en fonction des retours des utilisateurs et de mes progrès en programmation… Pour cela SQLpage reste un allié puissant et très didactique dans les exemples de sa documentation. ### Exemple de code: affichage du profil d’un élève dans l’espace AESH ```sql -- Résumé de suivis des élèves SELECT 'card' AS component, 4 AS columns WHERE $tab = 'Profils'; SELECT eleve.nom || ' ' || eleve.prenom || ' (' || eleve.classe || ') ' AS title, 'green' AS color, CASE WHEN EXISTS (SELECT eleve.id FROM image WHERE eleve.id = image.eleve_id) THEN image_url ELSE './icons/profil.png' END AS top_image, COALESCE('Mission de l''AESH : ' || suivi.mission, 'non saisi') AS description, group_concat(DISTINCT dispositif.dispo) AS footer, '[ ![](./icons/list-check.svg) ](notification.sql?id=' || eleve.id || '&tab=Profil) [ ![](./icons/user-plus.svg) ](notification.sql?id=' || eleve.id || '&tab=Suivi)' AS footer_md, 'notification.sql?id=' || eleve.id || '&tab=Profil' AS link FROM eleve INNER JOIN affectation ON eleve.id = affectation.eleve_id LEFT JOIN amenag ON amenag.eleve_id = eleve.id JOIN dispositif ON dispositif.id = affectation.dispositif_id JOIN etab ON eleve.etab_id = etab.id JOIN suivi ON suivi.eleve_id = eleve.id LEFT JOIN image ON eleve.id = image.eleve_id JOIN aesh ON suivi.aesh_id = aesh.id WHERE aesh_id = $id AND $tab = 'Profils' GROUP BY eleve.id ORDER BY eleve.nom ASC; ``` ![carte_eleve](https://github.com/lovasoa/SQLpage/assets/552629/06a4440f-cf2a-4ec4-91ae-e7631eb5a552) Cet élément fait partie de la page du profil d’un AESH. Dans un premier paragraphe, on appelle le composant 'card' avec ses paramètres. Ici, il y aura quatre cartes affichées par ligne si l’on se trouve sur l’onglet nommé « Profils ». Ensuite on trouve le contenu de chaque fiche élève. Son identité et sa photo si elle existe dans la base ; cela est déterminé par le `CASE WHEN`. Dans le cas inverse une image par défaut est affichée. Si le rôle de l’AESH a été renseigné, il est affiché en dessous. Puis viennent les dispositifs d’aide auxquels l’élève est rattaché. Enfin, trois icônes renvoient vers différents onglets de la fiche personnelle de l’élève. Cet affichage est dynamique et s’adapte au profil de chaque AESH comme le définit la condition `WHERE aesh_id=$id`. Le contenu de la fiche va piocher les différentes informations dans les tables. Exemple d’alertes et d’informations personnalisées ```sql -- Liste des notifications SELECT 'table' as component, 'actions' as markdown, 1 as sort, 1 as search; SELECT eleve.nom as Nom, eleve.prenom as Prénom, notification.Departement as Dpt, group_concat(DISTINCT modalite.type) as Droits, etab.nom_etab as Établissement, strftime('%d/%m/%Y', datefin) AS Fin, CASE WHEN notification.datefin < datetime(date('now', '+1 day')) THEN 'red' WHEN notification.datefin < datetime(date('now', '+350 day')) THEN 'orange' ELSE 'green' END AS _sqlpage_color, coalesce('[ ![](./icons/user-plus.svg) ](aesh_suivi.sql?id=' || suivi.aesh_id || '&tab=Profils)', '[ ![](./icons/user-off.svg) ]()') AS actions, '[ ![](./icons/briefcase.svg) ](notification.sql?id=' || eleve.id || '&tab=Profil)' as actions FROM notification INNER JOIN eleve on notification.eleve_id = eleve.id LEFT JOIN suivi on eleve.id = suivi.eleve_id LEFT join notif on notif.notification_id = notification.id LEFT join modalite on modalite.id = notif.modalite_id JOIN referent on eleve.referent_id = referent.id JOIN etab on eleve.etab_id = etab.id Where referent.id = $id GROUP BY notification.eleve_id ORDER BY eleve.nom ASC; ``` ![Tableau de suivi par référent](https://college-bourrillon.fr/sqlpage/page_Referent.png) Cet élément fait partie de la page du profil d’un enseignant-référent de la MDA-MDPH. Dans un premier paragraphe, on appelle le composant `table` avec ses paramètres. On trouve le formatage d’une colonne en markdown et les options de recherche et de tri qui sont activées. Ensuite on trouve le contenu de chaque ligne avec l’élève dont le dossier est suivi par ce référent. Afin de planifier avec lui les priorités pour les dates de réunions de suivi, il est possible d’attribuer une couleur de ligne en fonction de la date de fin de notification avec : `CASE WHEN notification.datefin < datetime(date('now', '+1 day')) THEN 'red' WHEN notification.datefin < datetime(date('now', '+350 day')) THEN 'orange' ELSE 'green'` De même les icônes sont personnalisables pour indiquer si l’élève bénéficie d’un AESH ou non. Et bien sûr des liens permettent de passer sur la fiche de l’élève ou de son AESH. Licence de l’article: [CC0](https://creativecommons.org/publicdomain/zero/1.0/) [^1]: [NDM] : lutin est le nom d’une marque de protège-documents à pochettes en plastique, par extension celui des protège-documents similaires d’autres marques.