POK2 - Pass' Diplôme

Tags :
  • POK
  • 2024-2025
  • temps 2
  • info
  • gestion de projet
  • management SI
Auteurs :
  • Inès Kebbab

Ce second POK réalisé en collaboration avec Alix Duréault a pour objectif de réaliser un SI pour suivre et communiquer les items de diplomation, en collaboration avec la formation de l'école.

Lire ici la deuxième partie de ce POK réalisée par Alix.

Autres POK ou MON en lien : MON 3.1 : Débuter avec React.js, Thomas DUROY

Objectifs

L'objectif de ce POK est de réaliser un système d'information sur un exemple concret, via une base de données (excel et site internet) tout en respectant des contraintes RGPD. Concrètement, les élèves doivent pouvoir consulter les éléments qui les concernent exclusivement.

Ce projet a aussi pour but d'observer les enjeux de management de l'information au sein des services de l'école dans le cadre d'un projet, notamment pour la mise en place d'un process qui se veut durable.

À noter, nous nous sommes engagées en termes de moyens et non de résultat.

Tâches

Sprint 1 - Structuration de la base de donnée

  1. [X] Réalisation d'un excel et étude de l'automatisation possible
  2. [X] Réalisation d'une maquette du site souhaité
  3. [X] Etude des technologies compatibles avec la DSI de Centrale
  4. [X] Initialisation d'une base de données test.

NB: A posteriori, l'automatisation totale de la base de données et du partage d'un excel ne semble pas possible voire souhaitable.

Sprint 2 - Ajout des autres blocs et informations

  1. [ ] Front-end du site (fait par Alix)
  2. [/] Back-end du site (+ connexion au CAS si accepté par la DSI)
  3. [ ] Mise en conformité RGPD
  4. [/] Proposition du nouveau process aux équipes
  5. [ ] Communication à destination des élèves sur le projet

Contenu

Premier Sprint

Expression du besoin et management de l'information au sein de l'école

En commençant le projet, nous savions qu'un excel existait et assurait (en partie) le suivi des éléments de diplomation des élèves. Du coté des élèves, la besoin avait été exprimé il y a quelques mois par un ancien élu du CE.

Nous avons pu organiser un point avec le personnel administratif qui sont concernés dans le report des éléments de suivi. Il est ressorti que le SI actuel n'était pas optimisé pour leurs usages :

Aussi, pour ne pas créer un outil parfait pour les élèves mais irréaliste côté administration (par rapport à la fourniture des données), nous les avons challenger pour mieux cerner leurs contraintes (outil et excel facilement modulable). Nous avons aussi pu mettre la priorité sur la partie "rendre visible aux élèves les informations" plutôt que de se concentrer sur l'automatisation d'un document au service de la direction de formation (les compétences étant a priori déjà présente).

Nous avons cartographier les éléments de diplomation à communiquer (offrant une vision d'ensemble utile pour l'ensemble des participantes) et il nous a été fourni un jeu de fausses données anonymisées pour tester notre projet.

Contraintes techniques et fonctionnelles

Avec la DSI, nous avons aussi pu mieux comprendre les contraintes techniques et fonctionnelles pour le projet (choix du langage, technique de base de données,...) pour optimiser la pérennisation du projet après notre départ à Centrale (soit via un accord avec le GInfo, ou pour de la maintenance avec les compétences déjà existantes de la DSI). Nous avons aussi convenu qu'il serait plus simple d'écraser la base de données à chaque import de fichier (en CSV) pour commencer.

Nous avions un référent sur ce projet au sein de la DSI : Clément Leneuveu.

Maquette UI/UX

Pour penser le parcours utilisateur, j'ai pu m'appuyer sur la première maquette réalisée par Alix pour l'améliorer. Celle-ci a notamment pu récupérer des retours d'élèves sur lesquels j'ai pu me baser pour améliorer notre interface.

Comme nous avions conscience de la durée courte que nous avions pour réaliser le projet et de nos compétences pour les coder, nous avons décidé de prioriser les fonctionnalités sur le test de la page de connexion et l'import / lecture et affichage d'une ligne du fichier CSV. Alix s'est chargé de la partie Front de la page d'affichage.

Analyse Post Mortem du sprint 1

Je ne suis pas satisfaite de ce sprint 1 pour plusieurs raisons :

Je trouve que le travail que l'on a mené avec Alix était complémentaire et permet d'avoir une vision "extérieure" sur son travail qui est agréable.

Finalement, même si nous avons pu remplir les objectifs que je m'étais fixée : ils étaient peut-être sous-dimensionnés mais ils ne prenaient pas en compte l'apprentissage de React qui me prend du temps. Je pense que je sous-estime encore trop le temps que cela me demande d'apprendre à coder. Je ne pense pas avoir de facilité sur le sujet ce qui est frustrant (bien que challengeant).

J'observe aussi que la part de réunion est importante mais finalement, cela semble cohérent avec un travail de PM ou PO ou au vu de la phase "expression et définition du besoin".

Second Sprint

Finalisation de la maquette

J'ai pu ajouter des éléments ou penser à des fonctionnalités utiles pour les gestionnaires sur la base des écrans que nous avions déjà identifié (vue pour tester une vue élève et l'affichage des données, historique et export des derniers imports, gestionnaire des droits d'administration). Nous avons aussi pu ajouter une page d'accueil pour les utilisateurs qui ne viendraient pas de l'ENT ou qui ne seraient pas déjà connecté (une page FAQ, à l'instar du site des stages).

