Niveau 1: AC3: Faire des essais et évaluer leurs résultats en regard des spécifications
Lors de cette SAE, nous avons effectivement des essais fonctionnels et si cela correspondait aux demandes du client
Cette SAE* se concentre sur le développement informatique et web et la méthode gestion de projet Agile. Lors de celle-ci, nous devons en équipe de 5 à 6 personnes :
*SAE = Situation d'Apprentissage et d'Évaluation, c'est un projet qui se passe dans le Cadre du BUT (Bachelor Universitaire de Technologie). Les SAE sont généralement découpées en livrable (listés ci-dessus).
Cette SAE a eu lieu lors du premier semestre du BUT Informatique et s'applique à toutes les UE car c'est le seul projet du semestre.
De Septembre 2023 à Janvier 2024.
PHP, HTML/CSS, SQL et PL/SQL, pour le développement
Outils Miro et Trello, pour la gestion de projet.
Le projet est hébergé sur le GitLab de l'IUT.
Dans l'utilisation de la méthode agile, un des rôles principaux est celui du Product Owner. En effet, c'est celui qui fait le lien entre le client (ici un professeur de l'IUT) et l'équipe de développement (mon équipe et moi-même). Il est l'élément clé car c'est grâce à lui que l'équipe sait ce qu'elle doit coder et dans quel ordre.
Mon rôle au sein de l'équipe a surtout été de maintenir les backlogs de sprint sur l'application Miro et de créer des tests d'acceptances à chaque sprint afin que mes coéquipiers puissent vérifier que leur réalisation est conforme aux attentes du client
Le premier sprint s'est concentré sur l'analyse et la création des différentes taches à faire lors du projet. Nous avons utilisé un miro pour mettre à plat tout cela et un trello pour nous aider dans l'organisation des différents sprints.
Nous avons donc démarré par implémenter les fonctionnalités les plus importantes selon le client. Pour ma part, j'ai effectué les pages d'informations globales sur les stages et les alternances (pages statiques en simple HTML/CSS) et enfin j'ai participé à la maquette et au CSS global de notre plateforme.
Nous avons aussi fait en sorte que notre architecture logicielle corresponde bien au modèle MVC (Modèle-Vue-Contrôleur).
Lors de ce sprint, je me suis concentrée en majorité sur l'importation de fichiers CSV, venant de PStage et de Studea, via le site. Cette importation devait modifier la base de données afin que le responsable des stages puisse savoir où en est la recherche de stage de chaque étudiant. Cette fonctionnalité le facilite grandement car les fichiers CSV à importer ont plus de 100 colonnes pour chaque étudiant, les rendant illisibles. Le responsable des stages peut donc visualiser les données dans une page dédiée.
Pour faire cela, j'ai donc utilisé un formulaire où le peut insérer plusieurs fichiers à la fois, puis une boucle vérifie le type du fichier et fait d'autres vérifications afin d'insérer les données dans une vue de la base de données. Sur cette vue, il y est implémenté un trigger de type "instead of" afin de récupérer les données et de les insérer/modifier dans les bonnes tables de la base de données.
C'est alors ici que j'ai rencontré une complication. En effet, les trigger instead of n'existe pas sur MySQL. Or, c'est que nous utilisions depuis le début de la SAE. J'ai donc dû migrer la base de données vers PostgreSQL (que je ne connaissais pas). Cela a entraîné d'autres complications, car je l'ai fait en milieu/fin de sprint donc pour la deuxième revue de sprint nous étions sur deux SGBD différents (mauvaise idée).
La première chose qui a été faite sur ce sprint était la gestion de la base de données sous PostgreSQL (ajouter les oublis, vérifier que toutes les fonctionnalités faites depuis le début marche encore). Je me suis ensuite concentrée sur le rework de l'importation, qui n'était pas finie au second sprint, et sur le style de front des pages de profils.
Afin de mieux comprendre le cheminement actuel des conventions de stage au sein du département informatique, j'ai aussi effectué un diagramme d'activité.
Ce sprint a été moins productif que les autres de mon côté et du côté de mon équipe. En effet, cela est du à une perte de motivation générale mais aussi du fait que je suis tombée malade pendant une semaine.
Sur ce sprint, je me suis concentrée sur la gestion des notes de soutenance au sein de la plateforme. J'ai commencé par créer un formulaire multipage basé sur celui des professeurs, que l'on nous avait transmis. Afin de changer chaque page du formulaire j'ai utilisé un script JS.
Ensuite, j'ai effectué une page permettant au responsable des stages mais aussi au secrétariat du département informatique d'exporter les notes des étudiants en un fichier CSV. Sur cette page, l'utilisateur a aussi la possibilité de modifier les coefficients des 5 notes qui composent la note finale de soutenance.
De plus, j'ai ajouté une section notes au profil des étudiants permettant de les consulter lorsque le responsable des stages active la fonctionnalité (via un bouton dans son profil).
Ce projet m'a appris plein de nouvelles compétences comme une nouvelle façon de travailler avec la méthode agile, approfondir le PHP appris en cours.
Ce projet a aussi renforcé mes compétences en travail d'équipe.
Lors de cette SAE, nous avons effectivement des essais fonctionnels et si cela correspondait aux demandes du client
Pour élaborer toutes les fonctionnalités du site et donc créer des spécifications fonctionnelles et non fonctionnelles, nous sommes partis des différentes volontés et exigences du client
Afin de réaliser notre site, nous avons voulu le rendre le plus ergonomique possible. Nous avons réalisé une maquette sur figma pour mettre à plat nos idées. Selon moi, l'interface de notre site pourrait être mieux mais c'est déjà un bon début.
Notre site a été conçu avec le modèle MVC et nous avons aussi essayé qui colle le mieux possible aux principes de conception SOLID et DRY (Don't Repeat Yourself)
La sécurisation du code a été un enjeu du projet. En effet, nous avons voulu protéger l'application de toute injection de données (au niveau de la base de données ou du html) mais aussi nous avons utilisé des fichiers .htaccess permettant de limiter l'accès à certains fichiers par n'importe qui depuis le site en lui même.
Cette SAE s'est basée sur un site dynamique en php: c'est-à-dire un site qui évolue en fonction de données. Ces données sont récupérées sur une base de données qui n'est pas "interne" au code de l'application mais hébergée sur un serveur. On peut donc dire que c'est une application communicante
Comme dit plus haut dans la section compétence 2, la sécurisation a été un enjeu dans cette SAE. En effet, il fallait protéger le code et les différents services que proposer le site mais aussi l'accès au données et des injections dans celles-ci. Nous avons aussi sécurisé les données sensibles (comme le mot de passe d'un utilisateur) et nous avons empecher les utilisateurs d'accéder à des services dont ils n'avaient pas le droit d'accéder (gestion des droits d'accès).
Cette SAE comporte beaucoup de requetes à une base de données pour par exemple : récupérer les données d'un utilisateur et vérifier qu'il se connecte bien avec les bons identifiants.
Nous avions en effet un cahier des charges à respecter (fonctionnalités à implémenter, utilisateur présents sur le site, etc), nous devions alors évidemment concevoir une base de données correspondant par cela. Par exemple, nous avons fait une table par type d'utilisateur.
Cette partie se montre par la gestion des fichiers csv que nous récupérions des plateformes PStage ou Studea. Nous traitions des fichiers comportant aprfois plus d'une centaine de colonnes et les remplaçons par des tables de données d'environ 20 colonnes.
Comme dit plus haut, nous avons respecter la confidentialité des données. Ceci s'est par la protection de la base de données en elle même, le cryptage de certaines colonnes (comme le mot de passe) et la gestion d'accès au données sur le site en elle meme.
Nous avions programmé une page entière de visualisation de données des étudiants. Nous avions aussi fait un système de tri, par exemple en fonction de l'année de l'étudiant.
Ceci était en partie mon travail en tant que Product Owner. Je devais prendre en compte les besoins du client et les adapter à nos compétences et aux réels besoins utilisateurs.
Pour cette sae, nous avons utlisés Miro pour gérer nos backlogs de sprint et Trello pour voir la répartition des tâches et leur avancée
Ceci a été fait lors du début de la sae. Nous avons regroupé toutes les demandes du client, établi les besoins des différents utilisateurs, regroupé tout cela afin de créer une liste de taches et créer des user stories.
Lors du projet, nous avons établi des tâches comme impossible au vu de nos compétences mais aussi au vu du temps restant.
Ceci a été fait via la méthode agile où nous organisions des réunions quotidiennes, hebdomadaires et de fin de sprint. Cela nous permettait de faire un point sur le projet et donc suivre son avancée.
Ce projet a vraiment aidé pour comprendre les rôles d'une équipe pluridisciplinaire. En effet, nous étions 4 avec 2 personnes qui faisaient uniquement du développement et deux autres personnes, qui, en plus, du développement avaient respectivement, le rôle de Product Owner et Scrum Manager.
Ce projet a demandé de mobiliser les compétences interpersonnelles afin qu'il n'y ait pas ou peu de conflits, qu'on communique bien et que le projet se passe bien et avance.
Lors de ce projet, j'ai pu endosser le rôle de Product Owner. Cela m'a permis de comprendre comment était géré un projet et de comprendre comment la communication avec un client était effectuée