********************************************** Cahier des charges ********************************************** Les objectifs, la finalité et les éléments de mise en oeuvre du projet, qui vous est confié (**cahier des charges**) sont donnés ci-dessous. .. warning:: Votre mandataire hiérarchique (l'enseignant en charge de votre groupe) vous communiquera le numéro du projet qui vous est attribué et donc les attentes fonctionnelles spécifiques à votre projet. ------------------------- Cadre et objectif général ------------------------- Le projet a pour objectif d'exploiter les **données traitées extraites d'ADE** fournies sous forme d'**exports** ``.ics`` :ref:`mis à votre disposition` par la suite. Ses étapes principales consistent à |:| * lire les données des emplois du temps (qui sont composés d'une série d'évènements désignant l'ensemble des créneaux de l'emploi du temps) |;| * les interpréter pour en extraire les évènements pertinents en lien avec votre projet (par exemple, ne garder que les créneaux d'un vacataire donné ou d'un groupe de TD donné) |;| * les traiter pour répondre à l'objectif de votre projet (par exemple, calculer le nombre total d'heures d'un groupe de TD donné) |;| * construire une représentation textuelle des données calculées (généralement un tableau présentant les résultats) |;| * créer éventuellement une représentation graphique des données calculées puis de l'exporter en `.png`. Le projet doit |:| * utiliser les mêmes outils et le même système d'exploitation que dans les ressources **R107-BasesProg** et **R108-Shell**, à savoir le shell Bash sous Linux |;| * être documenté (commentaires pertinents dans le code) en rédigeant cette documentation en anglais. ----------- Dépôt Arche ----------- Le projet est rattaché à un dépôt Arche (sur votre ENT) dédié aux versionnements et à la livraison de vos codes informatiques. Le versionnement étant tracé et daté, il servira de **preuves** pour le travail à réaliser pendant les heures d'autonomie. ----------------------------------- Langages de scripting/programmation ----------------------------------- Le projet doit utiliser |:| * les filtres Linux et plus particulièrement **Sed** et **Awk** pour les **codes informatiques** gérant la lecture, l'analyse, le traitement des données et la publication de leur analyse |;| * le langage de script **Bash** (vu en **R108-Shell**) pour les scripts permettant l'automatisation du traitement et de la publication des résultats. ------------------------------ Environnement de développement ------------------------------ Les codes informatiques du projet peuvent être développés en utilisant un simple éditeur de texte, mais un IDE minimal tel que **Geany** est conseillé. Votre travail doit |:| * être créé dans un répertoire :file:`SAE15` situé dans votre répertoire personnel (*home directory*) |;| * être centralisé dans un *projet*, rattaché au répertoire :file:`SAE15`. ---------------------- Arborescence du projet ---------------------- Votre projet doit |:| * être exécuté par le biais d'un script :file:`projetX.awk`, avec ``X`` à remplacer par le numéro de votre projet, présent dans votre répertoire :file:`SAE15` |;| * respecter l'arborescence suivante |:| .. code-block:: bash SAE15/ ├── data/ │ └── ... ├── tools/ │ └── ... ├── tests/ │ └── ... └── projetX.awk avec : * :file:`tools` le repertoire où vous téléchargerez les scripts fournis par vos enseignants au fur et à mesure de l'avancement du projet |;| * :file:`data` le répertoire dédié à stocker différents fichiers textes nécessaires au projet, fournis par la suite |;| * :file:`tests` le répertoire dédié aux tests unitaires, fournis par la suite |;| * :file:`projetX.awk` le script Awk contenant les codes que vous allez écrire pour votre projet et dont la structure (découpage en fonctions) sera décrite par la suite. .. note:: Vous pouvez |:| * ajouter au besoin autant de modules que nécessaires, pour structurer votre code, en les stockant à la racine du projet |;| * exploiter les constantes fournies dans le module :file:`tools_rtmodel.awk` (téléchargeable :download:`ici <../tools/tools_rtmodel.awk>`). .. _donnees_ics_manipulees: ---------------------- Données ics manipulées ---------------------- Les données des emplois du temps ADE des groupes de TD du BUT1 et du DUT2 de l'IUT de Grenoble - auxquels se limitent ce projet - ont été collectées par ses enseignants depuis leur portail d'accès Web à ADE et ont été simplifiées. Elles vous sont fournies sous forme de fichiers `.ics` respectant le standard `iCalendar` créé pour l'échange de données de calendrier (cf. `Standard iCalendar `_). Ces fichiers (1 fichier par groupe de TD) sont à télécharger et à versionner dans le répertoire :file:`data` de votre projet |:| * Emploi du temps des 4 groupes de TD de BUT1 au semestre 1 |:| :download:`S1G1.ics <../exports/ics/S1G1.ics>`, :download:`S1G2.ics <../exports/ics/S1G2.ics>`, :download:`S1G3.ics <../exports/ics/S1G3.ics>`, :download:`S1G4.ics <../exports/ics/S1G4.ics>`. * Emploi du temps des 2 groupes de TD de DUT2 en formation initiale au semestre 3 |:| :download:`S3G1.ics <../exports/ics/S3G1.ics>`, :download:`S3G2.ics <../exports/ics/S3G2.ics>`. * Emploi du temps des alternants de DUT2 à l'année (semestre 3 et semestre 4) |:| :download:`UFA.ics <../exports/ics/UFA.ics>`. * Emploi du temps contenant 3 événements de test |:| :download:`Calendrier.ics <../exports/ics/calendrier_3evts_UFA.ics>`.