Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Rapport PI

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 36

Département Mathématiques et Informatique

Rapport de Projet d’innovation


Filière :
« Ingénierie Informatique – Big Data et Cloud Computing »
II-BDCC

Plateforme de gestion des


enseignements et des
emplois du temps

Soutenu le 16 /06/ 2023

Réalisé par : Encadré par :


Racha AJOUAD
Hamid BOUARGALNE
Yasser EL JARIDA M. Mohamed QBADOU
Abderrahmane ET-TOUNANI
Soukayna LAAROUSSI TRIBEK
Oumaima MADANI CHERIF

Année Universitaire : 2022-2023

ENSET, Avenue Hassan II - B.P. 159 - Mohammedia - Maroc


🕾 05 23 32 22 20 / 05 23 32 35 30 – Fax : 05 23 32 25 46 - Site Web: www.enset-media.ac.ma
E-Mail : enset-media@enset-media.ac.ma
Remerciements
Nous tenons tout d’abord à remercier notre encadrant, Monsieur QBADOU Mohamed, pour ses
précieux explications, ses conseils avisés et le temps qu’il nous a consacré. Nous remercions
également, madame DOUIBI Asmae pour sa disponibilité et ses recommandations.

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

Figure 1 : diagramme de cas d’utilisation des enseignants. .................................................................. 14


Figure 2 : Diagramme de cas d’utilisation des administrateurs............................................................. 15
Figure 3 : Diagramme de classes. .......................................................................................................... 16
Figure 4 : Diagramme de sequences...................................................................................................... 17
Figure 5 : Diagramme de déploiement. ................................................................................................. 17
Figure 6 : Architecture backend. ........................................................................................................... 19
Figure 7: Calcul de fitness et conflits .................................................................................................... 20
Figure 8 : Croisement et mutation des emplois. .................................................................................... 21
Figure 9 : Croisement et mutation des séances. .................................................................................... 22
Figure 10 : Enseignant Controller. ........................................................................................................ 24
Figure 11 : emplois de temps................................................................................................................. 24
Figure 12 : importation de données à partir d’Excel. ............................................................................ 24
Figure 13 : Page d’accueil. .................................................................................................................... 27
Figure 14 : Page d’accueil pour un admin. ............................................................................................ 27
Figure 15 : Un exemple d’un emploi du temps. .................................................................................... 28
Figure 16 : Page login ........................................................................................................................... 28
Figure 17 : Page Profile ......................................................................................................................... 29
Figure 18 : Gestion des profs ................................................................................................................ 29

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.

II. Présentation du projet


1. Origine du projet
La gestion des emplois du temps est un processus complexe qui nécessite un travail approfondi
afin d'assurer la fluidité du déroulement des cours et des examens au sein de l’école. Ainsi la bonne
gestion de l’emploi du temps constitue une étape cruciale pour assurer cette fluidité.
Dans le cadre de la digitalisation des services administratifs de notre école, nous avons eu pour
mission le projet de la gestion des emplois du temps. Ce projet est une opportunité pour nous de
travailler sur un projet réel qui sera déployé au sein de l’école.
Grâce à cette opportunité que nous a donné le cadre administratif de l’ENSET Mohammedia,
nous avons visé à faciliter le processus de la gestion des emplois du temps en gérant les différentes
composantes de l’école (les cours, les salles…). Notre projet consiste en la création d’une plateforme
de gestion des emplois du temps qui améliorer l’efficacité de ce processus au sein de notre école. En
fournissant une vision claire et des informations précises. Nous nous engageons à faciliter
l’organisation et la coordination des activités de notre école en contribuant ainsi à une expérience
éducative harmonieuse et organisée.

III. Objectifs du projet

1. Objectifs personnels

 Acquérir de nouvelles compétences techniques en s'engageant dans un véritable


cahier des charges et en participant activement à toutes les étapes d'un projet, depuis sa
conception jusqu'à sa réalisation complète.
 Maîtriser le travail d’équipe et la répartition des tâches.
 Acquérir la compétence d’adaptation à des conditions inhabituelles, à gérer le stress,
le temps et à maintenir une bonne organisation.
9
2. Objectifs de la plateforme
Notre plateforme a pour objectif principal de générer des emplois du temps efficacement,
simplifiant ainsi la planification des cours et des activités. De plus, notre plateforme offre la
possibilité de connaître facilement l'affectation des salles par classe en maintenant un suivi précis de
la gestion des salles et en étant conscient de leur disponibilité en temps réel. Ce qui facilite la gestion
logistique de l'établissement et évite les conflits de réservation.

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.

IV. Gestion du projet

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

EL JARIDA Yasser TRIBEK LAAROUSSI Soukayna BOUARGALNE Hamid

AJOUAD Racha ET-TOUNANI Abderrahmane MADANI CHERIF Oumaima

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.

 Contraintes de conception et de développement : la plateforme doit être flexible et


facilement extensible, permettant l'intégration de nouvelles fonctionnalités à tout moment.

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 :

Étape Durée estimé Dates prévues


16 -22
Planification initiale 1 semaine
janvier

Collecte des 27 Janvier -


2 semaines
exigences 16 Février

20 Février-
Conception du projet 4 semaines
21 Mars

