Une API REST pour accéder aux emplois du temps EPSI/WIS. Ceci est une version Python sous format d'api WEB du projet Rust original irori-edt.
Un serveur officiel de cet api est disponnible à : https://epsi.enzomtp.party
- Cloner le dépôt
- Installer les dépendances :
pip install -r requirements.txt
Démarrer le serveur de développement Flask :
python app.pyL'API sera disponible à l'adresse http://localhost:5000
L'API inclut une interface web utilisateur accessible à la racine du serveur (/). Cette interface permet de :
- Visualiser l'emploi du temps semaine par semaine
- Changer facilement entre les différentes semaines
- Enregistrer votre identifiant utilisateur localement dans le navigateur
- Basculer entre un thème clair et sombre
GET /
Paramètres de Requête :
user(obligatoire) : Email de l'école sans le domainebegin(optionnel) : Date de début au format JJ-MM-AAAA (par défaut : aujourd'hui)end(optionnel) : Date de fin au format JJ-MM-AAAA (par défaut : date de début)
Exemple :
GET /?user=john.doe&begin=01-04-2024&end=07-04-2024
GET /<date>
Paramètres de Chemin :
date: La date au format JJ-MM-AAAA
Paramètres de Requête :
user(obligatoire) : Email de l'école sans le domaine
Exemple :
GET /03-04-2024?user=john.doe
GET /week/<date>
Paramètres de Chemin :
date: N'importe quelle date de la semaine souhaitée au format JJ-MM-AAAA
Paramètres de Requête :
user(obligatoire) : Email de l'école sans le domaine
Exemple :
GET /week/03-04-2024?user=john.doe
Cette requête retournera l'emploi du temps pour la semaine complète contenant le 3 avril 2024.
L'API retourne des données JSON au format suivant :
Pour une période :
[
[
{
"name": "Nom du Cours",
"room": "Numéro de Salle",
"teacher": "Nom du Professeur",
"date": "AAAA-MM-JJ",
"start_time": "HH:MM",
"end_time": "HH:MM"
}
]
]Pour une date spécifique :
[
{
"name": "Nom du Cours",
"room": "Numéro de Salle",
"teacher": "Nom du Professeur",
"date": "AAAA-MM-JJ",
"start_time": "HH:MM",
"end_time": "HH:MM"
}
]Pour une semaine complète :
[
[ // Lundi
{
"name": "Nom du Cours",
"room": "Numéro de Salle",
"teacher": "Nom du Professeur",
"date": "AAAA-MM-JJ",
"start_time": "HH:MM",
"end_time": "HH:MM"
}
],
[ // Mardi
// Cours du mardi
],
// ... autres jours de la semaine jusqu'à vendredi
]L'API retourne des codes de statut HTTP appropriés et des messages d'erreur :
- 400 : Requête Incorrecte (paramètres manquants, dates invalides, date de début postérieure à la date de fin)
- 500 : Erreur Serveur (problèmes côté serveur, erreurs lors de la récupération de l'emploi du temps)
Les réponses d'erreur incluent un message expliquant le problème :
{
"error": "Description du message d'erreur"
}Ce projet est sous la même licence que le projet Rust original.