Rapport PI
Rapport PI
Rapport PI
Nous exprimerons notre gratitude et notre respect le plus profond à nos chers professeurs, chacun
par son nom, pour la qualité de la formation qu’ils nous ont fourni.
Nous ne s’aurons terminer sans remercier le corps administratif pour les efforts qu'ils déploient
afin de nous assurer une formation de qualité.
2
Table des matières
Remerciements ................................................................................................................. 2
Table des matières ............................................................................................................ 3
Liste des figures ................................................................................................................ 5
Résumé............................................................................................................................. 6
Abstract ............................................................................................................................ 7
Introduction générale ....................................................................................................... 8
Conception général de projet ............................................................................................ 9
I. Introduction ...................................................................................................................... 9
II. Présentation du projet....................................................................................................... 9
1. Origine du projet ............................................................................................................... 9
III. Objectifs du projet ......................................................................................................... 9
1. Objectifs personnels .......................................................................................................... 9
2. Objectifs de la plateforme.................................................................................................10
IV. Gestion du projet ..........................................................................................................10
1. La méthodologie Scrum : ..................................................................................................10
2. Equipe du projet...............................................................................................................10
3. Contraintes du projet........................................................................................................11
4. Calendrier du projet .........................................................................................................11
Analyse des besoins .........................................................................................................12
I. Introduction .....................................................................................................................12
II. Les besoins .......................................................................................................................12
1. Besoins non fonctionnels ..................................................................................................12
2. Besoins fonctionnels : .......................................................................................................12
3. Conclusion : .....................................................................................................................13
Conception générale de la plateforme ..............................................................................14
III. Identification des acteurs ..............................................................................................14
1. Diagramme de cas d’utilisation .........................................................................................14
2. Diagrammes de classes .....................................................................................................15
3. Diagrammes de séquences ...............................................................................................16
4. Diagrammes de déploiement ............................................................................................17
3
Implémentation ...............................................................................................................18
I. Micro service....................................................................................................................18
II. Backend ...........................................................................................................................18
III. Génération des emplois du temps .................................................................................19
IV. Sécurité ........................................................................................................................22
V. Front end .........................................................................................................................23
VI. Documentation du web service .....................................................................................23
Réalisation et mise en œuvre ...........................................................................................25
I. Environnement de développement ...................................................................................25
1. Outils logiciels ..................................................................................................................25
II. Présentation du projet......................................................................................................27
Bilan ................................................................................................................................30
I. Évaluation générale ..........................................................................................................30
II. Problèmes rencontrés et résolution ..................................................................................30
1. Problèmes ........................................................................................................................30
2. Résolution........................................................................................................................30
III. Dynamique du groupe ..................................................................................................31
IV. Compétences acquises ..................................................................................................31
Conclusion Générale ........................................................................................................32
Bibliographie ...................................................................................................................33
Annexes ...........................................................................................................................34
4
Liste des figures
5
Résumé
Dans le cadre de notre formation en ingénierie informatique Big Data et Cloud Computing à
l’École Normale Supérieure de l’Enseignement Technique de Mohammedia, nous sommes amenés à
réaliser un projet d’innovation dont l’objectif principal est de préparer les futurs ingénieurs à être
capables de traiter des situations complexes, à se comporter d’une manière éthique et professionnelle
et de mettre l’accent sur leurs compétences.
En lien avec le processus de digitalisation des services pédagogiques au sein de notre école et
étant donné que ce processus sera traité sous forme de micro services, nous avons décidé de travailler
sur le micro service qui concerne la création d’une plateforme de gestion des emplois du temps. Cette
plateforme vise à faciliter le déroulement des séances et des examens en prenant en compte le confort
de toutes les parties prenantes y compris les enseignants, les étudiants et les différents départements.
Le présent rapport expose dans un premier temps la conception générale du projet, l’étude et
l’analyse des besoins puis l’architecture de l’application, sa conception générale et la réalisation et la
mise en œuvre de notre projet.
6
Abstract
As part of our training in Computer Engineering Big Data and Cloud Computing at the High
normal school of technical studying, and in coherence with the process of digitalization of the
educational services of the school, we were led to carry out an innovative project which concerns the
implementation of digital systems for managing timetables. Our project aims to facilitate the
organization of sessions and optimize the management of resources.
In this report we are going to present the various phases involved in the execution of our project
from the analysis of the needs to the assessment of our work.
7
Introduction générale
Le projet d’innovation est une occasion pour les élèves ingénieurs de mettre en pratique leurs
acquis techniques, d'acquérir de nouvelles compétences, de développer leurs esprits de collaboration,
d’innovation et de créativité et de dépasser leurs limites. Le projet d’innovation est également une
opportunité, pour eux, de réaliser un projet concret et de voir les résultats tangibles du travail.
Dans ce sens et en cohérence avec le projet de digitalisation de l’école, nous avons été chargés
de concevoir une plateforme de gestion des enseignements et des emplois du temps qui a pour objectif
de concevoir une solution informatique pour organiser de manière efficace les cours et faciliter
l’interaction entre les enseignants et les étudiants. Par le biais d’une analyse approfondie des besoins
et des attentes des parties prenantes, nous avons réalisé une plateforme qui propose différentes
fonctionnalités variantes de la visualisation des emplois du temps des classes à la gestion de
l’infrastructure de l’établissement et des ressources humaines et la génération d’emplois de temps
selon le type de l’utilisateur.
Notre projet sera d’un grand bénéfice pour les différents acteurs de l'établissement car il améliore
la communication entre ces derniers, leurs offre une meilleure flexibilité puisqu’il leurs facilite la
visualisation des emplois du temps. Comme il garantit une utilisation efficace des installations
disponibles, évite les problèmes logistiques et minimise les erreurs humaines.
Dans ce rapport nous allons présenter les différentes étapes de réalisation de notre projet. Notre
rapport expose dans un premier volet, le contexte général du travail. Dans un second volet, l’analyse
des besoins fonctionnels et non fonctionnels. Dans un troisième volet, l’architecture de l’application.
Dans un quatrième volet, la conception de l’application. Dans un cinquième volet les étapes de mise
en œuvre de notre projet. Dans un dernier volet, le bilan de notre projet, les défis rencontrés et les
solutions mises en place.
8
Conception général de projet
I. Introduction
Le but de cette partie introductive est de présenter d’une manière générale notre projet en
introduisant l'origine de l'idée, nos objectifs et enjeux ainsi que les méthodes adopter pour assurer une
bonne gestion de notre projet.
1. Objectifs personnels
En outre, notre plateforme facilite les échanges d'importation et d'exportation des emplois du
temps. Elle offre également la fonctionnalité de visualisation de l'emploi du temps pour tous les
départements de l'école offrant ainsi une vue d'ensemble cohérente pour les étudiants, les enseignants
et l'administration. Ce en garantissant une meilleur expérience utilisateur.
1. La méthodologie Scrum :
Notre équipe a effectué des réunions quotidiennes (Daily Scrum) pour garantir la transparence
du travail et offrir un espace aux membres de l'équipe pour demander de l'aide, partager les réussites
et mettre en évidence les problèmes et les obstacles. Bien que notre Scrum Master soit généralement
responsable de l'animation du Daily Scrum, toute l'équipe collaborait et participait pour assurer le
succès de l'application de la méthode Scrum.
2. Equipe du projet
10
3. Contraintes du projet
Nous identifions que les limitations, les défis et les incitations sont concentrés dans les aspects
suivants du projet de gestion des emplois du temps :
Délai de réalisation : il est essentiel de répartir le temps efficacement entre les
différentes tâches à accomplir.
4. Calendrier du projet
La phase de planification de notre projet était une étape essentielle pour le bon déroulement de
notre travail et l’accomplissement de nos objectifs, dans le tableau ci-dessous nous avons résumé les
étapes que nous avons faites tout au long de notre projet :
20 Février-
Conception du projet 4 semaines
21 Mars
25 Mars- 7
Développement 6 semaines
Mai
11
Analyse des besoins
I. Introduction
Dans le cadre de la digitalisation de l'école, nous avons été chargés de réaliser une plateforme de
gestion des enseignements et emplois du temps. Conçue pour simplifier la planification des horaires
et optimiser l’utilisation des ressources. Avant de commencer tout projet il est primordial de faire une
analyse des besoins. Dans ce chapitre nous allons présenter les besoins fonctionnels et non
fonctionnels de notre projet.
Validité : Les informations fournies par la plateforme doivent être cohérentes, exactes et
conformes aux exigences et aux attentes.
Fiabilité : Le système doit être fiable et disponible en minimisant les temps d'arrêt causés
par les pannes et les interruptions de service.
Maintenabilité : Le système doit être facile à maintenir et à faire évoluer. Il doit permettre
des mises à jour et des ajouts ultérieurs sans impacter négativement la stabilité du
système.
Sécurité : Le système doit garantir la protection des données de l’école contre les
violations potentielles
2. Besoins fonctionnels :
Notre plateforme doit présenter trois espaces différents selon les autorisations de l’utilisateur.
Le premier espace est celui de l’administrateur : Notre plateforme doit permettre à
l’administrateur de faire la gestion de l’infrastructure de l'établissement (salles de classe,
amphithéâtres, laboratoires, ateliers, etc.), des enseignants, des modules, des filières, des
départements et des classes. Elle doit lui permettre également de générer les emplois du temps.
12
Le deuxième espace est l’espace enseignant : la plateforme doit donner au professeur la possibilité
de voir son emploi du temps et soumettre les jours où il est indisponible dans un formulaire qu’elle lui
propose.
Le troisième espace concerne tout type d’utilisateur il ne doit pas nécessiter l’authentification et
doit permettre à son utilisateur de voir l’emploi du temps de la classe qu’il souhaite.
Notre plateforme doit générer des emplois du temps en respectant un ensemble critères :
-Prendre en considération les disponibilités des enseignants.
-Un enseignant ne doit pas avoir plusieurs classes simultanément, sauf dans le cas de cours
mutualisés.
-Une salle doit être occupée par une seule classe à la fois, sauf si c’est un cours mutualisé.
-Deux cours ne doivent pas être enseignes à une classe au même fuseau horaire.
-Chaque classe doit avoir au moins une après-midi de libre.
-Prendre en considération la capacite volumique de la salle de cours avant de l’affectée à une
classe donnée.
-Éviter de planifier les cours d’un enseignant le matin et le soir du même jour.
-Essayer d’assigner les horaires matinaux aux cours techniques.
-Les horaires des séances doivent se faire par tranche de deux heures de 8h :30 à 12h :30 et de 14h
à 18h du lundi au jeudi et de 14h :30 à 18h :30 le vendredi.
3. Conclusion :
L’analyse des besoins est nécessaire à la réussite du projet car elle permet aux développeurs de
passer à la conception en étant sur d’avoir compris les exigences et les attentes des parties prenantes.
13
Conception générale de la plateforme
Un acteur est un élément externe agissant sur l’application. Les acteurs susceptibles d’interagir
avec notre plateforme sont :
Étudiant : les étudiants peuvent visualiser les emplois du temps des différentes classes
Enseignant : les professeurs peuvent voir leurs emplois du temps et soumettre les jours où ils sont
indisponibles
Administrateur : cet acteur peut faire la gestion des départements, filières, modules, enseignants
et infrastructure de l’établissement. Il peut également générer les emplois du temps.
14
Figure 2 : Diagramme de cas d’utilisation des administrateurs.
2. Diagrammes de classes
Notre diagramme de classe compte dix entités. L'entité "User " représente les utilisateurs du
système avec leurs informations de base. La classe "Enseignant " hérite de "User " et contient la
spécialité comme information supplémentaire. La classe "nonDisponibilité " gère les indisponibilités
des enseignants, c’est pour cette raison qu’elle est en liaison un à plusieurs avec la classe "
Enseignant ". L’entité "ElementDeModule "est au centre de notre diagramme, à partir de celle-ci nous
pouvons savoir quel enseignant l'enseigne, car nous considérons que chaque élément de module est
unique en fonction de l'enseignant qui l'enseigne. Cela est dû au fait que l'administrateur fournira un
fichier Excel indiquant le professeur attribué à chaque classe pour enseigner chaque élément de
module. A partir de l’élément de module, nous pouvons également connaitre la salle où il est enseigné,
ou encore le module auquel il appartient. Depuis le module nous pouvons savoir la classe car chaque
module est unique selon la classe qui l’étudie. Depuis la classe, nous pouvons connaitre le semestre
ainsi que la filière de cette classe et enfin le département auquel la filière est rattachée.
15
Figure 3 : Diagramme de classes.
3. Diagrammes de séquences
16
Figure 4 : Diagramme de sequences.
4. Diagrammes de déploiement
17
Implémentation
I. Micro service
Notre projet est L'ENSET a lancé un ambitieux projet de digitalisation visant à moderniser et
automatiser ses services, notamment la gestion des emplois du temps. Dans le cadre de ce projet, l'école
s'est fixée pour objectif de mettre en place un système de microservices, une architecture moderne et
flexible qui permettra une intégration harmonieuse des différents services numériques (voir annexe-1)
Le microservice dédié à la gestion des emplois du temps sera conçu pour répondre aux besoins
spécifiques de l'école, en offrant une solution efficace et conviviale pour la planification et la gestion
des emplois du temps des étudiants et des enseignants. Grâce à ce microservice, les utilisateurs pourront
accéder facilement à leur emploi du temps en ligne, consulter les horaires des cours, des séminaires et
des autres activités, et recevoir des notifications en cas de changements ou d'annulations.
Ce microservice sera intégré à la plateforme unifiée de l'ENSET, garantissant ainsi une
authentification unifiée et une expérience utilisateur fluide. De plus, il s'appuiera sur les dernières
avancées technologiques, telles que les architectures orientées services, les API et les outils
d'automatisation DevOps, afin d'assurer une mise en œuvre efficace et une évolutivité future.
II. Backend
Dans le développement de notre application backend, nous avons utilisé le framework Spring pour
suivre les bonnes pratiques de conception et créer un système modulaire et efficace.
Nous avons organisé notre backend en plusieurs packages distincts, en suivant l'architecture MVC
(Modèle-Vue-Contrôleur) préconisée par Spring. Cette approche nous a permis de séparer clairement
les différentes couches de notre application et de favoriser la maintenabilité et la facilité d'extension.
Le package des entités regroupe les différentes classes qui représentent les objets essentiels de
notre système. Ces entités peuvent inclure des modèles tels que les cours, les enseignants, les salles de
classe, etc. Le package des repositories contient les interfaces de repositories qui étendent les
fonctionnalités fournies par Spring Data JPA. Ces interfaces définissent les méthodes pour accéder et
manipuler les données dans la base de données, en utilisant des requêtes et des opérations prédéfinies.
Le package des services contient la logique métier de notre application. Nous avons défini des
classes de services qui encapsulent les opérations et les règles métier liées à la création des emplois du
temps. Ces services utilisent les repositories pour accéder aux données nécessaires et effectuer les
calculs et les manipulations requises. La séparation entre les services et les repositories garantit une
meilleure abstraction des couches logiques de notre application.
18
Enfin, nous avons développé la partie web du REST API en utilisant les fonctionnalités
fournies par Spring. Nous avons créé des classes de contrôleurs qui définissent les points de
terminaison de notre
API et les actions associées à chaque route. Les contrôleurs reçoivent les requêtes HTTP, traitent
les données, et retournent les réponses appropriées.
En séparant notre backend en plusieurs packages, nous avons pu adopter une approche modulaire
qui facilite la gestion des différentes responsabilités de notre application. Cela permet également de
favoriser la réutilisabilité du code, la maintenabilité et l'évolutivité de notre système.
19
Au début de notre processus, toutes les combinaisons d'horaires pour les cours, les enseignants
et les salles de classe étaient attribuées de manière aléatoire. Cela signifie que la première population
d'individus était générée sans tenir compte des contraintes spécifiques de l'école. Cette approche
aléatoire nous a permis d'explorer un large éventail de solutions potentielles dès le départ.
Pour évaluer les individus d'une population, nous avons utilisé plusieurs critères pour détecter
les conflits dans les emplois du temps. Les conflits peuvent survenir lorsqu' un professeur à deux
séances en même temps, lorsqu'une salle de classe est utilisée pour deux séances en même temps,
lorsqu'une séance est planifiée le mercredi après-midi, ou lorsqu'une séance est programmée deux
fois pour la même classe. Nous avons attribué un score à chaque individu en comptant le nombre total
de conflits présents dans son emploi du temps.
Ensuite, nous avons sélectionné les individus ayant le plus petit nombre de conflits pour le
processus de croisement. Dans notre approche, nous avons effectivement utilisé deux méthodes de
croisement différentes pour échanger les emplois du temps entre les individus et les séances de
même classe. Cela nous a permis de favoriser la diversité et d'explorer différents schémas de
planification.
La première méthode de croisement consistait à sélectionner deux individus parents et à
échanger directement les emplois du temps complets entre eux. Cela signifie que les horaires des
cours, les enseignants attribués et les salles de classe utilisées étaient échangés entre les deux
individus parents. Cette opération de croisement nous permettait de combiner les caractéristiques
prometteuses de chaque parent et de générer des individus enfants qui étaient potentiellement
meilleurs en termes de résolution des conflits.
20
Figure 8 : Croisement et mutation des emplois.
La deuxième méthode de croisement était spécifique aux séances de même classe entre les
emplois du temps de deux individus. Nous sélectionnons des séances de même classe entre les deux
individus parents et nous échangions ces séances entre eux. Cela signifiait que les horaires spécifiques
pour une classe donnée étaient échangés entre les individus parents, tout en conservant les autres
parties des emplois du temps inchangés. Cette opération permettait de rechercher des configurations
plus optimales pour les séances de même classe, en prenant en compte les contraintes spécifiques
liées à chaque classe.
En utilisant ces deux méthodes de croisement, nous avons pu combiner efficacement les
caractéristiques des individus parents et explorer différentes possibilités de planification. Cela nous a
permis d'améliorer la qualité des emplois du temps de chaque génération et de converger vers des
solutions plus optimales au fil du temps.
Nous avons également introduit un facteur de mutation dans notre algorithme. La mutation est
une opération aléatoire qui modifie légèrement un individu en changeant certains horaires de cours
de façon aléatoire. Cela permet d'introduire une exploration supplémentaire dans l'espace des
solutions et d'éviter de rester coincé dans des optimums locaux.
21
Figure 9 : Croisement et mutation des séances.
En répétant ces étapes de sélection, croisement et mutation sur plusieurs générations, nous avons
pu obtenir une population d'individus dont les emplois du temps présentaient de moins en moins de
conflits. Nous avons choisi l'individu final avec le nombre le plus faible de conflits comme solution
optimale pour l'emploi du temps de notre école.
En utilisant l'algorithme génétique de cette manière, nous avons réussi à créer des emplois du
temps pour notre école qui évitent efficacement les conflits et répondent aux contraintes spécifiques
telles que les disponibilités des enseignants, les salles de classe et les préférences des élèves. Cela
nous a permis d'obtenir une répartition équilibrée des cours et d'optimiser l'utilisation des ressources
disponibles.
IV. Sécurité
Dans ce projet, la couche de sécurité joue un rôle essentiel dans la protection de l'application.
Avec Spring Security on a réussi de mettre en place des mécanismes d'authentification et
d'autorisation robustes.
Spring Security offre une large gamme de fonctionnalités pour sécuriser les points de terminaison
de l'API REST. Il permet de configurer des filtres de sécurité, des intercepteurs et des règles
d'autorisation basées sur les rôles des utilisateurs, ainsi garantir que seuls les utilisateurs authentifiés
et autorisés peuvent accéder aux ressources et aux opérations spécifiques de l'API.
Pour renforcer la sécurité, dans ce projet on a utilisé également JSON Web Token (JWT). Qui
permet d'échanger des informations d'authentification de manière sûre et fiable entre le client et le
serveur. Avec l'utilisation de JWT, les utilisateurs peuvent s'authentifier avec succès et recevoir un
jeton JWT qui sera ensuite utilisé pour autoriser les requêtes futures.
22
V. Front end
Notre application de gestion des emplois du temps est développée avec le framework Angular,
qui fournit une solution performante pour la création d'interfaces utilisateur interactives et réactives
sur le web.
Les composants jouent un rôle central dans cette architecture, représentant chaque élément
spécifique de l'interface utilisateur avec leur propre logique, données et comportements. Par exemple,
nous avons des composants dédiés à l'affichage du calendrier des emplois du temps et à la gestion des
professeurs, parmi d'autres fonctionnalités.
Pour assurer une cohérence visuelle et une navigation fluide, nous avons organisé l'interface en
différentes sections, regroupant des composants spécifiques tels que la navbar et la sidebar dans la
section "Widgets", des composants d'ajout et d'édition dans les sections "Add" et "Edit", et des
composants de gestion dans la section "Gestion". Nous avons également utilisé des modules anguleux
pour promouvoir la modularité et la réutilisation. Ces modules combinent des fonctions liées et
facilitent leur importation dans d'autres parties de l'application. Par exemple, nous avons un dossier
"modèles" contenant des interfaces TypeScript définissant la structure des données, telles que les
classes, les filières, les modules, etc. Ces modèles sont utilisés pour communiquer avec le backend
via des services.
Le système de routage d'Angular gère la navigation entre les différentes vues ou pages de
l'application, ce qui rend la navigation plus facile pour les utilisateurs. Pour communiquer avec
backend, nous utilisons les services Angular basés sur les fichiers « service.ts ». Ces services
regroupent la logique métier et les opérations liées aux données, comme les requêtes HTTP vers le
backend et la gestion des réponses. Les fichiers de constituée de configuration spécifiques à chaque
environnement sont stockés dans le dossier "environments", permettant une configuration flexible de
l'application selon les différents environnements. Pour les styles visuels, nous utilisons le dossier
"assets" pour gérer les styles Angular, en définissant des règles de style spécifiques pour chaque
composant, assurant ainsi une présentation cohérente et personnalisée de l'interface utilisateur.
23
1. Microservice "Enseignant" : Le microservice "Enseignant" est responsable de la gestion des enseignants.
Il permet de récupérer, mettre à jour, supprimer et ajouter des enseignants dans le système. Il offre
également des fonctionnalités de recherche pour trouver des enseignants spécifiques.
3. Microservice " Importation de données à partir de fichiers EXCEL" : Ce microservice permet d'importer
des données d'emplois du temps à partir de fichiers EXCEL. Il effectue également l'extraction et la
transformation des données pour les intégrer dans le système d'emplois du temps.
Chaque microservice joue un rôle spécifique dans l'API Emploi du Temps, permettant une gestion
complète et efficace des informations relatives aux emplois du temps dans le système. En combinant ces
microservices, nous pouvons effectuer diverses opérations telles que la planification des cours,
l'assignation des enseignants, la réservation des salles, etc. Comme, nous pouvons interagir avec les
données de manière précise et efficace pour répondre aux besoins de gestion des emplois du temps.
24
Réalisation et mise en œuvre
I. Environnement de développement
1. Outils logiciels
Afin de traiter le frontend et le backend séparément et de manière efficace nous avons utilisés
deux d’IDE différents :
Visual Studio Code est un éditeur de code simplifié, qui est gratuit et développé en
open source par Microsoft. Il fournit aux développeurs à la fois un environnement de
développement intégré avec des outils permettant de faire avancer les projets techniques,
de l’édition, à la construction, jusqu’au débogage.
GitHub est une plateforme d’hébergement de code pour le contrôle des versions et
la collaboration. Il nous a permis de travailler ensemble sur notre projet.
Git est un outil DevOps utilisé pour la gestion du code source. Nous avons utilisé Git pour
suivre les changements dans le code source et nous a permis aussi de travailler ensemble au même
temps.
Postman est une API pour construire et utiliser des API, peut être utilisé pour écrire
des tests fonctionnels, des tests d’intégration, des tests de régression, et plus encore. Nous
avons utilisé Postman pour tester les méthodes CRUD relatives à notre API RES
25
Le Spring Framework (Spring) est un Framework d’application
open source qui fournit un support d’infrastructure pour le
développement d’applications Java.
Algorithme :
L’algorithme génétique est une méthode pour résoudre les
problèmes d’optimisation à la fois limités et non contraints qui est basée
sur la sélection naturelle, le processus qui conduit l’évolution biologique.
Sécurité :
Spring Security est un Framework qui fournit diverses
fonctionnalités de sécurité comme : l’authentification, l’autorisation de
créer des applications Java Enterprise sécurisées.
JSON Web Token ou JWT, comme il est plus communément appelé, est un standard Internet
ouvert (RFC 7519) pour la transmission sécurisée d’informations de
confiance entre les parties de manière compacte. Les jetons contiennent
des revendications qui sont encodées en tant qu’objet JSON et sont signées numériquement en
utilisant un secret privé ou une paire de clé publique / clé privée.
Bases de données :
OpenPDF est une bibliothèque Java gratuite pour créer et éditer des fichiers PDF
avec une licence open source LGPL et MPL.
26
II. Présentation du projet
Notre plateforme dispose d'une page d'accueil, qui est illustrée ci-dessous :
27
ci-dessous l’espace dédié au emplois du temps des différentes filières :
La page d’authentification :
28
Figure 17 : Page Profile
29
Bilan
I. Évaluation générale
Une fois le travail accompli, nous avons été pleinement satisfaits des résultats obtenus. Nous avons
réussi à développer une plateforme cohérente qui offre toutes les fonctionnalités visées par notre équipe
y compris la génération des emplois du temps et l’accès à la plateforme pour toutes les parties prenantes
de notre école. Grâce à notre plateforme, il suffit un simple clic pour générer des emplois du temps, gérer
les salles et les enseignants en prenant compte de leurs disponibilités ce qui va assurer une meilleure
organisation des cours et des examens.
2. Résolution
Pour résoudre les problèmes rencontrés, nous avons effectué des recherches approfondies sur
l'algorithme génétique et son application à la génération des emplois du temps. Ces recherches ont
été renforcées par nos connaissances préalables acquises lors de cours antérieurs, où nous avions
étudié et examiné l'exemple de l'algorithme génétique. Cette compréhension approfondie nous a
permis de mieux cerner les concepts clés et de les adapter à notre propre projet. Grâce à une
collaboration étroite au sein de notre équipe, nous avons pu développer une approche personnalisée
pour la génération des emplois du temps, en prenant en compte les contraintes spécifiques de notre
école. Cette combinaison de recherche, de compréhension approfondie et de travail d'équipe nous a
permis de surmonter les problèmes rencontrés et de proposer une solution solide et efficace pour notre
application de gestion des emplois du temps.
30
III. Dynamique du groupe
Pour garder la dynamique de notre équipe nous avons effectué plusieurs réunions tout au long de
notre travail, nous avons gardé une bonne communication entre les membres du groupe que ce soit à
distance ou présentielle et nous étions collaboratifs.
Grace a ce projet nous avons renforcé notre esprit d'équipe et notre capacité d'écoute active. Nous
avons également amélioré nos techniques de communication, ce qui a contribué à une meilleure
collaboration et à des échanges plus efficaces au sein de notre équipe. En travaillant ensemble, nous
avons pu enrichir nos compétences techniques en bénéficiant des expertises individuelles présentes
dans notre équipe, ce qui a renforcé notre apprentissage.
31
Conclusion Générale
Dans le cadre du projet d’innovation nous étions amenés à participer à la digitalisation de l’école
en créant une plateforme de gestion des enseignements et des emplois du temps. Notre plateforme
propose trois espaces ; l’espace administrateur qui présente des fonctionnalités de gestion des
ressources et de génération d’emplois de temps, l’espace enseignant qui offre à son utilisateur la
possibilité de voir son emploi du temps et de soumettre ses indisponibilités et l’espace étudiant qui
permet la visualisation des emplois du temps des différentes classes de l’école.
Notre projet offre de nombreux avantages pour les élèves, les enseignants et l'administration.
Cette solution numérique facilite la planification des leçons hebdomadaires, optimise la gestion des
infrastructures de l'établissement (salles de classe, amphithéâtres, laboratoires, ateliers, etc.) et
propose une interface interactive, intuitive et facile d’utilisation.
Le projet d’innovation était une expérience fructueuse grâce à laquelle nous avons pu mettre en
pratique nos compétences techniques, développer notre esprit de groupe et de partage, pousser nos
limites créatives et améliorer nos compétences sociales telles que la communication, l'écoute active,
la gestion des conflits, et la prise de décision collective.
32
Bibliographie
Applying Evolutionary Computation to the School Timetabling Problem: The Greek Case. In :
Beligiannis, Grigorios N., Charalampos N. Moschopoulos, et al. Computers & Operations Research, [en
ligne ]. Disponible sur : https://doi.org/10.1016/j.cor.2006.08.010. (consulté le 10 Avril 2023)
Solving Timetable Scheduling Problem Using Genetic Algorithms. In : Sigl, B., M. Golub, and V.
Mornar. IEEE Transactions on Image Processing, [en ligne]. Disponible sur :
https://doi.org/10.1109/iti.2003.1225396. (consulté le 27 Avril 2023)
[Amirouche, 2009] : conception et réalisation d’un système d’information pour la gestion des prêts
d’une bibliothèque universitaire cas : bibliothèque informatique réalisé par : Sardou et Redaoui proposé
par : Mme Amirouche Promotion 2008-2009.
[Burke et all, 1997]: Burke E, kingston j, Jackson k,Weare R., “Automated university Timetabling :
the state of the art”, the Computer Journal 40 (9) 565-571, 1997.
[Babes et all] :M. Babes et H. Ounas, « Elaboration d’un algorithme génétique pour résoudre le
problème d’emploi du temps d’université », Université Badji Mokhtar Annaba, Algerie.
33
Annexes
Annexe 1 : Architecture Globale Orientée Services
34
Annexe 2 : Exemplaire de PDF généré
35