Pistus (abréviation de "Piston Ski") est un événement organisé par WACS (Winter Association CentraleSupélec) chaque année pendant les vacances d'hiver. Il s'agit d'un formidable séjour en montagne de la durée d'une semaine avec au programme de nombreuses activités (ski, snowboard, raclette, fêtes, pour n'en citer que quelques-unes).
Lorsqu'un étudiant souhaite s'inscrire à Pistus, les organisateurs inscrivent dans une feuille de calcul (c'est-à-dire un fichier Excel) les données personnelles de l'étudiant, ainsi que la date et les frais d'inscription. L'étudiant a la possibilité de payer les frais d'inscription immédiatement ou plus tard ; dans tous les cas, l'étudiant doit payer dans les 5 jours suivant l'inscription, sinon l'inscription est considérée comme expirée et elle sera ainsi supprimée. Les organisateurs enverront un un courriel de rappel 2 jours avant la date butoir. Une fois que l'étudiant a payé, les organisateurs inscrivent la date du paiement dans la feuille de calcul.
Les organisateurs conservent deux feuilles de calcul. L'une contient les données d'inscription, à savoir les données personnelles de l'étudiant (matricule, nom et prénom, sexe et adresse électronique), les dates d'inscription et de paiement, les frais d'inscription et l'année de l'événement. L'autre fichier Excel contient des informations sur les membres de l'association.
Dans ces fichiers, seules les associations existent dans le monde réel. Les noms des élèves ont été générés aléatoirement à partir d'une liste de noms et de prénoms français. Ces fichiers ne contiennent aucune référence à des élèves réels de l'école.
Cette organisation pose de nombreux problèmes :
- Si les étudiants participent à plusieurs éditions de Pistus au cours de différentes années, leurs données sont réécrites à chaque inscription. Cela peut conduire à des incohérences. Par exemple, si un étudiant change d'adresse électronique, les organisateurs doivent supprimer toutes les références à son ancienne adresse dans les feuilles de calcul ; ces modifications manuelles ont peu de chances d'être précises.
- Les organisateurs doivent vérifier manuellement si un étudiant respecte la date limite de paiement.
- Les organisateurs doivent envoyer manuellement des courriels de rappel aux étudiants.
C'est pourquoi nous voulons développer un logiciel, appelé PistusResa
, que les organisateurs peuvent utiliser pour gérer les inscriptions de manière efficace.
L'architecture de PistusResa
est présentée dans la figure suivante.
L'application présente une interface graphique (GUI) permettant d'accéder à toutes ses fonctionnalités. Le backend (c'est-à-dire la partie du logiciel qui n'est pas visible par un utilisateur) se compose de cinq modules, chacun implémentant une fonctionnalité spécifique :
- Le module Student permet à un organisateur de gérer les données personnelles des étudiants.
- Le module Registration permet à un organisateur de gérer les inscriptions aux éditions de Pistus.
- Le module Authentication fournit les fonctionnalités pour restreindre l'utilisation de
PistusResa
aux utilisateurs autorisés. - Le module Deadline est un processus qui s'exécute en arrière-plan et qui gère les échéances de paiement. Ses deux principales fonctionnalités sont : l'envoi d'un courriel de rappel deux jours avant la date limite pour les inscriptions non payées, et la suppression des inscriptions expirées.
PistusResa
utilise une base de données relationnelle pour stocker toutes ses données.
Deux modules supplémentaires sont utilisés pour créer la base de données et y importer les données.
- Le module db est utilisé pour créer la base de données et ses tables.
- Le module ETL (Extract, Transform, Load) est utilisé pour importer dans la base les données sur les éditions passées du Pistus qui sont conservées dans les deux feuilles de calcul mentionnées ci-dessus.
Commençons par le module db !