I-calendar : occupation des salles
Cadre et objectif général
Le projet a pour objectif d’extraire les données des fichiers des emplois du temps des 3 formations du département : BUT1, BUT2, BUT3 que vous aurez préalablement extraits du logiciel ADE de l’Université afin de déterminer pour chaque salle des indicateurs d’occupation.
Les étapes principales du projet consistent à :
lire et extraire les données pertinentes des fichiers
.ics;les traiter afin de pouvoir produire pour chaque salle du département R&T :
Le nombre d’heures d’utilisation à l’année ;
Le nombre d’heures moyen d’utilisation par semaine ;
Le nombre d’heures moyen d’utilisation par jour ;
Le taux d’occupation exprimé en pourcentage de la salle en rapport à l’occupation totale des salles du département.
de construire une page html/css sur laquelle seront présentées les données extraites et calculées sous la forme d’un tableau de la forme suivante :
Salle
Heures d’utilisation
Heures d’utilisation moyen/semaine
Heures d’utilisation moyen/jour
Taux d’occupation (%)
RT-I-01
640.00h
20.00h
5.50h
20.24%
RT-I-02
128.00h
4.00h
5.50h
5.10%
RT03
RT04
RT05
RT06
RT11
RT12
RT13
RT14
RT15
RT16
RT26
RT28
RT-Projet
Le projet doit :
utiliser l’outil de gestion de version Git et un IDE de développement Python ;
être structuré suivant l’arborescence indiquée ci-après
pouvoir s’exécuter sur le système Linux des salle de TP lors de la démonstration finale ;
être documenté :
description du projet au format restructuredText,
commentaires pertinents dans le code (si utile à la compréhension),
commentaires des fonctions développées
comporter un répertoire de test où toutes les fonctions Python développées auront un code test unitaire
Environnement de développement et dépôt GIT
Le projet est rattaché à un dépôt GIT que vous aurez créé sur GitHub et à la livraison de vos codes informatiques. Le dépôt devra absolument être remis lors de la livraison finale du projet. Le versionnement étant tracé et daté, il servira pour l’évaluation du travail.
Langages de scripting/programmation
Le projet doit utiliser :
le langage de programmation Python (version >= 3.10) pour les codes sources gérant la lecture, l’analyse, le traitement des données et la présentation des traitements.
et/ou le langage de script bash pour les scripts permettant l’automatisation de certains traitements et de la publication des résultats (vu en R108-Base des systèmes d’exploitation)
Arborescence du projet
Votre projet doit :
être exécuté par le biais d’un script
nom_projet.py. Ce script reprendra la structure classique des programmes vue en R107-Fondamentaux de la programmation et décrite dans le formulaire Python. Il prendra d’éventuels paramètres en arguments spécifiés ci-après.respecter l’arborescence suivante (
PROJETGitHUBdésigne le répertoire auquel est rattaché votre projet et constitue la base du dépôt local Git) :PROJETGitHUB ├── .git/ ├── data/ │ └── ... ├── docs/ │ ├── build/ │ │ └── html/ │ └── source/ │ ├── index.rst │ ├── conf.py │ ├── content/ │ ├── _static/ │ └── _templates/ ├── html/ │ └── ... ├── __init__.py ├── nomprojet/ | ├── nom_projet.py │ └── nom_module_projet.py ├── tests/ │ ├── __init__.py │ └── test_nomprojet.py ├── .gitignore ├── AUTHORS │ └── requirements.txt
.gitle répertoire dédié à Git.datale répertoire dédié à stocker différents fichiers de données récupérées et générées pour les besoin du projet.docsle répertoire dédié à stocker la documentation du projet au format retructuredText (répertoire généré automatiquement par sphinx-build).htmlrépertoire contenant le site web statique de présentation des résultats__init__.pyfichier indiquant la version du projet :__version__ = '0.1.0'
nomprojetle répertoire dédié aux fichiers source Python développés lors du projettestsle répertoire dédié aux tests unitaires des fonctions développées dans le projettests/__init__.pyfichier vide.gitignorele fichier permettant de configurer Git pour ne pas envoyer sur le dépôt distant les fichiers temporairesAUTHORSle fichier indiquant le nom des auteurs et de leurs coordonnéesrequirements.txtfichier texte décrivant la version de Python utilisée et les dépendances du programme python (modules et version des modules Python)
Avertissement
Les fichiers :
.gitignorecommence avec un point.
Note
Vous pouvez ajouter au besoin autant de modules que nécessaires, pour structurer votre code, en les stockant à la racine du répertoire nomprojet.
Paramètres en argument du programme principal
Votre programme devra prendre en arguments les noms des 3 fichiers i-calendar des formations BUT1, BUT2 et BUT3 que vous aurez au préalable extraits de l’emploi du temps et le répertoire dans lequel sera générée la page web :
$ ./nom_projet.py --input-file ADECal_BUT1.ics ADECal_BUT2.ics ADECal_BUT3.ics --output-dir ./../html/
Documentation
La documentation générale du projet devra être écrite au format restructuredText. Vous pourrez pour cela vous appuyer sur le logiciel Sphinx ;
Il conviendra d’ajouter des commentaires doctrings en début de fonction afin de :
préciser ce que fait la fonction,
d’indiquer son auteur, ses dates de création et de dernière modification,
décrire ses paramètres et le cas échéant leurs types,
décrire les bornes d’utilisation de paramètres pour un bon fonctionnement de la fonction et exceptions qui sont suceptibles d’être levées,
ce qu’elle retourne,
donner un exemple d’utilisation.
Tests unitaires
En vous inspirant du TP sur les fonctions, vous devrez écrire un code de test de chaque fonction développée dans le projet.
Celui-ci sera placé dans un programme Python du répertoire tests.