Cahier des Charges
Besoin exprimé⚓
Un département d'IUT souhaite préparer son jury de fin d'année à partir des notes données par les enseignants aux étudiants tout au long de l'année :
- Les étudiants sont regroupés en promotions (ou année d'étude)
- Les notes ont un coefficient dans chaque ressource.
- Les ressources sont regroupées en U.E. Chaque ressource a un coefficient dans chaque UE.
- Une compétence comporte plusieurs U.E en fonction des promotions
- Il existe des modalités de passage définies au niveau des U.E, des compétences
- Le passage à l'année supérieure ou l'attribution du diplôme de sortie est de droit si la modalité au niveau des UE est respectée (3 UE >10)
Outils⚓
Conseil : TD01 : Fichier SQL vers DB⚓
Tutoriel SQL et SQLite - la partie SQL à déjà été vue ou non via les TP ACCESS ?
Table compétences : vous n'avez rien d'autre à faire que comprendre la structure de la table compétence, utiliser le navigateur de base de données DB Browser pour exécuter le code SQL de création de la table et d'insertion des données. Une fois les données visibles dans DB Browser, tester les requêtes SQL que l'on vous propose pour lire et extraire des données
Réglementaire : EX01⚓
Appliquez ce que vous avez vu à la gestion des promotions (GIM1 - GIM2 - GIM3)
Construisez le fichier SQL (création de la table si elle n'existe pas et données à insérer)
Visualisez le dans DB Browser
Réglementaire : TD02 : CODE vers EXCEL⚓
Objectif : en langage python, on souhaite écrire dans un fichier Excel les données de la table compétence :
Entrée : les attributs id, code, name et validation sont des listes
Sortie : Feuille Excel nommé « competences » dans un fichier Excel
Moyen : utilisation des modules xlswriter et pandas
Réglementaire : EX_02_A1 : analogie avec les promotions⚓
Faire de même avec la table Promotions : question à se poser : est-ce qu'on ajoute une feuille au fichier Excel existant (pertinence du nom de fichier) ou est-ce qu'on produit des fichiers excel pour chaque table. La base de données, elle, par contre contiendra les 2 tables : c'est obligatoire.
Si on pousse le raisonnement un peu plus loin au regard d'autres cas d'applications, et l'import export de données destinées à la GMAO DIMOMAINT, nous aurions l'obligation de travailler avec des fichiers CSV qui ne peuvent pas contenir plusieurs feuilles.
Réglementaire : TD03 :⚓
Entrées : Données sources en utilisant différentes structures de données python (tuple, liste, EXCEL et dataframe PANDAS)
Sorties : Base de données SQLite via table compétence
Moyen : requête avec insertion unitaire multiple de chaque compétence, insertion globale avec la dataframe PANDAS. Ecrire du code de plus en plus structuré en procédures et modules.
EX_03_A1 : analogie avec une table promotions⚓
Faire de même avec la table Promotions. Proposer :
- un module avec des fonctions liées à la gestion des fichiers (supprimer, etc ...) nommé par exemple utilfichiers.py
- un module pour gérer la base de données dans son ensemble (au niveau de la connexion) nommé utilbdd.py
- un module pour chaque table competences.py, promotions.py, etc .....
Même si dans l'immédiat, vous n'avez qu'une procédure dans un module, il faut envisager le fait que l'on pourra avoir besoin d'en rajouter. On réfléchira notamment si le code pour chaque table se répète, si il ne serait pas opportun d'ajouter un module de gestion des tables.
On verra plus qu'avec les classes et la Programmation Orientée Objet (POO), on a des possibilités étendues d'optimisation du code.
Etapes⚓
01 : Création table competences et ajout des données :
Ressource : Aparam.py :
- Gestion de fichiers, dossiers, nom de fichier, extension de fichier.
01 var A1 : Fichier SQL vers bddSQLite via DB Browser (le fichier SQL existe déjà)
01 var B0 : PYTHON (Type liste-->dataframe PANDAS --> EXCEL)
01 var B1 : PYTHON -> Fichier Excel (avec panda) vers bddSQLite
01 var B2 : PYTHON -> Fichier Excel (avec panda) vers bddSQLite (panda)
Ressource :
Création de la classe DbManager
02 : Création table promotions et ajout des données :