Le département informatique de l'IUT de Reims a exprimé le besoin de créer une application web pour gérer les enseignements des enseignants et vacataires professionnels. Chaque année, ces derniers choisissent les matières et les groupes qu'ils souhaitent encadrer pour l'année universitaire suivante. L'application doit permettre une gestion efficace de ces choix tout en intégrant des fonctionnalités avancées pour l'administration et la consultation des données.
Fonctionnalités Principales
Choix des Enseignements
Interface de Sélection
Chaque enseignant ou vacataire peut choisir les matières et le nombre de groupes qu'il souhaite encadrer.
Calendrier Global
Intégration d'un calendrier global des semestres incluant périodes de cours, vacances, stages, SAÉ, et alternances.
Modification des Choix
Les utilisateurs peuvent modifier leurs choix jusqu'à une date limite définie par le département.
Consultation et Administration
Consultation des Choix
Le département peut consulter les choix effectués par chaque enseignant et vacataire pour chaque semestre.
Historique des Choix
Conservation et consultation des choix effectués les années précédentes par les enseignants et vacataires.
Statistiques de Choix
Visualisation des enseignants et vacataires par matière, avec le nombre de groupes pourvus et restants.
Affectation des Groupes
Processus d'Affectation
Affectation manuelle des groupes aux enseignants et vacataires par le département, en fonction des choix effectués et du nombre de groupes disponibles.
Charge Hebdomadaire
Visualisation dynamique de la charge hebdomadaire d'enseignement pour chaque enseignant ou vacataire.
Initialisation des Données
Calendrier Semestriel
Initialisation du calendrier pour chaque semestre.
Maquette Pédagogique
Importation des données à partir d'un fichier Excel fourni par le département.
Technologies Utilisées
Front-End
HTML, CSS, React, JavaScript
Back-End
Symfony, PHP, API Platform, EasyAdmin
DevOps
Docker, Intégration Continue
Qualité du Code
PHP CS Fixer, GrumPHP
Base de Données
Doctrine ORM compatible avec Symfony
Qualité de Code et Automatisation
Style de Code
Utilisation de PHP CS Fixer pour maintenir un style de code homogène.
Scripts Composer
Automatisation des tâches récurrentes.
Contrôle de Qualité
Intégration de GrumPHP pour automatiser les contrôles de qualité du code.
Environnement de Développement
Utilisation de greffons PhpStorm pour améliorer l'environnement de développement.
Conteneurisation
Utilisation de Docker pour les services de base de données et autres composants nécessaires.
Interface Utilisateur
Gestion des Assets
Webpack Encore pour la gestion des assets front-end.
Stylisation
Utilisation de Sass et Bootstrap pour styliser l'interface utilisateur, avec personnalisation pour répondre aux besoins spécifiques.
Thèmes
Implémentation d'un mode clair et sombre pour améliorer l'expérience utilisateur.
Sécurité et Tests
Tests Automatisés
Utilisation de Codeception pour écrire et exécuter des tests automatisés.
Authentification et Autorisation
Mise en place de systèmes de connexion et gestion des permissions.
Gestion des Utilisateurs
Inscription, connexion et validation des comptes utilisateurs.
Intégration Continue
Configuration CI/CD
Mise en place d'un environnement d'intégration continue.
Commandes de Console
Création de commandes spécifiques pour gérer les utilisateurs et les choix d'enseignements.
Améliorations et Optimisations
Recherche et Filtrage
Ajout de fonctionnalités de recherche et de filtrage des enseignements.
Système de Notifications
Notifications pour les dates limites et autres événements importants.
Optimisation de la Performance
Amélioration des performances de l'application pour une meilleure réactivité et une gestion efficace des données.
Conclusion
Ce projet vise à mettre en œuvre une application robuste, maintenable et évolutive, utilisant une large gamme de technologies et de pratiques de développement modernes. En respectant les paradigmes de qualité, l'application permettra de gérer efficacement les enseignements des enseignants et vacataires, tout en offrant une expérience utilisateur optimale et une administration simplifiée.