Gestion Informatisée Pour l'Enseignement
GIPE est l'outil de Gestion Informatisée Pour l'Enseignement qui soutient l'activité pédagogique de l'école ENSM-BPN. Le projet s'inscrit dans une dynamique de transformation numérique de l'enseignement de la Marine, avec des leviers comme l'amélioration de la traçabilité pédagogique, la facilitation du pilotage des formations et la rationalisation des outils métiers.

À mon arrivée, l'application était en cours de refonte afin d'améliorer la gestion des droits ainsi que l'intégration de plusieurs écoles. J'ai alors proposé à ma responsable de séparer le back-end du front-end. Cette idée a été bien accueillie, et le contexte s'y prêtait particulièrement, ce qui nous a conduits à engager une refonte complète du logiciel.




Gestion de l'application
Afin de reprendre le projet dans de bonnes conditions, nous l'avons restructuré en deux services distincts : un site web et une API. Cette séparation nous a permis de mieux comprendre l'architecture de l'application et d'envisager son évolution, notamment en facilitant le développement futur d'autres applications pouvant s'y connecter.
Dans un premier temps, avec cette nouvelle configuration, nous avons consacré plusieurs heures à concevoir un système modulable pour la gestion des groupes, ainsi qu'une méthode plus efficace pour administrer les rôles au sein de l'application.
Pour y parvenir, je me suis appuyé sur différentes solutions avec lesquelles j'avais déjà travaillé, et nous avons retenu cette approche. Nous avons ainsi mis en place une table « Permissions », directement exploitée dans le code, puis défini des rôles regroupant plusieurs de ces permissions.
Nous avons ensuite associé les rôles créés soit à des groupes, soit à des utilisateurs individuels via un système d'affectation. Cela nous a permis de développer une application dotée d'un système suffisamment modulable pour répondre aux besoins de notre école, et potentiellement à ceux d'autres établissements.
Gestion des personnes
Au sein de l'application, j'ai principalement contribué à la mise en place de la gestion des groupes et des rôles, mais également au développement complet du module de gestion des personnes : création, modification et assignation à des groupes. Pour cela, je me suis appuyé en partie sur l'ancienne version du système afin d'en analyser le fonctionnement et d'identifier précisément les besoins métiers, tout en veillant à moderniser et structurer davantage l'architecture existante.
L'une des principales étapes a consisté à établir une liaison avec l'annuaire militaire. Cette intégration a représenté un défi important, puisque nous travaillions sur un réseau isolé, non directement connecté à celui de l'annuaire. J'ai donc dû concevoir un mécanisme d'échange et de synchronisation fiable, en réalisant de nombreux tests entre les environnements de développement et de préproduction. Après plusieurs phases de validation, l'intégration s'est révélée concluante, permettant la création de nouvelles personnes ainsi que l'importation et la mise à jour d'individus déjà présents dans l'annuaire.
J'ai ensuite développé les fonctionnalités de modification des profils enregistrés. Cela inclut la mise à jour des informations professionnelles et personnelles, la gestion des véhicules associés, ainsi que le suivi des affectations. Une attention particulière a été portée à la cohérence des données, à la traçabilité des modifications et au respect des règles RGPD afin de garantir un système fiable, évolutif et conforme aux exigences opérationnelles.




Mise en place des librairies
En raison de notre environnement en réseau fermé, nous devons gérer notre propre registre de paquets, notamment pour NPM et Composer. Dans ce contexte, nous utilisons JFrog comme solution de gestion des artefacts.
Nous avons donc entrepris une remise à plat complète de notre registre existant. Cela a impliqué une phase d'exploration et de compréhension de l'outil, notamment en raison d'un manque de documentation interne. Ce travail nous a permis de mieux structurer notre registre et d'optimiser nos processus d'installation et de gestion des dépendances.
Gestion de la base de donnée
Dans ce projet, nous utilisons une base de données MariaDB pour assurer la gestion et la persistance des données. Compte tenu du contexte, nous manipulons un volume important de données issues de reprises existantes, ce qui impose un niveau d'exigence particulièrement élevé en matière d'intégrité.
Ainsi, la majorité des opérations de création et de modification de structure (tables, schémas, relations) est réalisée via des requêtes SQL écrites et maîtrisées manuellement. Cette approche nous permet de garder un contrôle précis sur chaque changement appliqué à la base de données.
L'objectif est de garantir qu'aucune donnée ne soit altérée ou perdue lors des différentes phases de migration ou d'évolution. Chaque intervention est donc pensée, testée et sécurisée en amont afin d'assurer la fiabilité et la continuité des données.


Mise en ligne
Actuellement, la mise en production repose sur un environnement IIS hébergé sur Windows Server. Toutefois, une migration vers une infrastructure cloud, basée sur une machine Linux, est prévue à moyen terme afin de bénéficier d'un environnement plus flexible et mieux adapté aux standards actuels.
Néanmoins, cette transition s'avère complexe, notamment en raison d'un manque important de documentation sur l'existant et sur les étapes nécessaires à la migration. Cette situation rend le processus plus risqué et demande un travail d'analyse approfondi avant toute mise en œuvre.
Par ailleurs, les contraintes de planning et les délais du projet nous imposent de prioriser la stabilité et la livraison des fonctionnalités attendues. Dans ce contexte, il est actuellement plus pertinent de conserver l'infrastructure existante, tout en préparant progressivement la migration vers une solution Linux plus pérenne.
Autres fonctionnalités ajoutées à l'application
