Rapport de lancement du stage

Faculté de Pharmacie de Limoges

Structure d'accueil

La Faculté de Pharmacie de Limoges, composante de l’Université de Limoges, est située sur le campus Marcland. Elle se distingue par son cadre à taille humaine, qui offre un environnement d’apprentissage favorable à l’épanouissement des étudiants. Ce climat de proximité favorise les échanges avec les enseignants-chercheurs, tout en offrant une qualité d’enseignement reconnue.

L’établissement propose une offre de formation diversifiée et adaptée aux évolutions du secteur pharmaceutique. De la préparation au DEUST (Diplôme d’Études Universitaires Scientifiques et Techniques) jusqu’aux diplômes de master, la faculté forme les futurs professionnels aux différents métiers de la pharmacie : officine, pharmacie hospitalière, industrie pharmaceutique, ou encore recherche académique. Les enseignements sont complétés par des travaux pratiques et des stages qui favorisent l’insertion professionnelle.

Faculté de Pharmacie

Dans le cadre de mon stage, j’ai la chance d’être encadré par M. Philippe Vignoles, maître de conférences au sein du département de biophysique, biostatistique et physico-chimie pharmaceutique. Son expertise scientifique et pédagogique constitue un véritable atout pour la réalisation de mon projet. Grâce à des échanges constructifs, il m’apporte un encadrement rigoureux, tout en m’aidant à développer une méthodologie de travail efficace et une réflexion critique sur mes missions.

Présentation du projet

L’objectif de ce projet est de développer une application web capable de générer automatiquement des fichiers XML à partir de données extraites d’un tableau statistique. Ces fichiers sont ensuite importés dans SCENARIChain, un outil utilisé pour concevoir des exercices au format SCORM ou HTML, à destination des étudiants. L’application devra pouvoir lire un tableau de données présent dans un fichier ODS, en extraire les informations pertinentes, puis générer les fichiers XML nécessaires à la création d’un exercice dans SCENARIChain.

La création manuelle de ces exercices dans SCENARIChain étant longue et fastidieuse, mon tuteur de stage a développé un programme en Pascal permettant de lire un fichier ODS. Toutefois, la génération des fichiers XML reste perfectible, ce qui justifie le développement d’un outil plus performant et automatisé.

Ce projet repose ainsi sur plusieurs objectifs clés :

  • Développer un outil capable de lire et d’analyser un tableau dans un fichier ODS afin d’en extraire les données pertinentes
  • Gérer différents types de tableaux (à une, deux ou trois dimensions)
  • Générer automatiquement les fichiers XML nécessaires et proposer leur téléchargement sous forme d’archive ZIP
  • Concevoir une interface utilisateur claire et intuitive, permettant de visualiser les fichiers générés
  • Tester l’application avec plusieurs structures de tableaux pour en garantir la robustesse
  • Mettre l’application à disposition des utilisateurs en la déployant sur un serveur web

Analyse du projet initial

Analyse de l’existant :

À l’heure actuelle, la génération des fichiers XML destinés à SCENARIChain repose sur deux méthodes principales, chacune présentant des limites notables en termes d’efficacité et de productivité.

La première méthode s’appuie sur un programme développé en langage Pascal, conçu pour parcourir les données contenues dans un fichier ODS. Bien que cette solution ait permis d’amorcer une forme d’automatisation, elle reste incomplète et peu adaptée à un usage intensif. En effet, le programme ne lit pas véritablement un tableau structuré de données, mais traite les cellules de manière séquentielle et rigide. Cela limite considérablement sa capacité à s’adapter à différents formats de tableaux ou à gérer des cas d’usage variés.

La seconde méthode consiste à créer chaque exercice directement dans l’interface de SCENARIChain. Cette approche, bien que plus fiable en termes de résultat final, est extrêmement chronophage. Chaque composant de l’exercice (énoncé, réponses, indicateurs, etc.) doit être saisi manuellement, ce qui devient rapidement fastidieux, surtout lorsqu’il s’agit de produire des séries d’exercices en grand nombre. Cela engendre non seulement une perte de temps significative pour les enseignants et concepteurs pédagogiques, mais augmente aussi les risques d’erreurs humaines ou d’incohérences entre les exercices.

