Projet Google Agenda SIGMA

Accueil

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

AgroToulouse
AgroToulouse
UT2J
UT2J

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 Global Excel
Aperçu global
Commentaires Excel
Commentaires 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.

Pour consulter le script complet, cliquez ici.

Fichier CSV Journal de Modifications
Journal de modifications

Fichier CSV Généré

Après traitement du fichier Excel, le fichier CSV regroupe les informations essentielles (dates, heures, salles, commentaires) pour une conversion fluide vers Google Agenda.

Fichier CSV
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 Global Google Agenda
Aperçu global
Commentaires Google Agenda
Commentaires 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).
Capture de configuration
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 :

  1. Ouvrir Google Agenda :

    Accédez à Google Agenda et connectez-vous.

  2. Paramétrer l’Agenda :

    Cliquez sur le nom de l’agenda, puis sur "Paramètres et partage" pour définir les accès.

  3. Autoriser l’accès :

    Cochez "Rendre disponible pour votre organisation" et partagez avec les adresses e-mail ou groupes dédiés.

  4. Définir les autorisations :

    Choisissez entre Voir uniquement la disponibilité, Voir tous les détails ou Apporter des modifications.

  5. 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 :

  1. 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.

  2. 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]
  3. 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).

  4. 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.

  5. Création d’un Exécutable :

    Créer un fichier .exe pour lancer le programme sans ouvrir Python.

  6. 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é.