Dany Dudiot

EDT Bot V2

Eté 2025 - Projet Personnel - Python (FastAPI, SQLModel), React TS, Git, Docker

EDT Bot est un service qui permet aux étudiants d'informatique de l'université d'Orléans d’accéder à leur emploi du temps personnalisé.

Première version.

Vous pouvez retrouver la premier version d'EDT Bot ici

Pourquoi une nouvelle version.

La première version n'étais pas bien pensée, car elle à évoluée de nombreuse fois. A la fin, l'ajout de nouvelle fonctionnalité devenais impossible car il provoquait des bugs.

Par exemple, les L2 nous avais demander de leurs faire la même chose, mais ajoute une distinction L2/L3 étais impossible à moins de récrire l'intégralité du code.

L'architecture.

Pour cette nouvelle version, on avons crée 3 partie :

  • Une API
  • Un site web
  • Le bot discord

API

L'API est codé en Python, avec FastAPI pour facilité la mise en place de l'API, elle utilise également SQLModel, un ORM basé sur SQLAlchemy qui est développer par la même personne ce qui facilite l'interaction entre les deux.

Dans cette version, nous avons pris en compte les problèmes de l'ancienne version, les cours sont désormais associé à un ou plusieurs Tag (Domaine, Année, Filière, Groupe). De plus, j'ai crée un système de parseur global qui permet de mutualisée certaines partie et de spécialiser en fonction de chaque parseur.

Maintenant, il est beaucoup plus facile, d'ajouter un nouveau calendrier, il suffit juste d'ajouter les Tags et crée un parseur spécifique qui indique comment attribuer les tags.

Nous avons conserver une grande partie des fonctionnalité d'origine, comme le signalement de changement, d'examen. Nous avons également ajout un système de compte afin de facilement pouvoir donner des accès à d'autre personne avec une gestion d'email afin de pouvoir confirmer la création d'un compte, réinitialiser un mot de passe.

Site web

Le lien du site

Nous avons comme projet de crée un site web afin de rendre plus accessible notre service dans devoir passer par discord.

J'ai demander de l'aide à des amis, qui ont l'habitude de faire du développement web, et ils ont dit d'utiliser React, j'ai donc rapidement apprit cette nouvelle technologie à l'aide des vidéo de Grafikart.

Nous avons donc commencer à faire le site, les partie les plus difficile ont été le calendrier que nous avons fait à la main sans aide de libraire, et la partie pour sélectionner son groupe.

Pour le calendrier, nous avons une gestion automatique de l'affichage des jours, par défaut du lundi au vendredi et s'il y a des cours le samedi et dimanche, les colonnes s'ajoute automatiquement, de même pour les heures.

Il y a aussi la possibilité d'afficher plusieurs cours en même temps, ainsi que des événements sur plusieurs jour.

Capture d'écran du site

Bot discord

Le nouveau bot discord reprend, la quasi totalité des fonctionnalité déjà existante, tel que l'envoi automatique des emplois du temps, et les notification de changement de cours

Pour l'envoi automatique, nous l'avons améliorer, afin de permettre aux utilisateur de choisir l'heure d'envoi, ainsi que s'il le veulent le jour même ou la veille.

Pour les notifications de changement de cours, le système à du complètement changer car avant l'ensemble du projet étais directement connecté, mais maintenant, le bot est connecter via un websocket de l'api qui le préviens quand l'api à trouver des changements, puis il récupérer les informations

Capture d'écran de l'edt de la semaine sur discord

La carte

Durant la réalisation du site web, je me suis rendu compte que j'avais toutes les informations pour crée une carte afin d'aider les nouveaux à plus facilement se repérer. J'ai donc légèrement modifier l'api pour ajouter la position des salles. Je n'avais plus qu'à crée une page avec la carte.

Capture d'écran de la carte

La version enseignant

Après le lancement à la rentrée, durant le mois d'octobre, quelque enseignant commence à montrer de l’intérêt pour une version enseignant, grâce à l'architecture facilement modulable, j'ai rajouter un rôle pour les comptes, deux endpoints, et une nouvelle page, et les enseignant avais accès à leur emplois du temps.

Le système de secoure

Durant ma licence, il arrivais que le service d'emplois du temps de l'université ne fonctionne pas, mais grâce à ce projet, l'emplois du temps reste accessible même quand celui de l'université ne fonctionne pas ce qui aide les étudiants et les enseignants.