En résumé, les solutions actuellement en place ne permettent pas de répondre efficacement aux besoins de production de contenus pédagogiques interactifs. Il existe donc un besoin d’automatiser et de fiabiliser ce processus, en intégrant une lecture structurée des tableaux de données et une génération XML conforme aux standards de SCENARIChain.


Besoin d'évolution :

Face aux limites des méthodes existantes, une évolution vers un système entièrement automatisé s’impose comme une réponse cohérente et stratégique. L’objectif est de concevoir une application capable de lire directement un fichier ODS bien structuré, d’en extraire uniquement les données nécessaires, puis de générer automatiquement les fichiers XML nécessaires à l’intégration dans SCENARIChain, sans intervention manuelle.

Une telle automatisation permettrait de réduire drastiquement le temps de production des exercices interactifs, tout en assurant une homogénéité dans la mise en forme et la structure des contenus. Les enseignants pourraient ainsi se concentrer davantage sur l’élaboration des contenus pédagogiques plutôt que sur les aspects techniques de mise en forme. En parallèle, les étudiants bénéficieraient de ressources interactives plus rapidement disponibles, mieux conçues et cohérentes, ce qui améliorerait globalement leur expérience d’apprentissage. La mise en place de cet outil favoriserait la réutilisabilité des données sources : un même fichier ODS pourrait être utilisé pour générer plusieurs types de contenus ou versions d’exercices, selon les besoins pédagogiques.

Ce besoin est d’autant plus important que chaque exercice nécessite la génération de plus de 300 fichiers XML compatibles avec le modèle documentaire Topaze utilisé par SCENARIChain. Effectuer ces manipulations manuellement serait extrêmement chronophage, d’où la nécessité d’un outil fiable, rapide et flexible. En complément, le projet implique également l'utilisation de fonctions statistiques en JavaScript destinées à être intégrées aux indicateurs et variables dans les fichiers XML générés. Cela permettra une personnalisation plus fine des calculs, notamment pour les valeurs arrondies ou les formules spécifiques aux exercices.

Une question légitime pourrait être posée : pourquoi ne pas simplement utiliser les outils classiques proposés par Topaze, comme les modèles de Quiz intégrés ? Tout simplement car ces outils ne permettent pas une saisie assez précise, en particulier pour le contrôle des arrondis ou l'affichage des résultats attendus. De plus, toute modification de données nécessiterait une reprise manuelle complète de l’exercice, ce qui irait à l’encontre de l’objectif de gain de temps et d’efficacité.

En somme, le développement de cette application web constitue une étape essentielle vers une production moderne, efficace et durable.

Mes tâches

Semaines Tâches
Semaine 1
Du 7 au 11 avril
  • Analyse de l'existant, définition des besoins du projet et planification générale
  • Définition du langage de production
  • Réalisation du squelette des pages et création des premières fonctions PHP
Semaine 2
Du 14 au 18 avril
  • Ajout de la fonctionnalité de lecture du fichier ODS et récupération des données
  • Mise en fonction de la génération des fichiers XML pour les données récupérées dans le ODS et les calculs initiaux
  • Ajout de Bootstrap pour la structuration visuelle de l'application web
Semaine 3
Du 21 au 25 avril
  • Mise en ligne d'une version non finale de l'application
  • Mise en fonction de la génération des fichiers XML des valeurs saisies
Semaine 4
Du 28 avril au 2 mai
  • Mise en fonction de la génération des fichiers XML de calculs de résultats et des indicateurs totaux
  • Mise en fonction de la génération des fichiers XML de calculs de score
Semaine 5
Du 5 au 9 mai
  • Première démonstration de l'application web
  • Test et validation de l'application pour les tableaux dits à une dimension
Semaine 6
Du 12 au 16 mai
  • Ajout de la prise en compte des tableaux de données dits à deux dimensions
  • Adaptation des fonctions de génération des fichiers XML pour le bon type de tableau