25 Mars- 7
Développement 6 semaines
Mai

Tests et validation 2 semaines 8-21 Mai

Tableau : Planification du projet

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.

II. Les besoins


1. Besoins non fonctionnels
 Performance : le système assure la fluidité et la réactivité de l’expérience utilisateur.

 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

 Efficacité : c'est la capacité d’un système logiciel à utiliser le minimum de ressources


matérielles (temps de calcul, espace occupé en mémoire externe et interne etc.)

 Ergonomie : La plateforme doit être intuitive, facile à utiliser et accessible.

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

III. Identification des acteurs

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.

1. Diagramme de cas d’utilisation

Figure 1 : diagramme de cas d’utilisation des enseignants.

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

Figure 5 : Diagramme 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

Figure 6 : Architecture backend.

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.

III. Génération des emplois du temps


Dans notre projet, nous avons utilisé l'algorithme génétique pour créer des emplois du temps
optimaux pour notre école. L'algorithme génétique est une méthode de résolution de problèmes qui
s'inspire de l'évolution biologique pour trouver des solutions optimales.

L'algorithme génétique fonctionne en utilisant une population d'individus qui représentent


différentes combinaisons d'emplois du temps. Chaque individu représente l'ensemble des emplois du
temps pour notre école. Les variables de cet individu incluent les horaires des cours pour chaque
classe, les enseignants attribués à chaque cours, les salles de classe utilisées, etc.

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.

Figure 7: Calcul de fitness et conflits

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.

VI. Documentation du web service


L'API Emploi du Temps est conçue pour gérer les informations liées aux emplois du temps pour le
système scolaire de notre école ENSET Mohammedia. Elle est constituée de plusieurs micro services, chacun
jouant un rôle spécifique pour permettre un fonctionnement complet et efficace de l'API.
Voici une description générale de quelque micro service et de leur rôle :

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.

Figure 10 : Enseignant Controller.

2. Microservice "Emplois de Temps" : Le microservice "Emplois de Temps" est responsable de la gestion


des emplois du temps. Il offre plusieurs fonctionnalités pour récupérer et manipuler les emplois du
temps.

Figure 11 : emplois de temps.

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.

Figure 12 : importation de données à partir d’Excel.

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.

IntelliJ IDEA également appelé est un environnement de développement intégré


destiné au développement de logiciels informatiques reposant sur la technologie Java.

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.

StarUML est un outil d’ingénierie logicielle pour la modélisation de


systèmes utilisant le langage de modélisation unifié. Nous avons utilisé ce logiciel
afin de créer les diagrammes nécessaires pour notre projet.
La phase de test :

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

Technologies et Langages de programmation :

Angular est un Framework open source développé par Google.

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 :

MySQL est un système de gestion de base de données relationnelle


open source (RDBMS) soutenu par Oracle basé sur le langage de requête
structuré (SQL).

H2 est un système de gestion de base de données relationnelle écrit en


Java. Il peut être intégré dans des applications Java ou exécuté en mode client-
serveur

Traitement des fichiers :

POI (Poor Obfuscation Implementation ou mise en œuvre d'une


mauvaise obfuscation) est un projet de l'Apache Software
Foundation permettant de manipuler avec la technologie Java divers types de fichiers créés
par Microsoft Office.

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 :

Figure 13 : Page d’accueil.

La page d’acceuil pour un admin après authentification :

Figure 14 : Page d’accueil pour un admin.

27
ci-dessous l’espace dédié au emplois du temps des différentes filières :

Figure 15 : Un exemple d’un emploi du temps.

La page d’authentification :

Figure 16 : Page login

La page d’acceuil pour un enseignant après authentification :

28
Figure 17 : Page Profile

La gestion des professeurs dans l’espace admin

Figure 18 : Gestion des profs

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.

II. Problèmes rencontrés et résolution


1. Problèmes
Lors de notre projet, nous avons rencontré plusieurs problèmes qui ont nécessité des efforts
supplémentaires pour les résoudre. Tout d'abord, l'un des principaux défis était de trouver une approche
de génération des emplois du temps qui diffère de l'approche séquentielle traditionnelle. Nous voulions
utiliser des algorithmes évolutifs, en particulier l'algorithme génétique, pour résoudre ce problème.
Cependant, il nous était difficile de trouver des exemples ou des ressources spécifiques qui
correspondaient exactement à la structure de notre école et à ses contraintes particulières.

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.

IV. Compétences acquises

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.

Ce rapport témoigne de notre engagement envers l'innovation et notre contribution à la


digitalisation de notre établissement. Cependant ce dernier peut-être améliorer en ajoutant la
possibilité de voir les salles de classes vide dans l’espace enseignant pour que les professeurs puissent
réserver une salle lors des rattrapages des séances ou lors des examens. Nous pouvons également
ajouter une fonctionnalité qui notifie les élèves concernés quand une réservation a été faite.

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.

[Bruno, 2009] : Bruno Suchaut, « L’organisation et l’utilisation du temps scolaire » Irédu-CNRS et


Université de Bourgogne, Mai 2009

33
Annexes
Annexe 1 : Architecture Globale Orientée Services

34
Annexe 2 : Exemplaire de PDF généré

35

Vous aimerez peut-être aussi