UKPGM
Une application web qui permet à l'Université de Kara de construire au même endroit les emplois du temps de cours et d'examens de toutes ses facultés, en signalant automatiquement les conflits de salle, d'enseignant et de groupe avant publication.
Développeur principal - conception et développement full-stack, au sein d'une équipe de trois
UKPGM est l'outil de programmation utilisé dans toute l'Université de Kara pour planifier les enseignements de ses deux semestres, Harmattan et Mousson. Chaque chef de département soumet son plan d'enseignement pour chaque cours, les gestionnaires placent chaque séance dans une salle et un créneau, et l'application vérifie ce placement au regard des réservations existantes de la salle, de l'enseignant et des étudiants. La structure des facultés, les salles des deux campus, les crédits des matières et les années universitaires sont gérés au même endroit, et un emploi du temps validé est exporté en PDF mis en forme. L'outil est en production pour toute l'université depuis l'année 2023-2024 et fait tourner l'année 2025-2026.
Le problème
Les emplois du temps étaient assemblés à la main, en partie dans des tableurs partagés, en partie sur papier au vice-décanat. Rien ne vérifiait qu'une salle n'était pas réservée deux fois, qu'un enseignant n'était pas attendu à deux endroits en même temps, ou que deux cours d'un même groupe ne se chevauchaient pas ; les conflits n'apparaissaient qu'une fois les cours commencés. Plusieurs versions d'un même planning circulaient en parallèle, sans certitude sur celle qui faisait foi.
L’approche
J'ai conçu et développé l'application en Laravel rendu côté serveur autour d'un modèle unique de l'université : facultés, départements, unités d'enseignement et leurs crédits, salles par campus, et une seule année universitaire active à la fois. Le cœur est un moteur de détection de conflits que j'ai conçu et qui s'exécute à chaque séance programmée en vérifiant cinq choses à la fois - le même cours et ses groupes de TD, le semestre du département, les cours communs à plusieurs départements, et l'agenda propre de l'enseignant - en plus d'un plafond d'heures d'enseignement par jour et par enseignant. La gestion des rôles donne aux chefs de département, chefs de faculté, gestionnaires et au service académique chacun sa vue, et DomPDF transforme un emploi du temps validé en le document imprimé que l'université utilisait déjà.
Le résultat
- Les conflits de salle, d'enseignant et de groupe sont détectés à la saisie de la séance, pas une fois les cours commencés.
- Toute l'université planifie sur un seul système, avec une seule version courante de l'emploi du temps de chaque semestre au lieu de tableurs et de copies papier concurrents.
- Un emploi du temps validé est généré en PDF mis en forme, prêt à imprimer, directement depuis les données, au lieu d'être réassemblé à la main.
- En production pour toutes les facultés depuis l'année 2023-2024 ; année 2025-2026 en cours.
Les chiffres d’usage concrets de ce projet ne sont pas publiés.
Fonctionnalités clés
- Détection automatique des conflits : chaque séance est vérifiée au regard de la salle, de l'enseignant et des autres cours des étudiants avant de pouvoir être enregistrée.
- Plafond d'heures d'enseignement par jour et par enseignant, appliqué au moment de placer les séances.
- Planification des deux semestres (Harmattan et Mousson) dans une année universitaire active, avec un passage propre d'une année à la suivante.
- Plans d'enseignement par département : chaque chef de département soumet ses cours, ses volumes horaires et ses groupes ; les gestionnaires les transforment en emploi du temps daté.
- Recherche de disponibilité des salles : on choisit une plage de dates et un créneau horaire, on voit les salles libres sur les deux campus.
- Réservation de salles avec étape de validation, tenue en cohérence avec l'emploi du temps des cours.
- Suivi de la charge des enseignants : heures planifiées, consommées et confirmées par enseignant.
- Emplois du temps validés exportés en PDF mis en forme, prêt à imprimer.
- Accès par rôle pour les chefs de département, chefs de faculté, gestionnaires et service académique, avec un circuit de demande de compte pour les nouveaux utilisateurs.
Stack
- Laravel 9
- PHP 8
- MySQL
- Blade
- JavaScript
- Bootstrap 5
- spatie/laravel-permission
- Laravel Sanctum
- DomPDF
- TCPDF
- Google reCAPTCHA
- Tâches planifiées (cron)
Développeur principal - conception et développement full-stack, au sein d'une équipe de trois — Université de Kara (Togo) - programmation pédagogique (2026)