Semaine 7
Du 19 au 23 mai
  • Seconde démonstration pour validation du bon fonctionnement de l'application
Semaine 8
Du 26 au 30 mai
  • Ajout de la prise en compte d'autres types de tableaux de données
  • Adaptation des fonctions de génération des fichiers XML pour le bon type de tableau
Semaine 9
Du 2 au 5 juin
  • Démonstration finale
  • Derniers ajustements et finalisation du projet

Veille et recommendations

Dans le cadre de ce projet, plusieurs choix technologiques ont été envisagés, notamment concernant les outils utilisés pour la production des exercices (SCENARIChain) ainsi que le langage de développement à privilégier pour l'automatisation du processus. Cette veille a pour objectif d’expliquer les choix effectués pour le développement.

SCENARIChain

SCENARIChain est un environnement de conception de documents structurés basé sur des modèles éditoriaux (dans la cas présent, les exercices reposent sur le modèle documentaire Topaze). Il permet la création de contenus pédagogiques interactifs, comme des exercices au format SCORM ou HTML, adaptés à l’e-learning. Pourquoi SCENARIChain ? Le choix de garder cet outil pour la création des exercices s'explique par plusieurs raisons :

  • il permet d’exporter les contenus dans des formats standards (SCORM, HTML, PDF, etc.), compatibles avec la majorité des plateformes LMS, comme Moodle par exemple, utilisé au sein de l'Université de Limoges
  • le contenu est organisé selon un modèle documentaire défini, ce qui garantit la cohérence et la qualité des ressources produites.
  • grâce à la séparation contenu/forme, les ressources créées peuvent facilement être réutilisées dans différents contextes.
  • c'est un outil gratuit et open-source, ce qui en fait une solution accessible pour les établissements publics.

Pourquoi ne pas utiliser un autre outil ? Il existe bien des alternatives comme H5P ou encore eXeLearning, mais elles sont soit moins structurantes, soit propriétaires et coûteuses. Il existe donc peu d’outils offrant une telle polyvalence dans la création et la gestion des modèles éditoriaux personnalisés.


Choix du langage de développement

Pourquoi PHP ? Le projet de stage vise le développement d’une application web capable de lire des fichiers ODS, d’en extraire les données pertinentes, et de générer automatiquement des fichiers XML. Pour cela, le choix de PHP s’est imposé pour plusieurs raisons :

  • PHP est l’un des langages les plus utilisés pour le développement web côté serveur
  • PHP dispose de nombreuses fonctions natives pour la manipulation de fichiers, y compris XML (DOMDocument, SimpleXML, XMLWriter) et ODS via des bibliothèques comme phpSpreadsheet
  • la majorité des hébergeurs web supportent nativement PHP, ce qui simplifie la mise en production
  • l’environnement de travail étant déjà orienté web, utiliser PHP permet une intégration fluide avec d’éventuels futurs services

Pourquoi pas un autre langage ?

  • Python : il est effectivement puissant, lisible et polyvalent, notamment grâce à des bibliothèques comme pandas, xml.etree, ou odfpy. Cependant, PHP reste mieux adapté pour les applications web natives côté serveur, notamment en ce qui concerne :
    • la gestion des requêtes HTTP et sessions utilisateurs
    • l'intégration directe avec du HTML/CSS/JS via frameworks légers
    • le déploiement facile sur la plupart des serveurs mutualisés

Cela ne veut pas dire que Python serait un mauvais choix — au contraire, il serait pertinent dans un projet orienté script ou analyse de données — mais dans ce cas précis, l’objectif est de produire une application web légère, maintenable et facilement intégrable, ce qui justifie pleinement le choix de PHP.

  • Pascal : bien que le langage ait été utilisé pour un prototype initial, la Pascal est aujourd’hui peu courant dans les projets web moderne. Il pose des problèmes de compatibilité avec les serveurs web, de maintenance du code, et limite les perspectives d’évolution ou de collaboration future.