Mémoire
Mémoire
Mémoire
MÉMOIRE
Pour l’obtention du
Présenté par :
Sous la supervision de :
AVERTISSEMENT
i
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
DEDICACE
Je dédie ce travail à :
ii
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
REMERCIEMENTS
À:
• Dr. Nelson Josias G. SAHO, mon maître de mémoire, pour sa disponibilité, son soutien et son
sens de partage de connaissances durant tout le processus de rédaction de ce document ;
• Tous les Enseignants de l’IUT de Parakou, qui œuvre pour fournir les ressources nécessaires
à la réussite de mon étude universitaire ;
• Tous les honorables membres du jury qui ont accepté la noble tâche d’évaluer mon travail ;
A tous ceux qui ont contribué de près ou de loin à la réalisation de ce travail, j’exprime ma
profonde gratitude.
iii
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Résumé
Avec l'évolution rapide des technologies numériques et de la mondialisation, les méthodes
traditionnelles d'apprentissage sont en constante transformation. L'intégration des systèmes de
gestion de l'apprentissage s'est avérée essentielle pour offrir des solutions de formation flexibles
et accessibles à un large éventail d'apprenants. Ce projet de mémoire vise à développer une
application LMS répondant aux besoins spécifiques des entreprises et des institutions
éducatives, facilitant ainsi la gestion des cours, des inscriptions, et de la monétisation. Nous
avons utilisé MongoDB pour sa capacité à gérer des données volumineuses et complexes de
manière flexible et efficace. L'interface utilisateur a été conçue avec Next.js pour offrir une
expérience fluide et réactive. Ce projet, en plus de mettre en pratique les connaissances
théoriques acquises, a permis de répondre aux besoins concrets des utilisateurs en matière
d'apprentissage en ligne.
Mots clés : LMS, MongoDB, Next.js, formation en ligne, gestion des cours, technologie
éducative.
Abstract
With the rapid evolution of digital technologies and globalization, traditional methods of
learning are constantly transforming. The integration of learning management systems has
proven to be essential in providing flexible and accessible training solutions to a wide range of
learners. This dissertation project aims to develop an LMS application meeting the specific
needs of companies and educational institutions, thus facilitating the management of courses,
registrations, and monetization. We used MongoDB for its ability to handle large and complex
data flexibly and efficiently. The user interface was designed with Next.js to provide a smooth
and responsive experience. This project, in addition to putting the theoretical knowledge
acquired into practice, made it possible to meet the concrete needs of users in terms of online
learning.
iv
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Sigles et Acronymes
LMS : Learning Management System (Système de Gestion d’Apprentissage)
UX : User Experience
v
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Glossaire
Clerk : Clerk est un service d'authentification moderne conçu pour simplifier la gestion des
utilisateurs et de leurs sessions dans les applications web et mobiles.
BCrypt : Un algorithme de hachage basé sur le chiffrement Blowfish, conçu pour être lent afin
de rendre les attaques par force brute plus difficiles. Il utilise un salt pour chaque mot de passe,
ce qui améliore la sécurité en empêchant l'utilisation de tables de correspondance (rainbow
tables)
PBKDF2 : Une fonction de dérivation de clé basée sur un mot de passe qui applique un hachage
itératif pour renforcer la sécurité. Elle est configurable pour exécuter un nombre élevé
d'itérations, rendant les attaques par force brute coûteuses en termes de temps et de ressources
Salts : Les salts (ou sels en français) sont des valeurs aléatoires ajoutées aux mots de passe
avant le hachage pour renforcer leur sécurité.
Sprints : Les sprints sont des périodes de travail définies dans la méthodologie de gestion de
projet agile, en particulier dans le cadre de Scrum.
vi
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
vii
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
viii
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
ix
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Sommaire
Introduction générale.................................................................................................................. 1
2. Problématique ..................................................................................................................... 1
Introduction ............................................................................................................................ 4
Conclusion ............................................................................................................................ 14
Introduction .......................................................................................................................... 15
Conclusion ............................................................................................................................ 31
Introduction .......................................................................................................................... 32
Conclusion ................................................................................................................................ 47
x
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Introduction générale
1. Contexte et justification
Le projet évolue dans un contexte où l'apprentissage en ligne est devenu une nécessité
incontournable, catalysée par les évolutions technologiques et les besoins changeants du
marché de l'éducation et de la formation. Avec l'émergence de nouveaux modes de travail, tels
que le télétravail et les horaires flexibles, ainsi que l'importance croissante de la formation
continue dans le développement professionnel, il est devenu impératif de fournir des solutions
d'apprentissage à distance accessibles, flexibles et efficaces. De plus, la pandémie mondiale de
COVID-19 a accéléré cette transition vers l'apprentissage en ligne, mettant en évidence la
nécessité pour les individus et les organisations de disposer de plateformes numériques robustes
pour continuer à se former et à se développer, quel que soit leur emplacement géographique ou
leur situation. Ainsi, le projet s'inscrit dans un contexte dynamique et en constante évolution,
où la demande pour des solutions d'apprentissage en ligne innovantes et adaptatives est plus
forte que jamais.
2. Problématique
La montée en puissance de la digitalisation et la mondialisation des échanges ont transformé
profondément le paysage éducatif et professionnel. Face à ces évolutions, de nombreuses
entreprises ont dû repenser leurs méthodes de formation pour rester compétitives et répondre
aux besoins changeants de leurs collaborateurs et de leurs clients. Toutefois, ce processus de
transition vers des formations en ligne présente des défis majeurs.
1
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Les entreprises doivent non seulement assurer la qualité de l'expérience utilisateur et la gestion
complète des formations, mais elles doivent également garantir la sécurité des données et la
pérennité de la plateforme dans un environnement numérique en constante évolution. Dans ce
contexte, se pose la question suivante : Comment concevoir une application de gestion
d’apprentissage qui réponde de manière efficace et innovante aux besoins complexes des
entreprises en matière de formation en ligne, en tenant compte des impératifs de sécurité, de
gestion intégrée et d'évolutivité de la plateforme ?
3. Objectifs de l’étude
L’objectif global de notre projet consiste à mettre en place une application de gestion
d’apprentissage en ligne (LearnSync360).
Il s’agit spécifiquement de :
2
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
• fournir un support technique et une formation adéquate aux utilisateurs finaux, aux
formateurs et aux administrateurs, pour garantir une adoption réussie de l'application et
une utilisation optimale de ses fonctionnalités.
4. Organisation du mémoire
Le présent travail s’articule autour de trois grands chapitres. Le premier chapitre présente la
structure d’accueil. Le deuxième chapitre présente les choix techniques lors de la conception
de l’application. Le troisième chapitre présente l’application à travers ces fonctionnalités et
quelques interfaces. Nous allons finir le travail par une conclusion et des perspectives.
3
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Introduction
Dans ce chapitre, nous allons explorer Simple IT, une entreprise informatique spécialisée dans
le développement d’applications sur mesure et les conseils en audit.
1.1.1 Historique
Simple IT, une société à responsabilité limitée (SARL) établie, elle se distingue par son
expertise dans le génie logiciel, le développement d'applications sur mesure et les conseils en
audit. Située stratégiquement à Ste Rita, en face de l'église catholique à Cotonou, dans la région
du Littoral, avec l'adresse 03 BP 2366, BJ, la société offre un emplacement accessible et
pratique.
Fondée en avril 2014 par l'ingénieur en génie logiciel, Monsieur Ulrich GBAGUIDI, Simple IT
émerge comme une société de conseil spécialisée dans l'implémentation de solutions
informatiques novatrices, avec un accent particulier sur les technologies Microsoft. En tant que
SARL, elle détient un capital social de 1.000.000 F CFA. Le siège social est situé au premier
étage du bâtiment qu’abrite la pharmacie Vie Nouvelle à Cotonou, Bénin, et la société étend sa
présence avec un détachement au 202 Bis, Boulevard du 13 Janvier à Lomé, Togo. L'essence
de Simple IT trouve ses racines dans un ensemble d'idéaux qui ont inspiré sa création et
continuent de guider son évolution. Ces valeurs forment le socle d'un rêve partagé par une
équipe extraordinaire d'hommes et de femmes, tous engagés à édifier une entreprise à la hauteur
de leurs aspirations. Au fil des années, cette équipe a réussi à tisser des liens solides avec une
clientèle dont la satisfaction demeure la boussole de leurs efforts. En 2020, Simple IT a brillé
sur le devant de la scène des entreprises de développement d'applications au Bénin, démontrant
son agilité et son savoir-faire dans le cadre de la réforme des factures normalisées initiée par le
gouvernement. La liste impressionnante de partenaires locaux et étrangers, tels que Huawei
Technologies, SCB, SOBEBRA, BOLORE, Bénin Equipements, SHB, Manutention NIGER,
4
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
SODEXCA, GCITT Clinique d’imagerie SEZO, ISM Adonaï, Orageu, Fruitizz, SOPAI,
NOAGARDEN, LE CONCEPT, FESTIVA DES GLACE, THABOR...etc, atteste de la
confiance placée en la société.
L'année suivante, en 2021, marque une étape significative dans l'histoire de Simple IT avec son
adhésion à PHOENIX GROUP, une alliance regroupant diverses entreprises. Cette nouvelle
affiliation témoigne de la croissance continue de Simple IT et de son engagement à demeurer
un acteur majeur dans le secteur des solutions informatiques innovantes.
Avec un regard tourné vers l'avenir, Simple IT persiste dans sa quête d'excellence, soutenue par
son équipe dédiée et une vision partagée d'un avenir technologique prospère.
Pour en savoir plus sur ses services, compétences et réalisations antérieures, vous pouvez visiter
le site web de l'entreprise à l'adresse http://www.simpleit.bj/#. Il constitue une vitrine numérique
détaillée, mettant en lumière l'expertise de Simple IT et son engagement constant envers
l'amélioration continue et l'innovation.
Pour mieux comprendre le fonctionnement de Simple IT, il est essentiel de se pencher sur sa
structure organisationnelle. Cette entreprise informatique, spécialisée dans le développement
d’applications sur mesure et les conseils en audit, est organisée en plusieurs départements clés,
chacun jouant un rôle crucial dans la réalisation des projets et la satisfaction des clients.
5
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Des services techniques aux services administratifs et commerciaux, chaque unité contribue de
manière significative à la dynamique et à l'efficacité globale de l'entreprise. Voici un aperçu des
principaux départements et leurs responsabilités respectives :
• Direction Générale
Le Directeur Général élabore la stratégie globale de l'entreprise, préside les réunions du comité
directeur et entretient des relations avec les partenaires et fournisseurs étrangers.
• Assistant(e) de Direction
Collaborateur direct du Directeur, il/elle exécute les demandes du Directeur, gère les agendas,
les déplacements, les courriers, et facilite la collaboration.
• Direction Technique
Il planifie et met en œuvre les solutions techniques, gère les relations avec les dirigeants et
clients pour une architecture conforme aux besoins.
• Service Comptabilité
Il rassemble et analyse les données financières, établit les rapports comptables et gère les
déclarations fiscales.
• Service Administratif
Il organise la gestion administrative, rédige des courriers, gère le personnel et veille au respect
des procédures et lois.
6
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Il gère les stocks, les approvisionnements, les déplacements du personnel et assure la logistique.
Le service de sécurité veille à la sécurité des biens et des personnes, tandis que le service
d'entretien nettoie et entretient les locaux et équipements.
• Direction Commerciale
• Service Commercial
Il connaît les produits, assure le lien entre technique et clients, et a l'autonomie pour définir des
offres et devis.
Il définit les moyens pour que les produits atteignent les consommateurs, analyse le marché,
gère l'image de l'entreprise et conçoit la stratégie de communication.
1.1.3.1 Mission
1.1.3.2 Vision
7
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
1.1.3.3 Activités
Le progrès social et économique d'une nation repose essentiellement sur l'efficacité de ses
systèmes d'information. Ainsi, dans une démarche constante de contribution au développement
du pays, SIMPLE IT propose une gamme étendue de services à sa clientèle. Au cœur de ses
activités se trouve le développement d'applications sur mesure visant à simplifier les opérations
des entreprises en fournissant des applications flexibles et adaptées à leurs besoins.
Ce puissant outil vous permettra de gérer plusieurs sites en même temps et de prendre des
décisions avérées.)
➢ GESMED (Application de gestion des centres de santé prenant en compte les rendez-
vous patients jusqu'à la prise en charge assurance,) dédiée aux centres médicaux, elle a
été conçue pour permettre une bonne gestion du dossier du patient dès son entrée jusqu’à
son rétablissement afin de permettre un bon traitement et bon suivi du patient (dossier
informatisé du patient pour éviter les erreurs occasionnées par la perte du carnet de
consultation). Elle est disponible en version :
• Version clinique générale
• Version clinique spécialisée
8
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
➢ ARM pour toutes les structures, elle concerne la mise en place d’un cycle d’archivage
et de relecture des données qui convient à vos besoins et qui permet à vos données
archivées de rester accessible à tout moment. Cela passe aussi bien par l’archivage
physique que numérique conformément aux normes archivistiques.
➢ STOCK 247 spécifiquement développée pour les entreprises qui gèrent du stock, elle
cumule, la fonction de gestion de stock vous permettant d’enregistrer les
approvisionnements et les ventes, faire l’inventaire des produits disponibles en magasin,
voir grâce au seuil alerte les produits expirés et leur disponibilité en stock ; et la fonction
site web vous donnant tous les avantages liés à un site web moderne pouvant signaler
aux clients la disponibilité ou non des produits en stock depuis une machine ayant accès
à l’internet.
➢ GESTION DU PERSONNEL, elle assure l’édition automatique des fiches de paie des
salariés en tenant compte des heures supplémentaires, des retenues ou avances sur
salaires, des charges, de l’ancienneté, du calcul des congés et des avantages liés à chaque
type de contrat. Elle gère automatiquement les congés en tenant compte des contrats de
travail, elle peut être renseignée en cas de résiliation afin de faciliter le suivi du dossier
de chaque salarier
En complément de ses applications sur mesure, SIMPLE IT propose une gamme variée de
services, notamment l'audit et le conseil en système d'information, la fourniture de matériels
informatiques, la maintenance des systèmes, le back-up et le cloud computing, l'optimisation
des sites web, l'intégration et le câblage réseau, l'interconnexion des ordinateurs administratifs,
la maintenance des packs informatiques, et la formation du personnel. Cette approche holistique
témoigne de l'engagement de SIMPLE IT à offrir des solutions complètes et adaptées aux
besoins diversifiés de sa clientèle.
9
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Durant les trois mois de stage à Simple IT, j'ai eu l'opportunité de travailler sur plusieurs aspects
du développement de l'application LMS, ainsi que de m'impliquer dans d'autres projets de
l'entreprise. Les tâches et activités réalisées peuvent être résumées comme suit :
10
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
11
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
➢ Tests et validation :
• Participation aux phases de test (unitaires, intégration et système) pour s'assurer du
bon fonctionnement de l'application.
• Identification et correction des bugs
➢ Documentation technique :
• Rédaction de la documentation technique pour les développeurs futurs, incluant les
instructions d'installation et les guides d'utilisation de l'application.
• Préparation de guides utilisateurs et de tutoriels pour les utilisateurs de l’application.
12
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Durant le stage à Simple IT, plusieurs défis ont été rencontrés, et des suggestions ont été
formulées pour améliorer le processus de développement et de gestion de projets futurs. Entre
autres, on a :
➢ Difficultés rencontrées :
• Problèmes techniques et bugs
• Gestion du temps
La gestion du temps a été un défi majeur, surtout avec les échéances serrées et les multiples
tâches à accomplir simultanément. Cela a parfois conduit à des périodes de stress élevé et à des
ajustements fréquents du planning de travail.
➢ Suggestions :
• Renforcement de la gestion projet
Utiliser des méthodologies agiles de manière plus rigoureuse, avec des sprints bien définis et
des rétrospectives régulières.
13
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Organiser des sessions de formations régulières pour l’équipe, notamment sur les nouvelles
technologies et les meilleures pratiques en développement d’applications sur mesure. Cela
permettra aux développeurs de rester à jour et d’améliorer constamment leurs compétences, ce
qui bénéficiera à l’ensemble du projet.
Conclusion
Ce chapitre m’a permis de présenter, de long en large ma structure de stage en mettant en
lumière les spécificités de ma structure et les défis auxquels nous sommes confrontés. J’ai
également identifié les besoins croissants en matière de gestion de formations en ligne, ainsi
que les attentes des utilisateurs pour une expérience d'apprentissage autonome et sécurisée. Il
est clair que notre projet vise à répondre à ces exigences en concevant une application de gestion
d’apprentissage performante. Le chapitre suivant aborde les choix techniques opérés pour la
conception et la réalisation de l’application.
14
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Introduction
"Ce n’est pas nécessaire de réinventer la roue à chaque fois ; on peut profiter de l’expertise des
autres." Cette expression couramment utilisée met en avant l’importance de ne pas reproduire
inutilement un travail déjà accompli par d’autres, mais plutôt de s’appuyer sur leur expertise et
leurs réalisations pour gagner du temps et des efforts. Dans le processus de conception et de
réalisation de notre application LMS sur mesure, il est essentiel de suivre les étapes
préliminaires nécessaires pour assurer le cycle de vie de l’application et répondre aux besoins
des utilisateurs de manière adéquate. Ainsi, nous avons opté pour l’utilisation du formalisme
UML qui offre une grande flexibilité grâce à l’utilisation de diagrammes. Ce chapitre présente
les choix techniques effectués pour la réalisation du projet.
2.1 Conception
La modélisation des données est une étape importante dans la conception d’un système
d’information, permettant d’identifier les entités logiques et les dépendances logiques entre
elles. Il s’agit d’une représentation abstraite de la structure, des relations, des noms et des
formats des données pertinentes. Il existe plusieurs outils pour modéliser les données, dont
UML, qui est un outil populaire et largement utilisé.
2.2 Modélisation
15
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Dans notre contexte, il existe deux types d'acteurs dans notre système : l’utilisateur final
(apprenant) et l’administrateur. Dans ce qui suit, nous donnerons une description détaillée de
quelques cas d’utilisation avant de présenter séparément un diagramme de cas d’utilisation, un
diagramme de classes et quelques diagrammes de séquence.
L’application est conçue pour deux types d’utilisateurs : l’utilisateur final, qui est l’apprenant,
et l’administrateur.
16
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
• Recevoir des notifications sur les mises à jour des cours, les nouveaux cours disponibles
ou les réponses données par l’administrateur.
Administrateur :
Le diagramme de classe est un outil essentiel en génie logiciel pour représenter les relations
entre les différentes classes et interfaces du système. Ce schéma est utilisé pour décrire la
structure statique du système et ne prend pas en compte les aspects dynamiques et temporels.
En d’autres termes, il permet de décrire les rôles, les comportements et les types de chaque
classe, ainsi que la manière dont les instances de chaque classe interagissent les unes avec les
autres. En utilisant le diagramme de classe, les développeurs peuvent mieux comprendre la
structure globale du système et concevoir des solutions plus efficaces pour résoudre les
problèmes de programmation complexes.
17
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Le diagramme de séquence permet de représenter les interactions entre les objets dans le
contexte d'un scénario défini par un diagramme de cas d'utilisation. Il est utilisé pour illustrer
ces interactions, en mettant en évidence les actions qui se déroulent entre les différents acteurs
ou objets du système. Dans sa disposition, l'acteur principal est généralement situé à gauche du
diagramme, tandis que les acteurs secondaires se trouvent à droite du système. L'objectif est de
décrire de manière chronologique comment les actions se déroulent entre ces entités.
18
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
19
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
20
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Objectif
Ce cas d’utilisation vise à décrire le processus
d’inscription sur l’application
Pré condition
Visiter l’application
Post condition
Créer un compte sur l’application
21
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Cas d’utilisation
Gérer cours
Acteur
Administrateur
Objectif
Ce cas d’utilisation vise à décrire le processus de
gestion de cours sur l’application
Pré condition
Créer un compte
Post condition
S’authentifier
Scénario nominal
Le système vérifie l’identifiant de l’utilisateur
connecté.
L’acteur a la possibilité de créer, modifier et
supprimer un cours.
Le système renvoie le cours dans la liste des cours
disponibles une fois le cours publié.
L’instance du cas d’utilisation se termine.
Exception
Si un champ n’est pas rempli, est mal rempli ou
présente une erreur de saisie, le système affiche
un message d’erreur.
22
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Pour la réalisation d’un projet quelconque, qu’il soit informatique ou non, les chefs de projet et
les leaders utilisent des méthodologies de gestion de projet qui s’adaptent aux exigences du
projet. Dans ce projet, nous nous sommes concentrés sur la méthodologie de Gantt.
L’utilité de la méthode de Gantt réside dans sa capacité à fournir une représentation graphique
claire et intuitive de la planification d’un projet. Voici quelques-unes de ses utilisations et
avantages :
• Planification temporelle ;
• Coordination des ressources ;
• Suivi de l’avancement.
Pour les besoins de notre système, nous avons utilisé MongoDB, qui est un système de gestion
de base de données orienté documents, répartissable sur un nombre quelconque d'ordinateurs et
ne nécessitant pas de schéma prédéfini des données. Il est écrit en C++. Le serveur et les outils
sont distribués sous licence SSPL, les pilotes sous licence Apache et la documentation
sous licence Creative Commons. Il fait partie de la mouvance NoSQL. MongoDB permet de
manipuler des objets structurés au format BSON (JSON binaire), sans schéma prédéterminé.
En d'autres termes, des clés peuvent être ajoutées à tout moment « à la volée », sans
reconfiguration de la base. Les données prennent la forme de documents enregistrés eux-mêmes
dans des collections, une collection contenant un nombre quelconque de documents. Les
collections sont comparables aux tables, et les documents aux enregistrements des bases de
données relationnelles. Contrairement aux bases de données relationnelles, les champs d'un
enregistrement sont libres et peuvent être différents d'un enregistrement à un autre au sein d'une
23
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
même collection. Le seul champ commun et obligatoire est le champ de clé principale ("id").
Par ailleurs, MongoDB ne permet ni les requêtes très complexes standardisées, ni les JOIN,
mais permet de programmer des requêtes spécifiques en JavaScript.
Visual Studio Code ou VS Code, est un éditeur de code open-source développé par Microsoft.
VS Code est apprécié pour sa performance, sa flexibilité et ses nombreuses fonctionnalités. Il
supporte une large gamme de langages de programmation, offre un terminal intégré, dispose
d’une vaste bibliothèque d’extensions, et inclut des outils de débogage robustes ainsi qu’une
intégration native de Git. Ces caractéristiques font de VS Code un choix idéal pour le
développement de notre application, facilitant la gestion des tâches de codage et de débogage
de manière efficace.
Les frameworks JavaScript sont une partie essentielle du développement web front-end
moderne, fournissant aux développeurs des outils éprouvés pour construire des applications
web évolutives et interactives. Il existe une panoplie de framework frontend pour la conception
24
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
d’une application de gestion d’apprentissage en ligne. Il s’agit entre autres de React JS, Angular
JS, Vue JS.
React (aussi appelé React.js ou ReactJS) est une bibliothèque JavaScript libre. Elle est
maintenue par Meta (anciennement Facebook) ainsi que par une communauté de développeurs
individuels et d'entreprises depuis 2013. Le but principal de cette bibliothèque est de faciliter
la création d'application web monopage, via la création de composants dépendant d'un état et
générant une page (ou portion) HTML à chaque changement d'état. React est une bibliothèque
qui ne gère que l'interface de l'application, cette interface étant considérée comme la vue dans
le modèle MVC.
Elle peut ainsi être utilisée avec une autre bibliothèque ou un framework MVC
comme AngularJS. La bibliothèque se démarque de ses concurrents par sa flexibilité et ses
performances, en travaillant avec un DOM virtuel et en ne mettant à jour le rendu dans le
navigateur qu'en cas de nécessité. Le tableau suivant présente une comparaison entre ces
différents framework.
25
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
rendu virtuel du
DOM
Sécurité Offre des Offre des pratiques Dispose d’une solide
fonctionnalités de de sécurité solides réputation en matière
sécurité, mais avec des outils de sécurité et d’une
nécessite une disponibles communauté active
vigilance
supplémentaire
Support de la Dispose d’une solide Communauté en Profite d’une large et
communauté communauté, mais croissance, mais active communauté
moins active et en moins étendue que de développeurs
croissance celle d’AngularJS et
de React.js
AngularJS offre une bonne intégration avec Web3 mais nécessite des configurations
supplémentaires. Pour la gestion des contrats intelligents, des bibliothèques sont disponibles,
mais cela demande plus d’efforts de développement. Vue.js propose une intégration
relativement simple avec Web3 grâce à des plugins tiers. La gestion des contrats intelligents est
facilitée par des plugins et des outils. React.js se démarque avec une excellente intégration avec
Web3 et dispose d’un écosystème riche pour la gestion des contrats intelligents. En termes de
performances, AngularJS peut être moins performant et nécessiter une optimisation
supplémentaire. Vue.js offre de bonnes performances et React.js se distingue avec d’excellentes
performances grâce à la gestion efficace du rendu virtuel du DOM. En matière de sécurité,
AngularJS nécessite une vigilance supplémentaire, tandis que Vue.js propose des pratiques
solides et React.js bénéficie d’une réputation en matière de sécurité. En ce qui concerne le
support de la communauté, AngularJS dispose d’une solide communauté mais moins active.
Vue.js bénéficie d’une communauté en croissance et React.js profite d’une large et active
communauté de développeurs. Nous voyons donc que React.js se distingue avec son excellente
intégration avec Web3, son riche écosystème pour la gestion des contrats intelligents, ses
performances exceptionnelles et sa réputation solide en matière de sécurité. De plus, il bénéficie
d’une large et active communauté de développeurs prête à offrir un support continu. Si vous
26
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
recherchez un framework JavaScript offrant une intégration puissante avec Web3, des
performances élevées et une sécurité robuste, React.js est un choix solide à considérer.
Pour le développement de notre projet LMS, nous avons choisi d’utiliser Nextjs, un Framework
React permettant de créer des applications web performantes et optimisées. Nextjs offre de
nombreux avantages, tels que le rendu côté serveur (SSR) et le coté rendu statique (SSG), ce
qui améliore considérablement la performance et le SEO des applications. De plus, Nextjs
facilite le routage, la gestion des API, et l’intégration avec des services tiers, rendant le
développement plus rapide et efficace. Grâce à ses fonctionnalités avancées et à sa flexibilité,
Nextjs s’est avéré être un outil essentiel pour la construction de notre application LMS.
27
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Tailwind CSS est un framework CSS open source. La fonctionnalité principale de cette
bibliothèque est, contrairement à d'autres frameworks CSS comme Bootstrap, qu'elle ne
procure pas une série de classes prédéfinies pour des éléments tels que des boutons ou des
tables. À la place, Tailwind crée une liste de classes CSS « utilitaires » pouvant être utilisés
pour ajouter un style à chaque élément en les mélangeant et en les agençant.
Par exemple, dans d'autres systèmes, il y aurait une classe message-warning qui appliquerait le
jaune comme couleur d'arrière-plan et du texte gras. Pour avoir ce résultat dans Tailwind, il
faudrait appliquer un ensemble de classes créé par la bibliothèque : bg-yellow-200 et
font-bold. En date du 17 mai 2023, Tailwind CSS a plus de 68 400 étoiles sur GitHub. La figure
ci-dessous nous donne un aperçu de l’exemple.
En raison de la différence sur les concepts de base liés à d'autres frameworks CSS traditionnels
tels que Bootstrap, il est important de connaitre la philosophie à partir de laquelle Tailwind a
été créé, ainsi que son utilisation de base.
28
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
2.3.3.5 Mux
Mux est une plateforme de streaming vidéo qui permet de gérer l'encodage, la diffusion, et
l'analyse des vidéos de manière efficace. Conçu pour simplifier le streaming vidéo, Mux offre
une solution complète qui permet aux développeurs de se concentrer sur la création de contenu
sans se soucier des complexités techniques liées à la vidéo. Il offre des fonctionnalités
d'encodage adaptatif, assurant que les vidéos sont optimisées pour tous les types de réseaux et
d'appareils, et utilise des réseaux de distribution de contenu (CDN) pour fournir une diffusion
rapide et fiable. De plus, Mux fournit des outils analytiques détaillés, permettant de suivre et
d'optimiser les performances des vidéos.
2.3.3.6 Prisma
Prisma est un ORM moderne pour Node.js et TypeScript, conçu pour simplifier les interactions
avec les bases de données relationnelles comme PostgreSQL, MySQL, et SQLite. Prisma
permet aux développeurs de définir leur modèle de données de manière déclarative, générant
automatiquement des migrations et un client typé pour interagir avec la base de données. Grâce
à Prisma, les développeurs peuvent effectuer des requêtes SQL de manière simple et sécurisée,
tout en bénéficiant d'une gestion optimisée des migrations et d'une compatibilité multi-base de
données. L'utilisation de Prisma dans notre projet LMS nous permet de gérer efficacement notre
base de données, assurant une productivité accrue et une sécurité améliorée.
29
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
TypeScript est un langage de programmation open-source développé par Microsoft, qui étend
JavaScript en ajoutant des types statiques. Cela permet aux développeurs de détecter et de
corriger les erreurs au moment de la compilation plutôt qu'à l'exécution, améliorant ainsi la
fiabilité et la maintenabilité du code. TypeScript est compatible avec tous les projets JavaScript
existants, car il est transcompilé en JavaScript. Il inclut également les dernières fonctionnalités
ECMAScript, même celles qui ne sont pas encore prises en charge par tous les environnements
d'exécution.
2.3.3.8 Nodejs
Node.js est un environnement d'exécution côté serveur basé sur le moteur JavaScript V8 de
Chrome. Il permet d'exécuter du code JavaScript côté serveur, offrant ainsi une plateforme
puissante pour le développement d'applications web et de serveurs. Node.js utilise un modèle
d'E/S non bloquant et événementiel, ce qui le rend efficace et adapté aux applications intensives
en termes d'I/O comme les applications en temps réel.
30
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Le logiciel Visual Paradigm est un puissant outil de modélisation utilisé pour créer des
diagrammes UML. Il offre une large gamme de fonctionnalités pour la conception et la
documentation des systèmes logiciels. Visual Paradigm facilite la création de diagrammes UML
tels que les diagrammes de classes, de séquence, d'activité, de déploiement, etc.
Conclusion
Ce chapitre a présenté la conception et notre choix technique liés à la réalisation de notre projet.
Le prochain chapitre présentera le fonctionnement du système d’apprentissage pour les
utilisateurs.
31
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Introduction
Dans le cadre de cette étude, nous présenterons les résultats de notre travail en exposant
quelques interfaces développées ainsi que leur fonctionnement. Par la suite, nous procéderons
à une discussion approfondie de ces résultats obtenus. Cette étape nous permettra d’analyser et
d’interpréter les performances de nos interfaces, en mettant en évidence les aspects positifs et
les éventuelles améliorations à apporter. Enfin, nous conclurons en soulignant les contributions
et les enseignements tirés de cette étude, ouvrant ainsi la voie à de nouvelles perspectives pour
des développements futurs.
3.1.1 Inscription
L'interface "Inscription" est la vue spécialement conçue pour les nouveaux utilisateurs qui
souhaitent s'inscrire dans le système. Elle propose un formulaire où les utilisateurs peuvent
saisir leurs informations personnelles telles que l'adresse e-mail et le mot de passe, ou se
connecter directement à un service numérique afin de créer un compte et d'accéder aux
fonctionnalités personnalisées offertes par le système.
32
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Après s'être connecté, l'utilisateur est dirigé vers le tableau de bord. Cette interface est
spécialement conçue pour fournir une vue d'ensemble claire et intuitive de ses cours.
L'utilisateur peut y voir le nombre de cours en attente ainsi que ceux déjà terminés. De plus, il
peut facilement suivre sa progression dans chaque cours grâce à des indicateurs visuels.
3.1.3 Parcourir
L'interface "Parcourir" permet aux utilisateurs de rechercher et d'explorer les différents cours
disponibles sur la plateforme. Elle offre une vue d'ensemble organisée et facile à naviguer pour
trouver des cours dans divers domaines.
3.1.4 Certification
34
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
L'interface "FAQs" est conçue pour aider les utilisateurs à trouver rapidement des réponses aux
questions les plus courantes concernant l'utilisation de la plateforme. Cette vue est structurée
de manière à être facilement navigable et intuitive, offrant un support rapide sans avoir besoin
de contacter le service client.
35
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
3.1.6 Newsletter
L'interface "Newsletter" permet aux utilisateurs de s'abonner aux mises à jour régulières de la
plateforme et de rester informés des dernières actualités, des nouveaux cours, des offres
spéciales et d'autres informations pertinentes. Cette vue est conçue pour être intuitive et facile
à utiliser.
3.1.7 Problèmes
L'interface "Problèmes" est conçue pour permettre aux utilisateurs de signaler des problèmes,
de poser des questions et de recevoir de l'aide pour résoudre des difficultés rencontrées lors de
l'utilisation de la plateforme. Cette vue est organisée pour offrir un support utilisateur efficace
et rapide.
36
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
L'interface "Cours verrouillé" est généralement conçue pour restreindre l'accès au contenu
spécifique jusqu'à ce que certaines conditions soient remplies.
37
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
3.1.9 Paiement
L’interface "Payement" est généralement conçue pour donner l’accès aux utilisateurs d’acheter
un cours.
38
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
L'interface "Espace Enseignant" est spécialement conçue pour les administrateurs et les
formateurs utilisant la plateforme. Elle leur offre les outils nécessaires pour gérer leurs cours,
interagir avec les étudiants et suivre leur progression.
39
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
L'interface "Création de Cours" est spécialement conçue pour permettre aux enseignants de
créer et de structurer des cours de manière intuitive et efficace. Elle offre une gamme d'outils
et de fonctionnalités pour développer des contenus pédagogiques de haute qualité.
L'interface "Création de Chapitre" est spécialement conçue pour permettre aux enseignants de
créer et de structurer des chapitres du cours de manière intuitive et efficace. Elle offre une
gamme d'outils et de fonctionnalités pour développer des contenus pédagogiques de haute
qualité.
40
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
L'interface "Données Analytiques" nous offre une vue détaillée et stratégique des performances
commerciales et financières.
41
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
42
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
3.3.1 Parcourir
L'interface "Parcourir" permet aux utilisateurs de rechercher et d'explorer les différents cours
disponibles sur la plateforme. Elle offre une vue d'ensemble organisée et facile à naviguer pour
trouver des cours dans divers domaines.
43
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
44
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
3.5.1 Confidentialité
Les utilisateurs et l'administrateur du site doivent fournir leurs identifiants (adresse e-mail et
mot de passe) pour accéder aux parties sensibles du site. Cela garantit que seules les personnes
autorisées peuvent se connecter et consulter les informations confidentielles.
Nous avons mis en place le protocole HTTPS pour sécuriser toutes les communications entre
les utilisateurs et notre serveur. HTTPS chiffre les données échangées, garantissant ainsi que
les informations sensibles telles que les identifiants de connexion, les données personnelles et
les transactions restent confidentielles et protégées contre les interceptions malveillantes.
45
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Pour sécuriser les mots de passe des utilisateurs, nous avons utilisé le service d'authentification
Clerk, qui implémente des algorithmes de hachage robustes. Clerk utilise des algorithmes de
hachage tels que BCrypt, PBKDF2, ou Argon2 pour transformer les mots de passe en
empreintes numériques uniques et sécurisées. Ces algorithmes sont conçus pour être résistants
aux attaques par force brute et utilisent des sels (salts) pour renforcer la sécurité des mots de
passe. En utilisant Clerk, nous garantissons que même en cas de compromission de la base de
données, les mots de passe des utilisateurs restent sécurisés, car il est extrêmement difficile de
retrouver le mot de passe d'origine à partir de sa valeur de hachage.
Dans notre plateforme, nous avons mis en place des contrôles qui vérifient le rôle de l'utilisateur
lors de sa connexion. Ainsi, si l'utilisateur est identifié en tant qu’administrateur, il aura accès à
toutes les fonctionnalités et parties de l’application. En revanche, si c'est un utilisateur final,
certaines parties restreintes de l’application lui seront invisibles. Cela permet de différencier les
privilèges d'accès en fonction du rôle de l'utilisateur, assurant ainsi une gestion appropriée des
permissions. Les administrateurs bénéficient d'un accès étendu pour effectuer des tâches
administratives, tandis que les utilisateurs ordinaires ont un accès limité aux fonctionnalités qui
leur sont appropriées. Cette mesure de sécurité garantit que chaque utilisateur ne voit que les
informations et les fonctionnalités qui lui sont nécessaires, renforçant ainsi la confidentialité et
la sécurité du système.
Dans notre système, nous avons mis en place une mesure de sécurité qui concerne
l'administrateur du système lorsqu'il effectue des actions telles que la modification ou la
suppression d'un événement. Pour prévenir toute suppression accidentelle, une confirmation est
demandée avant de procéder à l'action. Cette mesure vise à éviter les erreurs de manipulation,
notamment si l'administrateur clique par inadvertance sur un bouton de suppression. En
demandant une confirmation supplémentaire, l'administrateur a l'opportunité de revoir son
choix avant de valider définitivement l'action de suppression d'un événement. Cela permet de
réduire les risques de perte de données ou de suppression accidentelle d'informations
importantes. En intégrant cette mesure de sécurité, nous veillons à ce que les modifications et
suppressions d'événements soient effectuées de manière plus réfléchie et contrôlée.
46
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
3.6 Discussion
Au regard des résultats obtenus nous pouvons affirmer que nos différents objectifs visés sont
atteints. Au terme de notre, travail, nous avons développé une application LMS dédiée à
l’apprentissage en ligne. Cette application est conçue pour être extensible, ce qui signifie que
qu’elle pourra évoluer et s’enrichir de nouvelles fonctionnalités sans nécessiter de
modifications majeures sur la modélisation mise en place. L’application est sécurisée grâce aux
atouts qu’offre le protocole HTTPS. Cependant dans la pratique, notre application présente
quelques insuffisances :
Conclusion
Dans ce chapitre a été exposé le fruit de notre travail. Les résultats obtenus à l’issue de la phase
de développement ont été présentés sous forme de capture d’écran et un rapport des
insuffisances a également été présenté. Nous formulerons des perspectives sur la base de ces
limites pour améliorer notre solution.
47
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Conclusion générale
Notre projet LMS représente une avancée significative dans le domaine de l'éducation en ligne,
visant à offrir une plateforme flexible et efficace pour la gestion des apprentissages. Il a exigé
un haut degré d'adaptabilité et d'organisation, permettant de répondre aux besoins croissants en
matière de formation à distance de manière économique et sécurisée. La réalisation de ce projet
a été une opportunité précieuse pour mettre en pratique les connaissances théoriques acquises
au cours de notre formation académique.
En plus de consolider nos compétences techniques, ce projet nous a permis de nous familiariser
avec les exigences concrètes du milieu professionnel, notamment la gestion de projet, la
collaboration en équipe, l’assiduité, la discipline, la rigueur dans le travail et la ponctualité.
Nous avons conçu une plateforme LMS robuste, capable de fournir des cours de manière
interactive et adaptable aux besoins des apprenants.
• Intégration d'un système de gestion avancé des utilisateurs et des cours pour une
personnalisation accrue.
• Développement de fonctionnalités de suivi et d'évaluation des performances des
apprenants pour optimiser l'apprentissage.
• Intégration de technologies émergentes comme l'intelligence artificielle pour enrichir
l'expérience d'apprentissage.
• Amélioration de l'interface utilisateur pour une navigation intuitive et conviviale.
En effet, nous prévoyons également d'effectuer une évaluation continue des besoins des
utilisateurs afin d'adapter et d'améliorer constamment notre plateforme, assurant ainsi sa
pertinence et son efficacité dans le paysage dynamique de l'éducation numérique.
48
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Bibliographie
[1] S. Ermine A. DAMENOU T. Cours de Méthodologie de Rédaction de Mémoire. 2023.
49
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
Webographie
[1] LMS définition, https://fr.wikipedia.org/wiki/Learning_management_system, consulté le 20
juin 2024.
50
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
DEDICACE ................................................................................................................................ ii
Résumé ...................................................................................................................................... iv
Glossaire .................................................................................................................................... vi
Introduction générale.................................................................................................................. 1
2. Problématique ..................................................................................................................... 1
Introduction ............................................................................................................................ 4
1.1.1 Historique………………………………………………………………4
1.1.2 Structure Organisationnelle…………………………………………….5
1.1.3 Mission, Vision et Activités……………………………………………7
1.1.3.1 Mission…………………………………………………………7
1.1.3.2 Vision…………………………………………………………..7
1.1.3.3 Activités………………………………………………………..8
1.1.4 Organigramme fonctionnel de Simple IT……………………….……10
1.2 Déroulement du stage .................................................................................................... 10
Introduction .......................................................................................................................... 15
Introduction .......................................................................................................................... 32
52
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
3.1.1 Inscription……………………………………………………………………….33
3.1.2 Tableau de bord………………………………………………………………….34
3.1.3 Parcourir………………………………………………………………………...35
3.1.4 Certification……………………………………………………………………..35
3.1.5 Foires aux questions…………………………………………………………….36
3.1.6 Newsletter……………………………………………………………………….37
3.1.7 Problèmes……………………………………………………………………….37
3.1.8 Cours verrouillé…………………………………………………………………38
3.1.9 Paiement………………………………………………………………………...39
3.2 Présentation de l’application LearnSync360 (Administrateur) ...................................... 39
3.3.1 Parcourir………………………………………………………………………...44
3.4 Les fonctions importantes du backend de l’application ................................................. 44
3.5.1 Confidentialité…………………………………………………………………..46
3.5.2 Protection des données via HTTPS……………………………………………...46
3.5.3 Hachage des mots de passe………………………………………………………47
3.5.4 Contrôle d’accès………………………………………………………………...47
3.5.5 Confirmation de suppression……………………………………………………47
3.6 Discussion ....................................................................................................................... 47
Conclusion ................................................................................................................................ 47
Bibliographie………………………………………………………………………………….49
Webographie………………………………………………………………………………….50
53
Conception et développement d’une application de gestion d’apprentissage en ligne : LMS
54