NB. Les données finales de l'excel concernant la mobilité est à revoir après échange avec C. Musy : en effet, il est intéressant de suivre comment les élèves ont effectué leur mobilité (SMA, SSE, autre) pour la préparation de la remise des diplômes.

Mise en place des fondations pour le "back" (BDD, connexion, sécurisation des données)

Lors de notre entretien avec Clément Leneuveu, nous avons présenté nos avancées et choix techniques à notre référent. Nous avons vu ensemble :

Connexion au serveur CAS, création d'une page de connexion et d'un form pour import du CSV

Pour l'import du fichier CSV et la lecture avec React, j'ai identifié trois pistes de solutions :

La solution qui semble la plus pertinente à explorer semble donc d'utiliser la librairie PapaParse dans le cadre de notre projet.

J'ai testé des bouts de code pour tester l'import d'un fichier CSV, mais n'arrivant pas à créer des routes et URLs cohérentes sur l'app React, je n'arrivais pas à un résultat plus satisfaisant qu'un bouton non cliquable...

De même, j'ai essayé de créer une page d'accueil ou avec un formulaire de connexion, mais les liens avec les autres pages empêcher l'application de se build correctement.

J'en suis arrivée à la conclusion qu'il fallait que je reprenne plus méthodiquement la construction de l'app et des fonctionnalités ; il me faut aussi revoir plus en profondeur les principes de base d'une app en React sur lesquels je me suis peu penchée.

Pour le serveur CAS, je me suis appuyée sur les ressources fournies par la DSI. J'ai installé le nécessaire, avec les versions nécessaires de Java, Apache Ant, Apache Maven et Tomcat. Si j'ai rapidement réussi à lancer le client React, j'ai mis près de 2h avant de réussir à lancer le serveur SpringBoot (l'API). Néanmoins, malgré de nombreuses tentatives pour débugger, je n'ai pas visiblement pas encore réussi à faire communiquer le front et le back.

J'obtiens l'erreur suivante : Error occurred while trying to proxy: localhost:3000/.

Une piste à explorer pour avancer est d'étudier les problèmes de CORS avec React pour autoriser (si ce n'est pas déjà le cas) la communication entre deux adresses en localhost.

Rattrapages Sprint 1

Tout d'abord, pour rattraper le retard sur le sprint 1, il me reste 3h30 à consacrer à ce travail (jeudi et vendredi). Voici ma to do list à titre indicative :

  1. [] Faire le routing URL et une navigation avec 3 pages vierges (accueil, import, gestionnaire de droits) et celle de visualisation des élèves.

  2. [] Pour la page upload : télécharger un CSV, lire et stocker les données CSV (éventuellement, comprendre comment garder l'historique des 3 derniers fichiers dans un JSON par exemple et le téléchager).

  3. [] Pour la page "Eleve" : affichage conditionnel sur l'exemple d'un élève.

  4. [] Résoudre le problème de connexion au CAS avec la DSI.

  5. [] Modifier l'excel par rapport à la mobilité internationale.

Conclusion et suites possibles

Concernant le projet, il semble pertinent de le continuer (pour ma part en dehors d'un POK&MON) pour le pérenniser car il est utile. Je trouve cela motivant de travailler sur un projet qui fait sens, auquel je souhaitais depuis plusieurs mois consacrer du temps sans le trouver et d'apprendre des notions techniques pour lui permettre de voir jour.

Pour la pérennisation, il reste encore de nombreuses étapes :

Ce que j'ai appris :

Pour ma part, je ne me sens pas encore à l'aise avec React mais je souhaite persévérer pour comprendre les bases et arriver à produire un front et des fonctionnalités correctes.

J'ai appris à me questionner sur le besoin en base de données, et plus globalement sur l'organisation d'un SI au sein d'une organisation. J'ai aimé découvrir le fonctionnement d'une DSI sur un exemple concret et observer leurs interactions avec un service opérationnel.

Les erreurs à éviter :

J'ai observé que j'ai tendance à m'éparpiller sur les projets dès que je rentre dans le code : je souhaite tout faire d'un coup, sans me poser avant de me lancer.

Plus la tâche me semble complexe, plus celle-ci me semble insurmontable : hors, dès que j'ai réfléchi pour redécouper la tâche "Back" en plusieurs sous-tâches priorisées et ordonnées, cela m'a permis d'avoir une vision pour avancer plus sereinement.

Je pense qu'il faut aussi savoir s'arrêter plus tôt dès que l'on bloque et oser demander de l'aide (ou a minima laisser décanter).

Horodatage

Date Heures passées Indications
Sprint 1 6H45/10H ⚠️
08/10/24 1H Réunion de cadrage - Expression du besoin fonctionnel - Formation
23/10/24 1H Réunion de cadrage "technique" - DSI
14/11/24 15min Retours/validation de l'excel
16/11/24 1H30 Formation à React
17/11/24 1H30 Maquette Figma
18/11/24 30min Echange projet avec Alix
1H Point de mi-projet avec C. Musy
Sprint 2 10H/10H
07/12/24 2H Finalisation de la maquette (tests avec icônes, design unique...) + retours élèves
09/12/24 1H Point suivi avec C. Musy
12/12/24 1H30 Point technique avec C.Leneveu (connexion CAS, BDD)
14/12/24 1h Recherches et test import et lecture d'un fichier CSV avec React
16/12/24 1h30 Back : Test Page de Connexion / Connexion via CAS (installation Java pour SpringBoot, test client React) - blocage sur le lancement du serveur
17/12/24 1H30 Back : Test Connexion via CAS
18/12/24 1H30 Rédaction rendu POK