Académique Documents
Professionnel Documents
Culture Documents
et de la recherche scientifique
Université de Tunis
2021-2022
J’autorise ces étudiants à faire le dépôt de leur rapport de stage en vue d’une
soutenance.
Signature et cachet
J’autorise ces étudiants à faire le dépôt de leur rapport de stage en vue d’une
soutenance.
Signature
1
DÉDICACE
”
SELMI Safé
KHEDHER Zeineb
2
REMÉRCIMENT
Nos remerciements les plus sincères vont à toute personne ayant eu la bonté et la
patience de satisfaire notre curiosité et de nous aider dans notre travail par leur
précieux conseils, réponses et recommandations.
Nous tenons à remercier notre CEO BEN BOUZID Ahmed, notre encadrant de stage
HAMDI Sayed et notre graphic designer GHARBI Siwar qui nous ont offert l’opportunité
d’effectuer ce stage dans les meilleures conditions et qui nous ont fortement
impressionné par leurs grandes expériences et leur concrète contribution au bon
déroulement de ce travail.
À notre encadrant académique DR BOUZIRI Hend, nous adressons notre plus profonde
reconnaissance pour son bon encadrement et pour les conseils fructueux qu’elle n’a cessé
de nous prodiguer.
Nous devons chaque bribe de notre connaissance à nos enseignants à l’ESSECT qui ont
si bien mené leur noble quête d’enseigner les bases du génie logiciel, nous les remercions
pour le savoir qu’ils nous ont transmis.
Que messsieurs les membres du jury trouvent ici l’expression de notre reconnaissance
pour avoir accepté d’évaluer notre travail.
Et toutes les personnes qui ont contribué de prés ou de loin au bon déroulement de ce
travail, qu’elles voient en ces mots l’expression de notre gratitude pour leur présence,
pour leur dévouement et pour l’aide inestimable qu’elles nous ont apportées au long de
ce parcours .
3
TABLE DES MATIÈRES
Dédicace 2
Remérciment 3
Introduction générale 16
1 Etude préliminaire 18
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . 19
1.1 Organigramme de la startup . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2 Incubateur de la startup : BIATLABS . . . . . . . . . . . . . . . . . . . . . 20
2 Cadre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1 Benchmarking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3 Méthodologie adoptée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1 Cycle de vie de SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Artéfacts SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Répartition de rôles avec SCRUM . . . . . . . . . . . . . . . . . . . . . . 29
4 Choix technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5 Architecture de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4
5.1 Architecture et stacks utilisés . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Architecture logique backend . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3 Architecture logique front-end . . . . . . . . . . . . . . . . . . . . . . . . 34
5.4 Architecture physqique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2 Plannification du projet 38
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2 Capture des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.1 Identification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3 Besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.4 Diagramme de cas d’utilisation global . . . . . . . . . . . . . . . . . . . . 46
3 Pilotage du projet avec SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1 Équipe et rôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2 Backlog du produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3 Structure et découpage du projet . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Planning de la réalisation du projet . . . . . . . . . . . . . . . . . . . . . 51
3.5 Diagramme de Gantt du projet . . . . . . . . . . . . . . . . . . . . . . . 52
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5
3.2 Diagramme de classe global du premier sprint . . . . . . . . . . . . . . . 65
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1 Schémas de la base de données . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3 Interfaces de la plateforme . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5 Tests unitaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6
3.1 Diagrammes de séquences détaillés . . . . . . . . . . . . . . . . . . . . . 112
3.2 Diagramme de classe global du sprint . . . . . . . . . . . . . . . . . . . . 115
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.1 Schémas de la base de données . . . . . . . . . . . . . . . . . . . . . . . 116
4.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.3 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5 Tests unitaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7
LISTE DES TABLEAUX
8
4.5 Description textuelle du cas d’utilisation « Supprimer skill » . . . . . . . . . . . . 84
4.6 Description textuelle du cas d’utilisation « Chercher path » . . . . . . . . . . . . 84
4.7 Collection Super skill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.8 Collection skill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.9 Collection quiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.10 Collection checkpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.11 Collection projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.12 Collection Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.13 Collection path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.14 Collection challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.15 Collection edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
9
TABLE DES FIGURES
10
2.1 Visual Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2 Google chrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3 Github . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4 Gitlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5 Postman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.6 XD Adobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7 Draw.io . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.8 Overleaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.9 Microsoft Teams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.10 Acteurs du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.11 Diagramme de cas d’utilisation général . . . . . . . . . . . . . . . . . . . . . . . 47
2.12 Découpage en sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.13 Structuration des sprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.14 Structuration des sprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.15 Diagramme de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
11
3.18 Resultat du premier test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.19 Resultat du deuxieme test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.20 Code souce du test unitaire du cas d’utilisation «S’authentifier » . . . . . . . . . . 74
3.21 Resultat du premier test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.22 Resultat du deuxieme test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
12
5.1 Diagramme de cas d’utilisation du sprint . . . . . . . . . . . . . . . . . . . . . . 107
5.2 Raffinement de cas d’utilisation «S’inscrire à un path» . . . . . . . . . . . . . . . 108
5.3 Raffinement de cas d’utilisation «Corriger travaux des étudiants» . . . . . . . . . 108
5.4 Raffinement de cas d’utilisation «Suivre path» . . . . . . . . . . . . . . . . . . . 109
5.5 Diagramme de séquence détaillé «Passer nœud suivant» . . . . . . . . . . . . . . 113
5.6 Diagramme de séquence détaillé «Passer quiz» . . . . . . . . . . . . . . . . . . . 114
5.7 Diagramme de séquence détaillé «Passer special quiz» . . . . . . . . . . . . . . . 114
5.8 Diagramme de séquence détaillé «Passer special quizzes» . . . . . . . . . . . . . 115
5.9 Diagramme de séquence détaillé «Affecter étudiant» . . . . . . . . . . . . . . . . 115
5.10 Diagramme de classe global du sprint . . . . . . . . . . . . . . . . . . . . . . . . 116
5.11 Suivre path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.12 S’inscrire à un path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.13 Lister superskills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.14 Parcours de l’étudiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.15 Interface superskill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.16 Interface skill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.17 Interface Quiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.18 Interface Checkpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.19 Interface des quiz suggérés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.20 Interface projet final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.21 Interface liste des étudiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.22 Interface correction travaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.23 Test unitaire du cas d’utilisation « Affecter instructeur » . . . . . . . . . . . . . . 125
5.24 résultat du premier cas de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.25 résultat du deuxième cas de test . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.26 Test unitaire du cas d’utilisation « Consulter skill » . . . . . . . . . . . . . . . . . 127
5.27 Résultat du premier cas de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.28 Résultat du deuxième cas de test . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
13
6.5 Diagramme de séquence détaillé «Consulter nombre des utilisateurs» . . . . . . 136
6.6 Diagramme de séquence détaillé «Visualiser le pourcentage des nœuds consultés
et non consultés par jour» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.7 Diagramme de séquence détaillé «Visualiser les classes d’âges des apprenants» . 137
6.8 Diagramme de séquence detaillé «Lister les chat rooms» . . . . . . . . . . . . . . 138
6.9 Diagramme de séquence detaillé «Créer chat room» . . . . . . . . . . . . . . . . 138
6.10 Diagramme de classe su quatrième sprint . . . . . . . . . . . . . . . . . . . . . . 139
6.11 Créer room . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.12 interface statistique de l’administrateur . . . . . . . . . . . . . . . . . . . . . . . 142
6.13 interface statistique de l’étudiant . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.14 interface statistique du créateur de cours . . . . . . . . . . . . . . . . . . . . . . 143
6.15 interface créer chat room . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.16 interface forum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
14
Introduction générale
15
INTRODUCTION GÉNÉRALE
A
U cœur de la digitalisation, par le temps qui presse, l’Homme a pris conscience des nou-
veaux défis qui prennent place partout : dans les espaces publics, les lieux de travail,
dans nos foyers, nos vêtements sur nos corps et dans l’ensemble des objets qui nous
entourent.
16
Introduction générale
Notre plateforme est spécialisée dans les compétences digitales ( graphic design, développe-
ment web, montage vidéo, digital marketing et intelligence artificielle ). Elle présente des forma-
tions approfondies, et adapte le contenu selon les compétences et l’avancement de l’apprenant.
Notre produit offre un système de suivi spécifique et essaie d’améliorer et de développer les
compétences des apprenants en se basant sur des nouvelles techniques d’apprentissage. En effet,
en se référant à l’approche de gamification dans notre système, on peut encourager l’apprenant
à collecter un maximum de points en suivant son path afin de participer aux challenges qui lui
permet de vivre et de gagner une expérience professionnelle et surtout d’être parmis les premiers
et les meilleurs apprenants sur notre plateforme.
Pour ce faire, ce rapport est structuré en 6 chapitres. Le premier chapitre présentera l’orga-
nisme d’accueil et introduira la problématique, l’étude de l’existant et la solution proposée. Le
deuxième chapitre fera l’objet d’une étude de la méthodologie choisie ainsi que quelques no-
tions des technologies utilisées. Les chapitres qui suivent comporteront nos sprints suivant la
méthodologie SCRUM. chaque sprint présentera le backlog du produit, la spécification de be-
soins ,la conception , la réalisation et le test unitaire.
17
CHAPITRE 1
ETUDE PRÉLIMINAIRE
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2 Cadre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Méthodologie adoptée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4 Choix technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5 Architecture de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
18
Chapitre1 : Étude Préalable
Introduction
« Une plateforme e-learning ou LMS, pour Learning Management System, peut se définir
comme un portail web à double entrée. Pour l’apprenant, c’est l’espace de formation qui lui per-
met d’accéder aux parcours mis à sa disposition. Pour le formateur et l’administrateur, c’est l’outil
qui permet le pilotage des formations digitales et hybrides, depuis leurs mises à disposition, jus-
qu’au suivi des statistiques d’utilisation. » [1]
Nous commençons par placer le projet dans son cadre général et d’exposer le contexte de
travail ainsi que les objectifs a atteindre.
19
Chapitre1 : Étude Préalable
L’organigramme de la start-up "OpusLab" figure 1.1 présente une vue parfaite de l’oraganisa-
tion des liens hiéarchiques entre les différentes équipes. En effet, c’est une traduction schéma-
tique des objectifs, des missions et des relations fonctionnelles.
BIATLABS est l’incubateur de BIAT, incubateur à but non lucratif qui offre un accompagne-
ment aux entrepreneurs gratuitement et sans équité et couvre le cycle de vie de l’incubation :
pré-incubation, incubation et post-incubation.
Sa vision est d’appuyer l’innovation et l’ambition des jeunes, et de contribuer à l’émergence
d’un écosystème propice à l’entrepreneuriat, à l’investissement et au business, au profit de l’éco-
nomie tunisienne de demain.
Sa mission est d’accompagner des entrepreneurs,à haut potentiel, pour leur permettre de
mieux servir l’économie nationale, créer de la valeur et avoir un impact en Tunisie.
La devise est de fédérer une communauté d’entrepreneurs, de partenaires, d’experts afin de
contribuer au développement de l’écosystème entrepreneurial et économique tunisien.
20
Chapitre1 : Étude Préalable
2 Cadre du projet
Dans cette partie, nous présentons une étude de l’existant,la problématique,la solution pro-
posée et les objectifs du projet.
2.1 Benchmarking
• DATACAMP
DataCamp figure 1.2 est une plateforme MOOC « Massive Open Online Course », créée en
2014. l’entreprise se spécialise dans les cours en ligne au service de plus de 350 milles étu-
diants à travers le monde. .
Les cours disponibles sont R, Python et la science des données sous forme de courtes
vidéos, aucune installation requise tout en assurant un centre d’aide et de ressources. En
plus, tous les instructeurs sont des experts de premier plan dans le domaine et avec ce
tableau2.1 on explique plus les points forts et faibles de Datacamp.
21
Chapitre1 : Étude Préalable
Donne l’opportunité aux apprenants pour Certaines vidéos sont un peu courtes
combiner les différents cours dans le but de leurs et manquent de détails.
aider à réussir leurs carrières.
Offre des questions de pratique et d’évaluation. Les utilisateurs doivent vraiment creuser
pour trouver des informations sur le plan
d’essai gratuit.
• Taki Academy
Concrètement, TakiAcademy figure 1.3 est une plateforme d’enseignement en ligne en
Tunisie. Fondée en 2013 et compte plus que 80 enseignants. Enseigne les élèves de 4ème
année primaire jusqu’au Bac (toutes les sections). La plateforme compte aujord’hui plus
de 150 000 élèves.
Taki Academy est une plateforme d’apprentissage axée sur les étudiants.Les cours sur
cette plateforme se font principalement à travers des vidéos encadrées par un groupe de
professeurs et éducateurs. Actuellement la plateforme compte plus de 1000 vidéos gra-
tuites qu’on peut consulter sur la chaîne youTube de l’académie. Dans le tableau1.2 on
22
Chapitre1 : Étude Préalable
Interface érgonomique et facile à utiliser. La plateforme est limitée à un seul style d’en-
seignement avec les vidéos. Ceci peut ne pas
êtres la meilleur façon d’apprendre pour cer-
tains étudiants.
• Khan Academy
khan Academy figure 1.4 est une association à but non lucratif fondée en 2008 par Salman
Khan. Sur le principe de « fournir un enseignement de grande qualité à tous, partout ».
le site web publie en ligne un ensemble gratuit de plus de 2 200 mini-leçons, via des
tutoriels vidéo hébergés sur YouTube, abordant les mathématiques, l’informatique, l’his-
23
Chapitre1 : Étude Préalable
gratuit et accessible par tout le monde. il n y’a pas une interface d’interaction
entre les utilisateurs.
2.2 Problématique
De nombreux étudiants ne semblent pas engagés dans des cours d’apprentissage en ligne,ils
n’exploitent pas ce qu’ils ont appris en projets concrets en raison du style d’apprentissage clas-
sique fourni par la majorité des plateformes d’apprentissage en ligne. Le but de l’enseignement
est de réaliser le transfert, les étudiants doivent être capables de transférer leurs apprentissages
de la salle de classe vers la résolution de problèmes du monde réel. En les encourageant à ren-
contrer de nouvelles idées, à s’engager avec le matériel de cours et à réfléchir, dans ce tableau1.4
on compare les plateformes suivantes selon certains critères.
— Authentification et autorisation : s’assurer que l’accès aux différents espaces est protégé.
— Interface utilisateur attrayante et facile à utiliser : la simplicité et l’ergonomie des interfaces
et la facilité d’utilisation des fonctionnalités fournies.
— Gestion du profil : l’utilisateur du site dispose d’un profil avec ses informations person-
nelles.
— Fonctionnalités intelligentes : fonctionnalités qui utilisent des domaines de l’intelligence
artificielle.
— Gamification : encourager les apprenants à s’engager dans le comportement d’apprentis-
sage souhaité.
24
Chapitre1 : Étude Préalable
Nous avons constaté que le système éducatif, en particulier les étudiants en Tunisie, n’ont pas
des compétences nécessaires pour décrocher des stages ou des emplois, il y a un écart entre le
marché et le système éducatif.
L’objectif de la plateforme est de favoriser une véritable expérience d’apprentissage pour les
étudiants en offrant un contenu de qualité et un système de suivi continu.
Séance de tutorat personnalisée : les individus ont des styles d’apprentissage différents qui
doivent être pris en compte avant de fournir du contenu.
Gestion de la communauté : les apprenants ayant des objectifs éducatifs communs colla-
borent pour se connecter avec les instructeurs, s’engager dans un apprentissage entre pairs et se
soutenir mutuellement pour atteindre les objectifs d’apprentissage.
Notre plateforme offre la possibilité de participer aux challenges avec les partenaires d’Opus-
Lab. Ceci est une opportunité pour l’étudiant en lui permettant de s’ouvrir au monde profession-
nel et de concrétiser ses connaissances acquises sur des projets réels.
Le système de score va encourager les étudiants à mieux assimiler le contenu pour avoir un
maximum de points dans les tests. En effet, notre but est de sortir du cadre d’enseignement clas-
sique et de rendre l’étudiant autonome en focalisant sur le concept d’apprendre en jouant.
La plateforme vise aussi à rendre le travail de l’instructeur aussi simple que possible, qui lui
permet de suivre l’avancement des étudiants en se basant sur des courbes et des graphes.
25
Chapitre1 : Étude Préalable
2.4 Objectifs
3 Méthodologie adoptée
«SCRUM est une approche de gestion de projet agile qui définit le cadre des projets com-
plexes. Celle-ci permet à l’équipe de s’adapter rapidement aux changements que les clients ef-
fectuent régulièrement.» [2]
Le Sprint
«Un sprint est une itération : il s’agit d’une période de 1 à 4 semaines maximum pendant laquelle
une version terminée et utilisable du produit est réalisée. Un nouveau sprint commence dès la
fin du précédent. Chaque sprint implique un objectif et une liste de fonctionnalités à réaliser.»[3]
26
Chapitre1 : Étude Préalable
Revue du sprint
Il s’agit du bilan du sprint réalisé. Une fois le sprint est terminé, l’équipe scrum et les parties pre-
nantes se réunissent pour valider ce qui a été accompli. Cette réunion dure 4 heures maximum.
Rétrospective du sprint
La rétrospective est interne à l’équipe scrum et dure 3 heures pour un sprint d’un mois. Elle vise
l’adaptation aux changements et l’amélioration continue du processus de réalisation. L’équipe
se sert de la rétrospective pour passer en revue le sprint terminé et déterminer ce qui a bien fonc-
tionné et ce qu’il faut améliorer.
27
Chapitre1 : Étude Préalable
Mêlée quotidienne
Cette réunion journalière de 15 minutes est très importante. Elle se fait debout, afin d’éviter de
s’éterniser. C’est ce qui explique que l’on parle de «stand-up meeting». Ce meeting a pour but
de faire un point sur la progression quotidienne du sprint. Cette rencontre permet à l’équipe de
synchroniser ses activités et de faire un plan pour les prochaines 24 heures.
Le mot artefact désigne un produit ayant subi une transformation, même minime par l’homme.
Les artefacts SCRUM sont basés sur un ensemble de valeurs, principes et pratiques qui four-
nissent la base de la philosophie agile. Ces artefacts ont été spécialement conçus pour maximi-
ser la transparence des informations afin que tout le monde ait la même compréhension de leur
définitions et de leur utilités.
• Le backlog produit :
Le backlog scrum est destiné à recueillir tous les besoins du client que l’équipe projet
doit réaliser. Il contient donc la liste des fonctionnalités intervenant dans la constitution
d’un produit, ainsi que tous les éléments nécessitant l’intervention de l’équipe projet. Tous
les éléments inclus dans le backlog scrum sont classés par priorité indiquant l’ordre de leur
réalisation.
• Le sprint backlog :
Le sprint backlog est une liste qui contient un certain nombre de tâches prédécoupées
sont intégrées dans ces différents cycles.
À la fin de chaque cycle, le travail accompli doit créer de la valeur pour le produit en
développement. Ces cycles sont appelés «sprints». Ils ont une date de début et une date de
fin fixe. La durée d’un sprint est toujours la même. Le guide Scrum conseille de la fixer à 2
ou 3 semaines.
• L’incrément produit :
L’incrément en scrum correspond à l’ensemble des items du backlog de produit qui ont
été accomplis pendant le sprint en cours.
28
Chapitre1 : Étude Préalable
Rôle Fonctions
4 Choix technique
Dans cette section, nous présentons la liste des langages utilisés pour le développement de
ce projet.
• React JS : «C’est une bibliothèque JavaScript figure 1.6 développée par Facebook qui per-
29
Chapitre1 : Étude Préalable
met la réalisation des applications web monopage (SPA) en utilisant des composants réutilisables.»[4]
• Python «Python est un langage de programmation figure 1.8 généraliste de haut niveau.
Sa philosophie de conception met l’accent sur la lisibilité du code avec l’utilisation d’une
indentation significative. » [6]
• Mongo DB : « C’est un système de gestion de base de données NoSQL figure 1.9 basé sur
les documents»[7]
30
Chapitre1 : Étude Préalable
• Express JS : «C’est un framework figure 1.10 pour construire des applications web basées
sur NodeJS.»[8]
• Rest API :
« Une API REST est un ensemble de règles figure 1.11 qui permettent l’interopérabilité
entre les clients et les serveurs. Elle s’appuie sur le protocole HTTP robuste pour échanger
des données au format JSON, qui est à la fois efficace et facile à lire pour les utilisateurs.»[9]
Images/REST +API.png
« C’est aussi une solution pour partager des ressources et des informations, tout en
maintenant un certain niveau de sécurité, de contrôle et d’authentification, en détermi-
nant qui est autorisé à accéder à quoi. »[10]
• Tailwind CSS : « Tailwind figure 1.12 C’est un framework css facile à utiliser et permet de
personnaliser le design d’une page web»[11]
• Docker : « Docker est un ensemble de plateforme, figure 1.13 en tant que produit de service
qui utilise la virtualisation au niveau du système d’exploitation pour fournir des logiciels
dans des packages appelés conteneurs. Les conteneurs sont isolés les uns des autres et
regroupent leurs propres logiciels, bibliothèques et fichiers de configuration ; ils peuvent
communiquer entre eux par des canaux bien définis.»[12]
31
Chapitre1 : Étude Préalable
• Redux : « Redux est une bibliothèque JavaScript open source figure 1.14 pour gérer et cen-
traliser l’état de l’application. Il est le plus couramment utilisé avec React pour créer des
interfaces utilisateur. Il a été créé par Dan Abramov et Andrew Clark.»[13]
• Amazon web services(AWS) : « Amazon Web Services figure 1.15, est une filiale d’amazon
qui fournit des plates-formes de cloud computing et des API à la demande aux particuliers,
aux entreprises et aux gouvernements, sur une base de paiement à l’utilisation.»[14]
«Redis est un magasin de structure de données en mémoire figure 1.16, utilisé comme
base de données distribuée en mémoire clé-valeur, cache et courtier de messages, avec
une durabilité facultative. Redis prend en charge différents types de structures de données
abstraites, telles que les chaînes, les listes, les cartes, les ensembles, les ensembles triés, les
hyperLogLogs, les bitmaps, les flux et les index spatiaux.»[15]
32
Chapitre1 : Étude Préalable
5 Architecture de l’application
Dans cette partie, nous présentons l’architecture et stacks utilisés, l’archichitecture logique
back-end, l’archichitecture logique front-end et l’architecture physique.
Le stack MERN figure 1.18 est utilisée pour le développement de la plateforme, où MERN
signifie :
33
Chapitre1 : Étude Préalable
— ReactJS : il est utilisé pour créer des interfaces utilisateur et est une bibliothèque frontale
JavaScript développée par Meta.
— NodeJS : il s’agit d’un environnement d’exécution JavaScript qui permet l’utilisation de ja-
vascript dans le back-end.
L’idée est d’utiliser le principe de séparation des préoccupations pour éloigner la logique mé-
tier des Routes API node.js. Car un jour, on aura envie d’utiliser notre logique métier sur un outil
CLI, ou dans une tâche récurrente. faire un appel API du serveur node.js à lui-même n’est pas
une bonne idée.
«Le modèle MVVM prend en charge la liaison de données bidirectionnelle entre View et View-
Model. Cela permet la propagation automatique des modifications, dans l’état ViewModel à la
vue. En règle générale, ViewModel utilise le modèle d’observateur pour informer le ViewModel
des modifications apportées au modèle. »[15]
— Modèle : cette couche est responsable de l’abstraction des sources de données. Model et
ViewModel fonctionnent ensemble pour obtenir et enregistrer les données.
34
Chapitre1 : Étude Préalable
— Vue : le but de cette couche est d’informer le ViewModel de l’action de l’utilisateur. Cette
couche observe le ViewModel et ne contient aucun type de logique d’application.
— ViewModel : il expose les flux de données qui sont pertinents pour la vue.
L’architecture à trois-tiers figure 1.20 est une architecture d’application logicielle qui organise
les applications en trois niveaux : le niveau de présentation, ou interface utilisateur ; le niveau
application, où les données sont traitées ; et le niveau base de données, où les données associées
à l’application sont stockées et gérées.
35
Chapitre1 : Étude Préalable
— REST API : signifie "Transfert d’État représentatif", permet l’utilisation d’une architecture
de système en couches où les API sont déployées sur le serveur A, les données stockées sur
le serveur B et les demandes sont authentifiées sur le serveur C.
— Websocket : WebSocket est un protocole de communication informatique, fournissant des
canaux de communication en duplex intégral sur une seule connexion TCP. L’utilisation
de WebSockets dans notre application consiste à fournir la fonctionnalité de discussion à
l’utilisateur.
36
Chapitre1 : Étude Préalable
Conclusion
Le principal avantage du choix de l’architecture MVVM est de permettre une véritable sépa-
ration entre la vue et le modèle au-delà de la réalisation de la séparation et de l’efficacité qu’on
peut gagner. En termes réels, cela signifie que lorsque notre modèle doit changer. Il peut être
modifié facilement sans que la vue en ait besoin et vice versa.
37
CHAPITRE 2
PLANNIFICATION DU PROJET
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . . . 39
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
38
Chapitre2 : Étude préliminaire du projet
Introduction
Dans ce chapitre, nous avons procédé à l’analyse des besoins pour exprimer les fonctionna-
lités concrètes du produit et préciser les indicateurs de qualité de l’exécution de ces fonctionna-
lités.
1 Environnement de développement
Dans cette partie, nous présentons l’environnement matériel et logiciel dont on a utilisé pour
la réalisation de notre plate-forme.
Caractéristiques Désciption
RAM 16 GO
Dans cette section, nous présentons la liste des logiciels utilisée pour l’élobaration de notre
plate-forme .
• Visual Code :
«Visual Studio Code figure 2.1 est un éditeur de code open-source développé par Microsoft
supportant un très grand nombre de langages grâce à des extensions. Il supporte l’auto-
complétion, la coloration syntaxique, le débogage et les commandes git.»[16]
39
Chapitre2 : Étude préliminaire du projet
• Google chrome :
« Google Chrome figure 2.2 est un navigateur web multiplateforme développé par Google.
Il a d’abord été publié en 2008 pour microsoft windows, construit avec des composants
logiciels libres d’Apple WebKit et de Mozilla Firefox. Il a ensuite été porté sur Linux, macOS,
iOS et Android.» [17]
• GitHub :
«GitHub figure 2.3 est un site de partage de code , sur lequel on peut publier des projets
dont le code est géré avec le système de gestion de version Git . Par défaut , le système
est open source , ce qui signifie que tout le monde peut consulter le code , l’utiliser pour
apprendre ou l’améliorer et collaborer aux projets . »[18]
• GitLab :
« Gitlab figure 2.4 Couvre l’ensemble des étapes du DevOps. Se basant sur les fonction-
nalités du logiciel Git, elle permet de piloter des dépôts de code source et de gérer leurs
différentes versions.»[19]
40
Chapitre2 : Étude préliminaire du projet
• Postman :
«Postman figure 2.5 est un outil gratuit permettant de tester des API»[20]
• XD adobe :
« XD adobe figure 2.6 est Un logiciel incontournable de la suite Adobe Créative Cloud.
Il a vocation à faciliter la conception de maquettes, wireframes et prototypes et aboutir à
des interfaces digitales agréables et efficaces.»[21]
• Draw.io : «Draw.io figure 2.7 est un logiciel de dessin graphique multiplateforme gratuit et
open source. Utilisé pour créer des diagrammes UML, des organigrammes, des diagrammes
de réseau etc. »[22]
• Overleaf :
«Overleaf figure 2.8 plateforme en ligne gratuite permettant d’éditer du texte en LATEX
sans aucun téléchargement d’application. En outre, elle offre la possibilité de rédiger des
41
Chapitre2 : Étude préliminaire du projet
• Microsoft Teams :
« Microsoft Teams figure 2.9 permet l’organisation des réunions, des conversations et
des appels , et collaborez depuis un seul endroit, que vous soyez à domicile, au travail, à
l’école.»[23]
Un acteur est une « entité » externe (utilisateur humain, dispositif matériel ou autre sys-
tème)au système qui interagit directement avec le système.
42
Chapitre2 : Étude préliminaire du projet
Pour tous les acteurs de notre système figure 2.10 , nous définissons les différents objectifs
qu’il tente d’atteindre en utilisant la platforme.
• Administrateur :
L’administrateur est un des fondateurs de la startup qui sera chargé de superviser les comptes
utilisateurs, affecter les codes vouchers aux étudiants lors de l’inscription, créer les comptes
des instructeurs et des créateurs de cours et débloquer les paths pour l’étudiant.
• Créateur de cours :
Le créateur de cours peut être l’un des fondateurs ou bien une nouvelle personne rejoi-
gnant l’équipe après sa demande d’inscription auprès d’Opus Lab. Cette personne sera
chargée de gérer les paths disponibles et les nœuds qui les composent.
• Instructeur :
L’instructeur peut être l’un des fondateurs ou bien une nouvelle personne inscrite comme
instructeur par l’administrateur. Cet acteur sera chargé d’évaluer les checkpoints et les pro-
jets finaux des étudiants inscrits dans un path qui lui a été affecté.
• Visiteur :
Le visiteur doit remplir un formulaire d’inscription sur la plateforme et acheter un voucher
auprès d’Opus Lab pour pouvoir suivre le path qu’il a choisi.
• Etudiant (apprenant) :
L’étudiant peut suivre le path dont il a acheté : il peut suivre les super skills, les skills, passer
des quizs, faire des checkpoints et réaliser un projet final afin de collecter des points qui lui
permet par la suite à participer à des challenges disponibles sur la plateforme d’opus Lab.
43
Chapitre2 : Étude préliminaire du projet
Les besoins fonctionnels sont l’expression de ce que le produit ou le service délivré par le
projet devrait être. Les besoins fonctionnels sont ordonnés selon les acteurs.
• Visiteur :
— Création compte : l’étudiant peut créer son propre compte en remplissant un formu-
laire.
• Etudiant :
— Consulter dashboard : l’étudiant peut connaître son rang dans la plateforme et son
avancement dans chaque parcours ainsi que le nombre des nœuds consultés par jour.
— Consultation des path disponibles.
— Choisir un path : l’étudiant peut choisir le parcours qui lui convient.
— Gestion de compte : chaque étudiant peut modifier les paramètres de son compte.
— Suivre path : une fois l’étudiant s’est inscrit à un path, il peut suivre ses nœuds.
— Passer quiz : après chaque skill, il existe des questions que l’étudiant doit répondre
pour passer au skill suivant.
— Passer un checkpoint : après chaque cours il est obligatoire de passer une activité qui
sera un petit programme à développer pour passer au super skill suivant.
— Réalisation du projet final : à la fin de chaque path, il y a un projet final à réaliser pour
avoir le certificat.
— Participation à un challenge : c’est une activité facultative qui demande un certain
nombre de points pour y participer.
— Consulter avancement : l’étudiant peut savoir en pourcentage son avancement dans
chaque path.
— Participer forum : l’étudiant peut envoyer et recevoir des messages à un autre étudiant
ou bien un instructeur.
• L’instructeur :
44
Chapitre2 : Étude préliminaire du projet
— Consultation liste des étudiants : l’instructeur peut visualiser la liste des étudiants ins-
crits dans le path dont il est affecté.
— Evaluation de l’étudiant(test de niveau, checkpoint ,projet final ) : l’instructeur peut
noter les rendus de chaque étudiant.
— Consultation de l’avancement de l’étudiant.
— Consultation de la liste des nœuds : l’instructeur peut visualiser la liste des nœuds
dont il l’enseigne.
— Participation à un forum : L’instructeur peut envoyer et recevoir des messages à un
étudiant.
• Créateur de cours :
— Gestion de compte : chaque créateur de cours peut modifier les paramètres de son
compte.
— Consulter dashboard :
— Gestion des nœuds : le créateur de cours peut ajouter,modifier et supprimer différents
types de nœuds (super skill, skill, quiz, checkpoint et projet final).
— Gestion des paths : le créateur de cours peut créer, modifier et supprimer un path (un
path = ensemble de nœuds).
— Gestion des challenges : le créateur de cours peut ajouter, supprimer et modifier des
challenges.
— Gestion des quiz suggérés : le créateur de cours peut ajouter, supprimer et modifier
des quiz que l’étudiant peut passer s’il a besoin de gagner plus de points.
• Administrateur :
— Consulter dashboard : savoir certains détails généraux sur la plateforme (nombre d’étu-
diants, instructeur, créateur de cours, les intervalles d’âges des étudiants et le pour-
centage des étudiants inscrits dans des paths).
— Gestion de compte : chaque administrateur peut modifier les paramètres de son compte
(nom,prénom,email,mot de passe, date de naissance et numéro de téléphone).
— Ajouter utilisateur : l’administrateur peut ajouter un étudiant, un instructeur, un créa-
teur de cours ou bien un administrateur.
45
Chapitre2 : Étude préliminaire du projet
Il s’agit des besoins qui caractérisent le système. Ce sont des besoins en matière de perfor-
mance, de type de matériel ou le type de conception. Ces besoins peuvent concerner les contraintes
d’implémentation (langage de programmation, type SGBD, de système d’exploitation...).
• Gestion de sécurité :
Notre application doit respecter surtout la confidentialité des données et des informations
personnelles.
• La maintenabilité :
Notre système doit être conforme à une architecture standard et claire permettant sa main-
tenance et sa réutilisation.
• Ergonomie de la plateforme : Notre application doit être adaptée, avec une interface facile
et claire.
• Performance :
Notre application doit être performante ayant un impact positif sur leurs utilisateurs.
Le diagramme de cas d’utilisation global figure 2.11 nous permet d’avoir une vision abstraite
sur le comportement de notre système. Dans ce diagramme, on présente les acteurs principaux
de l’application qui sont : l’administrateur, le createur de cours, l’instructeur et l’étudiant.
46
Chapitre2 : Étude préliminaire du projet
Tous les utilisateurs doivent s’authentifier avant la réalisation de chaque cas d’utilisation.
47
Chapitre2 : Étude préliminaire du projet
Dans un projet SCRUM, l’équipe joue un rôle fondamental. Elle permet d’optimiser la pro-
ductivité et la flexibilité. En effet, elle doit être auto-organisée et multi-fonctionnelle.
Le backlog du produit (le carnet de commandes en français) constitue une liste ordonnée et
unique des exigences propres à un produit. Cette liste comporte des estimations (coûts) et des
valeurs (business value).
48
Chapitre2 : Étude préliminaire du projet
49
Chapitre2 : Étude préliminaire du projet
C’est le product owner qui se charge de sa tenue , de son évolution et de son enrichissement.
C’est également à lui de le rendre disponible pour les équipes et les parties prenantes comme
C’est montré dans le tableau 2.2 ci-dessus .
Dans cette section, nous allons établir la planification de nos sprints à l’intérieur de release
qu’on a fixée précédemment. Notre release peut contenir les sprints figure 2.12 suivants :
50
Chapitre2 : Étude préliminaire du projet
Il ne s’agit pas uniquement de piocher des éléments dans le « backlog » pour constituer un
sprint. Il faut avant tout définir une planification pour déterminer de quelle façon les objectifs
fixés pourront être atteints. La sélection et l’organisation des tâches à réaliser sont donc deux
étapes clés de la méthode de travail en sprints.
Nous allons établir la planification de nos sprints figure 2.11 à l’intérieur de release qu’on a
fixée précédemment .
Dans cette section , nous présentons figure 2.14 le plannig de la réalisation de notre projet.
51
Chapitre2 : Étude préliminaire du projet
Par cette figure 2.15 nous présentons une planification previsionnelle du projet .
Conclusion
Le backlog du produit nous a permis de partitionner les fonctionnalités en quatre sprints
selon les rôles de chaque acteur , en prévisionnant le durée de chaque user story .
52
CHAPITRE 3
SPRINT 1 - AUTHENTIFICATION ET
GESTION DES COMPTES
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1 Backlog du sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5 Tests unitaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
53
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Introduction
La création de compte et sa gestion est une étape primordiale pour chaque utilisateur sou-
haitant expérimenter les fonctionnalités de la plateforme. On commence par l’identification des
acteurs et la spécification fonctionnels de l’application. Ensuite, nous abordons la phase de la
conception suivie de la phase de la réalisation et nous finissons avec les tests unitaires.
1 Backlog du sprint
Le backlog du produit présente un ensemble des fonctionnalités extraites par l’équipe scrum
à partir du backlog de produit et qui vont être réalisés pendant ce sprint. Les tâches à achever
pendant notre premier sprint sont présentées dans le tableau 3.1 suivant :
54
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
certaines fonctionnalités .
US[6] En tant qu’administrateur, je
peux consulter et ajouter
et modifier des comptes 10 heures
étudiants,instructeurs ou
Gestion des comptes
créateurs de cours.
US[7] En tant qu’administrateur,
je peux m’authentifier à mon 5 heures
compte afin d’accéder à mon
tableau de bord.
55
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Dans ce diagramme de cas d’utilisation 3.1 on décrit précisément les cas d’utilisation du
premier sprint. Tous les utilisateurs peuvent remplir un formulaire pour s’inscrire et gérer leurs
comptes personnels.
56
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
57
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
du code via le nouveau mail ou son mot de passe qui nécessite la saisi de l’ancien mot de passe.
Par cette figure 3.4 on présente le cas d’utilisation qui permet aux utilisateurs de modifier les
données de leurs comptes.
Dans cette rubrique, on décrit certains cas d’utilisation par une description textuelle dé-
taillée.
Analyse du cas d’utilisation « S’authentifier »
Ce scénario 3.2 décrit l’authentification des utilisteurs pour accéder à leurs propres comptes.
Acteur Utilisateur
58
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Acteur Utilisateur
59
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Acteur Administrateur
60
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
3 Conception
La conception est la deuxième phase dans un sprint. C’est une étape très importante dans
le développement du système . Elle se traduit par la modélisation des processus et des relations
entre objets. Dans cette partie, nous présentons des diagrammes de séquences détaillées, et le
diagramme de classe afin de bien expliquer le fonctionnement de notre application dans le pre-
mier sprint.
Dans cette rubriques les Diagrammes de séquence détaillés décrivent les cas de création de
comptes et leurs gestions.
Diagramme de séquence détaillé « Créer compte »
Le visiteur dans ce diagramme 3.5 peut créer un compte utilisateur en accédant à l’interface
de création de compte. Il doit remplir un formulaire (nom, prénom, date de naissance, mail et un
mot de passe). Ces données vont être enregistrées dans la base de données si les données sont
correctement saisies et que le compte utilisateur n’existe pas déjà.
61
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
62
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
63
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
64
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Le diagramme de classe global 3.10 montre les différents acteurs de la plateforme et la rela-
tion entre eux .
65
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
4 Réalisation
On décrit dans la réalisation la démarche de développement du code backend par les sché-
mas de base de données et le frontend par les interfaces graphiques avec quelques exemples de
codes implémentés.
66
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
refresh token Le refresh token est utilisé pour obtenir String required
des accès token supplémentaires
67
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
4.2 Implementation
1. L’utilisateur se connecte avec son adresse email et son mot de passe depuis le na-
vigateur qui va envoyer une requête HTTP au serveur contenant les paramètres de
connexion.
2. Le serveur vérifie les données, génère un JWT et l’envoie vers le client HTTP.
3. Le client conserve le JWT de son côté pour pouvoir le communiquer au serveur à
chaque nouvelle requête.
4. Lorsque le serveur reçoit une nouvelle requête, il vérifie la validité du JWT pour auto-
riser ou non l’accès à la ressource demandée.
68
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Dans cette section , nous présentons les interfaces de la plateforme commençant par l’inter-
face d’inscription 3.12
69
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Ces interfaces 3.13 et 3.14 où l’administrateur peut aussi faire inscrire un étudiant , ajouter
un instructeur , un créateur de cours et un administrateur en saisissant leurs noms , prénoms ,
adresses mail et mots de passe.
Il est nécessaire pour chaque visiteur d’entrer son nom , prénom, son numéro de téléphone,
son adresse mail et son mot de passe pour pouvoir se connecter chaque fois avec son propre
compte , toutes ces informations vont être vérifiées avant de les sauvegarder. Enfin ces données
vont être enregistrées dans la base de données.
70
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Après que l’utilisateur se connecte en saisissant l’email et le mot de passe d’inscription dans
le formulaire de connexion 3.15 ,il pour avoir l’accès à la plateforme avec son propre compte.
Tout utilisateur inscrit peut gérer son propre compte dans cette interface 3.16, c’est à dire
modifier les données de son compte (sa photo de profil , son nom ,son prénom , son adresse
mail, son mot de passe et son numéro de téléphone ).
71
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
5 Tests unitaires
Dans cette rubrique, on utilise les tests unitaire qui sont un moyen de vérifier qu’un extrait de
code fonctionne correctement. C’est l’une des procédures mises en œuvre dans le cadre d’une
méthodologie de travail agile.
On a effectué les tests unitaire par l’application Postman qui sert à exécuter des requêtes
HTTP directement depuis une interface graphique. On peut tout simplement choisir l’URL, la
méthode HTTP (le plus souvent GET, POST, PUT, PATCH et DELETE), les headers, les query pa-
rams et dans certains cas le body de la requête.
Test unitaires du cas d’utilisation « Créer un compte »
Nous présentons ci-dessous le code source et le résultat de deux cas de test :
FIGURE 3.17 – Code souce du test unitaire du cas d’utilisation « Créer compte »
72
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
73
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
74
Chapitre 3 : SPRINT 1 : Authentification et gestion des comptes
Conclusion
Dans ce chapitre, on s’est focalisé sur l’authentification des utilisateurs. L’apprenant peut
créer son propre compte et se connecter. L’administrateur peut aussi lui créer un compte et pour
les deux cas un code de confirmation lui sera envoyé par mail. Quant aux administrateurs, les ins-
tructeurs et les créateurs de cours, seule l’administrateur peut leur créer leurs comptes. Chaque
utilisateur connecté peut gérer son propre compte.
75
CHAPITRE 4
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1 Backlog du sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
76
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Introduction
La gestion du contenu de la plateforme est la partie où le créateur de cours va intervenir pour
implémenter le contenu qui va être servi aux autres acteurs. Nous commençons d’abord par
l’identification des acteurs et la spécification fonctionnels de l’application. Ensuite nous abor-
dons la phase de la conception suivie de la phase de la réalisation et nous finissons avec les tests
unitaires.
1 Backlog du sprint
Le backlog du produit présente un ensemble des fonctionnalités extraites par l’équipe scrum
à partir du backlog de produit et qui vont être réalisés pendant ce sprint. Les tâches à achever
pendant notre deuxième sprint sont présentées dans le tableau 4.1 suivant :
77
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Par ce diagramme de cas d’utilisation 4.1 , on décrit précisement les cas d’utilisation du deuxième
sprint. Le créateur de cours peut gérer tous les types des nœuds, les paths ainsi que déposer des
tests et des challenges.
78
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Pour que les cas d’utilisation soient plus compréhensibles, nous avons mis en place l’analyse
de chaque cas présent.
Raffinement du cas d’utilisation «Gérer nœuds»
Ce cas d’utilisation 4.2 permet au créateur de cours d’ajouter, supprimer et modifier un noeud.
79
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
80
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Le créateur de cours peut ajouter plusieurs paths. Ce scénario 4.2 révèle les détails de l’ajout.
Scénario nominal ➊ Le créateur clique sur le bouton «Mode création path» pour
entrer en mode suppression.
➋ Le créateur de cours sélectionne les nœuds du parcours.
➌ Le créateur de cours clique sur le bouton «Sauvegarder».
➍ Le système affiche le formulaire d’ajout.
➎ Le créateur de cours remplit le formulaire.
➏ Le système vérifie les données saisies.
➐ Le système ajoute le parcours.
81
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
82
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
83
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
84
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
3 Conception
Dans ce qui suit, nous présentons les diagrammes de séquences détaillés de conception des
cas d’utilisation analysés précédemment.
85
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
86
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
87
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
88
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Le diagramme de classe global 4.10 modélise généralement les attributs, les opérations et les
relations entre les objets utils dans ce sprint.
89
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
4 Réalisation
On décrit dans la réalisation la démarche de développement du code backend par les sché-
mas de base de données et le frontend par les interfaces avec quelques exemples de codes im-
plémentés.
90
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
91
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
92
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
93
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
4.2 Implementation
Ces figures 4.11 et 4.12 présentent le code de la partie front-end qui concerne l’initialisation
des super skills et des skills.
94
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
FIGURE 4.11 – Lister les super skills FIGURE 4.12 – Lister les skills
Dans la figure 4.13 , nous présentons le code de la partie back-end la création des différents
nœuds : super skills, skills , quizzes, checkpoints et projects finaux . De plus la création des edges
(les liens qui relient les nœuds) et enfin les paths.
95
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
4.3 Interfaces
L’interface du graphe est créée par React Flow . React Flow est une bibliothèque pour créer des
applications basées sur des nœuds. Il peut s’agir de simples diagrammes statiques ou d’éditeurs
complexes. Vous pouvez implémenter des types de nœuds et des types de bords personnalisés
et il est livré avec des composants comme une mini-carte et des contrôles de graphique.
Quelques avantages d’utilisation de ce concept :
Le créateur de cours peut créer les nœuds dans le flow avec un Drag and Drop. Flow : L’espace où
les nœuds sont créés après le drag and drop.
Drag and Drop : L’action de glisser un noeud et de le mettre dans le flow.
un nœud peut être :
— Super-skill : sa création nécessite un label et une description qui décrit ce nœud. Ce nœud
peut être défini comme un cours à étudier.
— Skill : sa création demande un label, un fichier de type «md» qui comprend le contenu de
ce nœud. Un skill peut être défini comme une leçon dans le supre-skill.
— Quiz : sa création exige un label, une question et les réponses pour l’étudiant à choisi. Le
quiz peut être de type vrai/faux, question à choix multiples (QCM) ou bien question à choix
unique (QCU).
— Checkpoint : sa création demande un label, une description et un fichier de type "md». Un
checkpoint est un test pour évaluer la compréhension de l’apprenant du cours pour passer
au cours suivant.
— Projet final : sa création nécessite un label, une description et un fichier de type «md». Un
projet final récapitule tout ce que l’apprenant a appris dans un path pour avoir finalement
son certificat.
96
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
La suppression d’un nœud necéssite le clique sur le bouton «Mode supression». En sélection-
nant le nœud à supprimer et puis sur le bouton «effacer en reculant» du clavier.
Les données de création du nœud peuvent être modifiés en double-cliquant sur ce nœud
pour afficher un formulaire 4.15 de modification.
97
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Le créateur de cours peut créer un path dans cette interface 4.17 avec les nœuds qui ont été
créés dans le graphe. Ce path va être le formation que l’étudiant va choisir comme formation. Un
path peut être défini comme une formation personnalisée selon la demande de l’apprenant.
Il peut aussi consulter la liste des paths qu’il a contruit avec un bouton de dropdown.
98
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Un des rôle principal du créateur de cours est de créer les challenges pour l’apprenant. Un
challenge peut être un programme à developper pour un des partenaire de la stratup Opus Lab.
Une entreprise ou un client d’un autre domaine qui a besoin de ce projet ou une activité créée par
le créateur de cours ça peut être payant pour que l’étudiant vive une expérience professionnelle.
Cette interface 4.19 permet la création de challenge qui exige un label, une description et un
fichier de type «md» contenant les détails de l’activité à réaliser.
99
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
5 Tests unitaires
Dans ce sprint nous allons présenter les test unitaires des cas d’utilisation «Ajouter challenge»
et «Modifier super skill»
Test unitaire du cas d’utilisation « Ajouter challenge »
Pour ajouter un challenge, d’abord il faut faire l’upload d’un fichier avec l’extension .md en
utilisation le service de stockage de données en ligne « Amazon S3 ».
100
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
101
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
102
Chapitre 4 : SPRINT 2 : Gestion du contenu de la plateforme
Conclusion
Dans ce chapitre, nous avons élaboré les cas d’utilisation concernant le créateur de cours gé-
rant le contenu de la plateforme. Le créateur de cours est chargé de créer les nœuds nécessaires
pour construire des formations adéquates à la demande de l’étudiant. Le challenge sera une op-
portunité pour les étudiants pour découvrir le monde professionnel avec tous ses critères (date
limite pour envoyer le travail, la description détaillée du projet, payant, le travail d’équipe,etc).
103
CHAPITRE 5
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
104
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Introduction
Dans le chapitre précédent nous avons élaboré comment le créateur de cours peut gérer le
contenu de la plateforme avec les nœuds qu’il crée . Dans ce chapitre, nous analysons les détails
de l’exploitation de ce contenu qui constitue le troisième sprint. Nous commençons par l’ana-
lyse et la spécification des besoins, puis l’analyse des cas d’utilisation du sprint 3, la conception
ensuite la réalisation et le test.
1 Backlog du sprint
Le backlog du produit 5.1 présente un ensemble des fonctionnalités extraites par l’équipe
scrum à partir du backlog de produit et qui vont être réalisés pendant ce sprint. Les tâches à
achever pendant notre troisième sprint.
105
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
106
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
En élaborant ce diagramme de cas d’utilisation 5.1 on décrit précisément les cas d’utilisation
du troisième sprint. Le créateur de cours peut gérer tous les types de nœuds, les paths ainsi que
déposer des tests et des challenges.
Pour que les cas d’utilisation soient plus compréhensibles, nous avons mis en place l’analyse
de chaque cas présent.
Raffinement du cas d’utilisation «S’inscrire à un path»
Ce cas 5.2 permet à l’apprenant de s’inscrire à un path après avoir consulté la liste des paths.
107
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
108
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Acteur Apprenant
109
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Acteur Apprenant
Acteur Administrateur
110
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Acteur Instructeur
111
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
TABLE 5.5 – Description textuelle du cas d’utilisation «Corriger travaux des étudiants »
3 Conception
Dans cette partie, on élabore la conception du sprint par les diagrammes de séquence dé-
taillés pour modéliser le déroulement des procédures accomplies dans ce sprint.
112
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
113
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
114
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Le diagramme de classe global 5.10 modélise généralement les attributs, les opérations et les
relations entre les objets utiles dans ce sprint.
115
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
4 Réalisation
On décrit dans la réalisation la démarche de développement du code backend par les sché-
mas de base de données et le frontend par les interfaces avec quelques exemples de codes im-
plémentés.
116
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
117
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
4.2 Implementation
On a utilisé Amazon Simple Storage Service (Amazon S3) pour le sauvegarde des fichiers de
type MD ,Aussi l’intégration de python a servi pour le création d’une commande CLI pour que
l’apprenant dépose son travail en utilisant ARGPARSE : un module qui facilite l’écriture d’inter-
faces de ligne de commande conviviales. Le programme définit les arguments dont il a besoin, et
argparse déterminera comment les analyser à partir de sys.argv. Le module argparse génère au-
118
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
tomatiquement des messages d’aide et d’utilisation et émet des erreurs lorsque les utilisateurs
donnent au programme des arguments non valides.
4.3 Interfaces
Dans cette interface 5.12 l’apprenant peut consulter la liste des paths, il peut choisir le path
qui lui convient. Un code voucher de ce path lui sera envoyé par mail pour pouvoir consulter son
contenu.
119
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
L’apprenant peut consulter les superskills que contient chaque path dans cette interface 5.13
pour avoir une idée sur le contenu de chacun .
L’apprenant peut consulter la liste des paths 5.13 dont il est inscrit et voir son avancement
dans ce path.
120
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
L’apprenant peut consulter la description de chaque Super-skill 5.15 par cette interface.
Le skill 5.16 est tout une leçon que l’apprenant doit suivre pour avoir 25 points ajoutés à son
score, qui peut contenir du texte, des images et des vidéos.
121
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Pour passer à un autre skill, l’apprenant doit être testé par un quiz 5.17. Si ce test est validé
alors 50 points sont ajoutés à son score.
Pour passer à un autre super skill, un checkpoint doit être validé et donc l’apprenant peut
avoir 75 points maximum ajoutés à son score. Mais pour avoir accès au checkpoint, il faut avoir
les points nécessaires. Sinon, l’apprenant doit passer d’autres quiz pour avoir le score demandé
pour passer le checkpoint et accéder à cette interface 5.18 .
122
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Dans cette interface 5.19 , l’étudiant peut avoir une liste de quiz qui peut réaliser pour ajouter
des points à son score.
A la fin du path dans cette page 5.20 l’apprenant est demandé à réaliser un projet final. Pour
tester tout ce qu’il a appris dans cette formation, afin d’avoir 100 points maximum ajoutés à son
score, son certificat et ainsi clôturer le path.
Remarque :
L’étudiant doit envoyer les travaux des checkpoints et des projets finaux avec cette ligne de com-
123
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
mande :
«Opus push -p idpath -m idCheckpoint» s’il s’agit d’un checkpoint.
«Opus push -p idpath -m idProjetFinal» s’il s’agit d’un projet final.
L’instructeur peut consulter la liste des apprenants inscrits dans le path dans cette page 5.21
dont il est affecté.
Dans cette interface 5.22 l’instructeur peut recevoir les checkpoints et les projets finaux de
chaque étudiant inscrit dans le path dont il est affecté. Il est demandé à corriger ces travaux,
124
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
5 Tests unitaires
Test unitaires du cas d’utilisation « Affecter instructeur »
125
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
126
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
127
Chapitre 5 : SPRINT 3 : Exploitation du contenu de la plateforme
Conclusion
Dans ce sprint, l’apprenant et l’instructeur sont les acteurs principaux. L’apprenant exploite le
parcours qu’il a choisi, s’évalue pour tout ce qu’il a appris et réalise de vrais projets. L’instructeur
est indispensable, il a un rôle très important dans l’avancement de l’apprenant. Il est demandé
pour surveiller son parcours de l’aider à corriger ses travaux pour achever le dernier point de la
formation.
128
CHAPITRE 6
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4 Réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
129
Chapitre 6 : SPRINT 4 : Statistiques et Forum
Introduction
Dans le chapitre précédent nous avons élaboré comment l’apprenantpeut suivre des paths
et l’instructeur peut lui corriger son travail . Dans ce chapitre nous élaborons notre système de
notification , le forum de communication et les statistiques que les utilisateurs peuvent consulter
pour connaître les détails de tout ce qui se déroule dans la plateforme selon leurs rôles.
1 Backlog du sprint
Le backlog du produit présente un ensemble des fonctionnalités extraites par l’équipe scrum.
A partir du backlog de produit et qui vont être réalisés pendant ce sprint. Les tâches à achever
pendant notre quatrième sprint sont présentées dans le tableau suivant 6.1 .
130
Chapitre 6 : SPRINT 4 : Statistiques et Forum
131
Chapitre 6 : SPRINT 4 : Statistiques et Forum
Avec ce diagramme de cas d’utilisation, 6.1 on décrit précisément les cas d’utilisation du
deuxième sprint. Le créateur de cours peut gérer tous les types de nœuds, de paths ainsi que
déposer des tests et des challenges.
L’analyse des cas d’utilisation permet de recueillir, et d’organiser les besoins, et de recenser
les grandes fonctionnalités d’un système dans ce sprint .
Raffinement du cas d’utilisation «Consulter les statistiques de la plateforme»
Avec ce cas d’utilisation 6.2 , l’administrateur peut consulter les statistiques de la plateforme :
nombre d’ apprenants (instructeurs, créateurs de cours, apprenants et administrateurs), il peut
aussi suivre les classes d’âges des apprenants qui utilisent la plateforme. Ainsi, le nombre des
apprenants inscrits dans des paths.
132
Chapitre 6 : SPRINT 4 : Statistiques et Forum
133
Chapitre 6 : SPRINT 4 : Statistiques et Forum
Acteur Administrateur
Pré-conditions S’authentifier
Acteur Administrateur
Pré-conditions S’authentifier
134
Chapitre 6 : SPRINT 4 : Statistiques et Forum
TABLE 6.3 – Description textuelle du cas d’utilisation « Consulter pourcentage des apprenants
inscrits »
Acteur Apprenant
TABLE 6.4 – Description textuelle du cas d’utilisation « Consulter nombre de nœuds visités par
jour »
3 Conception
Dans cette partie on décrit les processus répondant aux besoins en tenant compte des contraintes
de ce sprint .
135
Chapitre 6 : SPRINT 4 : Statistiques et Forum
Les diagrammes de séquence détaillés se concentrent plus précisément sur les lignes de vie,
les processus et les objets qui vivent simultanément, et les messages qu’ils échangent entre eux
pour exercer une fonction avant la fin de la ligne de vie.
Diagramme de séquence detaillé «Consulter nombre des utilisateurs»
Dans ce diagramme figure 6.5 , l’administrateur peut suivre le nombre des utilisateurs de la
plateforme par rôle .
136
Chapitre 6 : SPRINT 4 : Statistiques et Forum
FIGURE 6.6 – Diagramme de séquence détaillé «Visualiser le pourcentage des nœuds consultés
et non consultés par jour»
FIGURE 6.7 – Diagramme de séquence détaillé «Visualiser les classes d’âges des apprenants»
137
Chapitre 6 : SPRINT 4 : Statistiques et Forum
138
Chapitre 6 : SPRINT 4 : Statistiques et Forum
4 Réalisation
On décrit dans la réalisation la démarche de developpement du code backend par les sché-
mas de base de données et le frontend par les interfaces avec quelques exemples de codes im-
plémentés
139
Chapitre 6 : SPRINT 4 : Statistiques et Forum
140
Chapitre 6 : SPRINT 4 : Statistiques et Forum
4.2 Implémentation
En ce qui concerne le forum, nous avons utilisé la bibliothèque Socket-IO. Elle assure la com-
munication bidirectionnelle entre le client et le serveur en temps réel. En outre, elle utilise un
mécanisme événementiel à la réception des messages et exécute un traitement à leurs réception
que ce soit côté client ou côté serveur.
Pour la partie statistiques chaque utilisateur peut consulter les statistiques selon son rôle
dans la plateforme dans son interface d’accueil.
141
Chapitre 6 : SPRINT 4 : Statistiques et Forum
4.3 Interfaces
Les interfaces présentées dans ce chapitre sont les interfaces des statistiques pour chaque
utilisateur selon son rôle interface statistique 6.12 de l’administrateur :
142
Chapitre 6 : SPRINT 4 : Statistiques et Forum
143
Chapitre 6 : SPRINT 4 : Statistiques et Forum
Conclusion
Dans ce sprint chaque utilisateur peut consulter les statistiques adéquates à son rôle. L’ins-
tructeur et l’apprenantpeuvent participer au forum pour échanger les informations concernant
le path. Un système de notification est mis à la disposition des instructeurs et des apprenants
pour suivre les actualités de messagerie.
144
CONCLUSION ET PERSPECTIVES
Durant la période du stage et dans le cadre de notre projet de fin d’étude, qui s’est déroulé
dans la startup Opus Lab, nous avons réalisé une plateforme de e-learning, destinée à l’appren-
tissage en ligne des compétences requises dans le secteur du digital, comme les technologies du
web et le digital marketing.
Cette application permet à un apprenant de choisir un path qui lui convient selon ses ob-
jectifs En plus, des challenges sont offerts pour lui donner la chance pour explorer le monde
professionnel et prendre la résponsabilité d’achever un projet dans les délais . En plus, un tuteur
peut à travers notre système évaluer les apprenants et avoir une idée sur le profil de chacun .
Dans notre système de e-learning, nous avons utilisé le concept des nœuds et de path. Il
consiste à rediriger le concept traditionnel de l’éducation en ligne et le remodeler en rendant
l’apprentissage un exercice amusant, dynamique et créatif.
Pour achever dans les délais l’objectif de notre projet, nous avons utilisé l’approche SCRUM,
qui était la méthode de conduite de projet préconisée dans la société d’accueil. Ainsi, des réunions
régulières ont été menées pour le développement du projet qui s’est étalé sur quatre sprints. Les
daily scrum, les sprints reviews et les sprints rétrospectives ont été pratiqués dans le développe-
ment de notre projet
REACTJS nous a facilité la décomposition puis l’intégration des différentes composantes du
système qui sont réutilisables indépendamment. En plus, nous avons opté pour un système de
gestion de base de données orienté documents MONGODB. Il a la capacité à gérer des systèmes
de données complexes et hétérogènes allant des listes aux d’ objets encapsulés. Ainsi, chaque
document peut avoir son propre ensemble de champs uniques dans une collection.
145
Conclusion et Perspectives
En plus, REACT FLOW est utilisé pour la création des paths et des nœuds dont le contenu est
assuré par S3 CLOUD. Ce qui permet le téléchargement et le téléversement des fichiers de type
MD qui comprennent les travaux des apprenants ou bien leurs corrections.
Pour assurer la communication entre le backend et le frontend, nous avons utilisé l’outil Do-
cker, sur lequel repose la technologie de container pour prendre en charge les tâches de création
d’applications basées container. Le moteur crée un processus daemon server-side, pour ’héber-
ger les images, les containers, les réseaux et les volumes de stockage.
Pour sécuriser notre système d’authentification, nous avons utilisé JWT. Il assure la sécurité
entre les utilisateurs en partageant les informations en tant qu’objet JSON. La sécurité se traduit
par le chiffrement des clés privées utilisées par l’émetteur pour signer le jeton. Le destinataire
vérifie la signature pour s’assurer que la signature du jeton n’a pas été modifiée par l’émetteur
En ce qui concerne le forum, nous avons utilisé la bibliothèque Socket-IO. Elle assure la com-
munication bidirectionnelle entre le client et le serveur en temps réel. En outre, elle utilise un
mécanisme événementiel à la réception des messages et exécute un traitement à leurs réception
que ce soit côté client ou côté serveur.
Enfin le déploiement de ce travail s’est exécuté par AMAZON WEB SERVICE, plus précisé-
ment, Amazon Elastic Compute Cloud ou EC2 qui constitue un service web autorisant les entre-
prises à exécuter leurs applications sur le cloud public Amazon Web Services. Ces applications
sont exécutées par des machines virtuelles sur les serveurs des centres de données AWS.
Les perspectives de développement sont nombreuses. En effet, pour améliorer l’expérience
des usagers, un utilisateur peut consulter son historique et être averti par un système de notifica-
tion en temps réel. En outre, une application mobile facilitera l’accès à la plateforme aux usagers.
Nous pourrons aussi intégrer un système de paiement en ligne facilitant l’inscription aux utilisa-
teurs. D’autres fonctionnalités intelligentes peuvent être aussi envisagées utilisant les données
des utilisateurs pour un système de recommandations.
146
RÉFÉRENCES BIBLIOGRAPHIQUES
[5] Rayed Benbrahim. Nodejs : le guide complet pour tout comprendre du javascript serveur.
https ://practicalprogramming.fr/, 2022.
[9] Inc. Red Hat. Une api rest. https ://www.redhat.com/fr/topics/api/what-is-a-rest-api, 2022.
[11] Inc. Red Hat. Docker, qu’est-ce que c’est ? https ://www.redhat.com/fr/topics/containers/what-
is-docker, 2022.
147
RÉFÉRENCES BIBLIOGRAPHIQUES
[13] Inc. Amazon Web Services. Cloud computing avec aws. https ://aws.amazon.com/fr/what-
is-aws/, 2022.
[14] Redis Ltd. Combiner les avantages d’une technologie de base de données de classe mon-
diale avec l’innovation de l’open source. https ://redis.com/fr/pourquoi-redis/, 2022.
[18] IONOS SARL . Qu’est-ce que github ? la gestion de versions en quelques mots, 2022.
[23] Latex, un langage pour éditer du texte scientifique : Overleaf. https ://paris-
sorbonne.libguides.com/c.php ?g=497641p=4637541 : :text=Overleaf., 2021.
148