Bienvenue sur le projet Google Agenda SIGMA, une initiative innovante destinée à moderniser et synchroniser l'emploi du temps du Master Géomatique SIGMA. Vous découvrirez ici toutes les étapes du projet, de la préparation technique à l'intégration finale dans Google Agenda.
Contexte
Le Master Géomatique SIGMA forme aux métiers de l’environnement et de l’aménagement en maîtrisant des techniques de gestion de l’information géographique. Les cours se déroulent à l’AgroToulouse et à l’Université Jean Jaurès (UT2J), qui utilisent des systèmes différents pour communiquer l’emploi du temps.
Les Lieux d'Enseignement
AgroToulouseUT2J
Traditionnellement, les professeurs remplissent un fichier Excel avec le lieu, le jour, l’horaire, l’UE, le nom de l’intervenant et la salle. Les étudiants téléchargent ensuite la dernière version du fichier, méthode qui n’est pas optimale.
Ancien Planning (Excel)
Aperçu globalCommentaires intégrés
Objectifs du Projet
Ce projet vise à offrir aux étudiants un agenda en ligne reprenant toutes les informations du fichier Excel tout en préservant les habitudes de saisie des professeurs.
Convertir le fichier Excel en format CSV.
Publier le CSV sous forme de Google Agenda.
Extraire automatiquement les informations clés via un script Python.
Résultats
Script Python
Le script lit le fichier Excel original, récupère les données et crée un fichier CSV tout en préservant le formatage (couleurs, commentaires, cellules fusionnées). Une interface d'authentification assure la synchronisation automatique avec Google Agenda.
Il permet également d'enregistrer les modifications apportées à l'agenda Excel dans un fichier CSV journal de modifications.
Après traitement du fichier Excel, le fichier CSV regroupe les informations essentielles (dates, heures, salles, commentaires) pour une conversion fluide vers Google Agenda.
Visualisation du Fichier CSV
Nouveau Planning - Google Agenda
L'agenda en ligne intègre l’ensemble des informations extraites du CSV. L'affichage clair des salles, horaires et intervenants améliore considérablement l’expérience utilisateur.
Aperçu globalCommentaires intégrés
Contraintes Techniques
Au cours du projet, plusieurs contraintes liées au formatage des données, à l’extraction des informations et à l’intégration avec Google API ont été rencontrées :
Catégorie
Contrainte
Formatage Excel
Gérer les cellules fusionnées, les couleurs et les commentaires.
Créneaux Horaires
Associer les créneaux aux colonnes et découper en matin/Après-midi.
Mois Chevauchants
Identifier et découper les chevauchements pour éviter les doublons.
Contenus Multiples
Séparer les intitulés multiples et filtrer les valeurs non pertinentes.
Intégration Google API
Générer credentials.json et utiliser les bibliothèques googleapiclient et google-auth.
Préparation Technique
Avant d'exécuter le script, préparez votre environnement de travail en suivant ces étapes :
Créer un dossier de travail et y placer le fichier Excel de base.
Télécharger et copier dans ce dossier les fichiers : credentials.json, token.json, config.txt, CNUM_SIGMA.py.
Configurer le fichier config.txt avec les chemins d’accès aux documents.
Installer les dépendances avec : pip install google-api-python-client pip install google-auth-oauthlib
Vérifier les paramètres du fichier Excel (colonnes et lignes pour dates et horaires).
Fichier de Configuration
Accès des étudiants à l’agenda
Pour partager l’agenda Google à l'ensemble des étudiants du master, il faut suivre les étapes :
Cliquez sur le nom de l’agenda, puis sur "Paramètres et partage" pour définir les accès.
Autoriser l’accès :
Cochez "Rendre disponible pour votre organisation" et partagez avec les adresses e-mail ou groupes dédiés.
Définir les autorisations :
Choisissez entre Voir uniquement la disponibilité, Voir tous les détails ou Apporter des modifications.
Notification :
Les étudiants recevront une notification avec un lien pour ajouter l’agenda.
Pistes d’amélioration
Afin d’optimiser davantage ce code, nous avons identifié différentes pistes d’améliorations ainsi que quelques recommandations :
Horaires Précis :
Récupérer les horaires précis dans les commentaires et les ajuster directement sur l’agenda. Par exemple, le format “8h30-12h30” ne fonctionne pas pour l’instant, seul le format “9h-12h” est reconnu.
Format des Commentaires :
Harmoniser la présentation des commentaires en adoptant le format suivant :
Horaire précis : [ex. 10h-12h]
Nom de l’intervenant(e) : [ex. M. Marc Lang]
Salle de cours : [ex. 1113 Ensat]
Autres informations : [ex. prévoir un ordinateur portable]
Notification par Mail :
Envoyer un mail à chaque utilisateur de l’agenda pour notifier toute modification (en indiquant le nom de l’UE et la date).
Filtrage des Données :
Permettre le filtrage de l’emploi du temps par UE, lieu ou intervenant, par exemple en utilisant la fonction groupby de pandas.
Création d’un Exécutable :
Créer un fichier .exe pour lancer le programme sans ouvrir Python.
Améliorer le script
Définir dès le début du script les lignes et colonnes correspondant au tableau concerné, puis d'externaliser ces paramètres dans un fichier de configuration séparé. Le but est d'éviter que le script ne soit limité à un tableau fixe.
Factoriser le script pour une plus grande lisibilité.