Vous êtes sur la page 1sur 60

Dédicaces

C'est avec une grande émotion que je tiens aujourd'hui à témoigner de ma gratitude envers
ceux qui m'ont soutenu dans l'élaboration de ce travail.
Je dédie ce travail

À ma mère
Maman, tu es ma première inspiration dans ce monde et tu le resteras sans doute à jamais,
c'est grandement grâce à ta présence bienveillante, tes encouragements incessants et ta
confiance en mes capacités que j'ai été capable de fournir ce travail.
Merci de m'avoir toujours poussé dans mes retranchements à accomplir
le meilleur de moi-même.

À mon père
Papa, grandir à tes côtés a été un des meilleurs cadeaux que la vie m'a faits. Tu as été tout
au long de mon enfance mon modèle et mon exemple, mille mercis pour ton soutien et
amour inébranlable.

À ma sœur
Je vous remercie de tout mon cœur pour toute l'attention que vous m'avez apporté et la
tendresse avec laquelle vous m'avez considéré même lors de mes plus difficiles moments.

À mon frère
Votre présence quotidienne ainsi que votre soutien m'a encouragé et permis de toujours
progresser encore plus. Sans vous je n'aurai pas été en mesure d'écrire ces lignes
aujourd'hui.

Ahmed Dridi

Remerciement
Avant de commencer la présentation de ce
travail, je m’exprime mes sincères
remerciement à tous ceux qui mon aidé et
ma soutenu durant ce projet.
Je voudrais adresser toute ma gratitude à
mon maître de stage, Monsieur…………. pour
son accueil chaleureux ainsi que pour sa
confiance sa disponibilité et surtout pour ses
précieux conseils.
Je désire aussi remercier les professeurs de
L’Institut Supérieur des Langues Appliquées
et Informatique de Béja, qui m’ont fourni les
outils nécessaires au bon déroulement de
mon stage.
Enfin, je tiens à remercier tous les membres
du jury pour m’avoir accordé l’honneur de
juger mon travail.
TABLE DES MATIÈRES
Introduction générale 1

1. Présentation Générale 3
 Introduction 4
 1.1 Présentation de l’organisme d’accueil
 Présentation du Centrale Laitière du Nord 4
 1.2 Présentation du projet 4
 1.2.1 Problématique 5
 1.2.2 Étude de l’existant 5
 1.2.3 Solution proposée 5
 1.3 Choix méthodologique 6
 1.3.1 Les méthodes agiles 6
 1.3.2 Démarche SCRUM 7
 Conclusion 8

2. Analyse et Spécification des besoins « Sprint 0 » 9


Introduction 10
 2.1 Spécification des besoins 10
 2.1.1 Identification des acteurs 10
 2.1.2 Besoins Fonctionnels 11
 2.1.3 Les besoins non fonctionnels 12
 2.2 Analyse des besoins 13
 2.2.1 Diagramme de cas d’utilisation globale 13
 2.2.2 Diagramme de classe général 14
 2.3 Planification du projet 15
 2.3.1 Backlog du produit 16
 2.3.2 Planification des Sprints 16
 2.4 Architecture globale 17
 2.4.1 Architecture de déploiement 17
 2.4.2 Architecture logicielle 17
 2.5 Choix technologiques 19
 2.5.1 Outils et Langages de développement 19
 2.5.2 Outil de modélisation 22
 2.5.3 Outil de gestion de projet 23
 2.5.4 Outil de communication 23
 Conclusion 24

3. Fonctionnalités Principales « Sprint 1 » 25


Introduction 26
 3.1 Sprint backlog 26
 3.2 Analyse 26
 3.2.1 Diagramme de cas d’utilisation 26
 3.3 Réalisation 27
 Conclusion 28

4. Authentification et Interface Utilisateur « Sprint 2 » 29


Introduction 30
 4.1 Sprint backlog 30
 4.2 Analyse 30
 4.3 Diagramme de cas d’utilisation 30
4.3.2Diagramme de cas d’utilisation d’authentification 30
4.3.2 Diagramme de cas d’utilisation de l'interface
utilisateur 31
 4.4 Diagramme de séquence système 32
4.4.1 Diagramme de séquence du scénario "S’authentifier"
 4.5 Réalisation 34
4.5.1 Réalisation du scénario "S’authentifier"
 Conclusion 36

5. Contenu Généré Automatiquement « Sprint 3 » 37


Introduction 38
 5.1 Sprint Backlog 38
 5.2 Analyse 38
 5.2.1 Diagramme de Séquence Système 39
 5.3 Réalisation 40
 Conclusion 42

6. Intégration YouTube et Quiz « Sprint 4 » 43


Introduction 44
 6.1 Sprint Backlog 44
 6.2 Analyse 44
 6.2.1 Diagramme de cas d’utilisation 45
 6.3 Réalisation 45
 Conclusion 47

Conclusion générale 48

TABLE DES FIGURES


FIGURE 1.2 – cycle de vie de scrum 7
Acteurs 11
Diagramme de cas d’utilisation générale 13
FIGURE 2.3 – Diagramme de classe général 14
PlanetScale Logo 19
NodeJs Logo 19
Next.js Logo 20
Tailwindcss Logo 20
OpenAI Logo 21
Youtube Logo 21
VsCode Logo 22
Draw.io Logo 22
Trello Logo 23
Slack Logo 24
Diagramme de cas d’utilisation 26
Diagramme de cas d’utilisation d’authentification 30
Diagramme de séquence du scénario 32

LISTE DES TABLEAUX


TABLE 1.1 – Comparatif des méthodes agiles 7
TABLE 1.2 – Table de termes clés de la méthodologie Scrum 8
TABLE 2.1 – Description textuelle du diagramme de classes 15
TABLE 2.2 – Backlog générale du produit 16

INTRODUCTION GÉNÉRALE :
Dans un monde en perpétuelle mutation, la technologie se profile comme
l'instigatrice d'innovations étonnantes et de créations prodigieuses. Cette
progression semble être le fil conducteur indéniable de notre ère. Cependant, il
est à noter que même dans ce panorama d'informatique en constante
expansion, des défis subsistent et des lacunes se dessinent, des aspects que
nous scruterons attentivement au cours de cette étude.

Au cœur de cette dynamique se trouve Le Centrale Laitière du Nord


Tunisie, une entreprise agroalimentaire établie qui joue un rôle clé dans la
production laitière et ses dérivés. En s'adaptant aux évolutions constantes du
secteur agroalimentaire, Centrale Laitière du Nord Tunisie s'efforce de
moderniser ses processus en intégrant des technologies de pointe.

Tout comme les avancées technologiques ont transformé le paysage


quotidien, stimulant les entreprises à repenser leurs modèles opérationnels,
Centrale Laitière du Nord Tunisie, dans sa démarche de conjuguer tradition et
innovation dans le secteur laitier, se heurte à des défis stratégiques.

Mon expérience au sein de Centrale Laitière du Nord Tunisie, en tant


qu'étudiants de l’institut supérieur des langues applique et d’informatique Beja,
a été une occasion unique d'appliquer mes connaissances dans le domaine de la
technologie. Cette collaboration a permis une participation active à la
modernisation des processus de l'entreprise. Chaque section, alignée sur une
approche méthodologique, offre un aperçu détaillé de notre contribution à
l'innovation.

1
2
CHAPITRE 1

PRÉSENTATION GÉNÉRALE

 Introduction
 1.1 Présentation de l’organisme d’accueil
 Présentation de Centrale Laitière du Nord Tunisie
 1.2 Présentation du projet
 1.2.1 Problématique
 1.2.2 Étude de l’existant
 1.2.3 Solution proposée
 1.3 Choix méthodologique
 1.3.1 Les méthodes agiles
 1.3.2 Démarche SCRUM
 Conclusion

Introduction
L'objectif de ce chapitre est de contextualiser le projet au sein de Centrale
Laitière du Nord Tunisie. Nous débuterons par une présentation approfondie de
l'entreprise, de ses principales filiales et de ses activités. Ensuite, nous
examinerons de manière critique l'état actuel du projet, aboutissant à la
proposition de solutions et à la méthodologie adoptée pour la gestion de notre
projet au sein de Centrale Laitière du Nord Tunisie.

1.1 Présentation de l’organisme d’accueil


1.1.1 Présentation de Centrale Laitière du Nord Tunisie
Dans un paysage technologique en constante évolution, les entreprises sont
à la recherche de solutions innovantes pour répondre aux demandes toujours
changeantes du marché. Ce rapport résume notre engagement dans le
développement du projet "Learning Journey", explorant les défis spécifiques liés
à l'innovation dans le domaine de l'éducation. En tant qu'étudiants de l’ISLAI
Béja, notre contribution dynamique a apporté des perspectives novatrices à la
convergence de l'éducation traditionnelle et des technologies modernes. Chaque
section offre un aperçu détaillé de notre impact au sein du projet "Learning
Journey", en suivant une approche méthodologique structurée.

1.2 Présentation du Projet


Le projet "Learning Journey" vise à fournir une plateforme d'apprentissage
en ligne révolutionnaire, propulsée par l'intelligence artificielle, offrant une
expérience personnalisée à tout étudiant ou individu cherchant à acquérir de
nouvelles connaissances. Cette section se concentre sur la problématique sous-
jacente, l'étude de l'existant, et la solution novatrice proposée.
4

1.2.1 Problématique
L'évolution rapide de la technologie a introduit de nouveaux défis dans le
domaine de l'apprentissage. Les méthodes traditionnelles ne répondent souvent
pas de manière optimale aux besoins individualisés des apprenants. De plus,
l'accessibilité à des ressources d'apprentissage variées et de qualité peut être un
défi. Face à ces problématiques, le projet "Learning Journey" se positionne pour
résoudre ces défis en offrant une solution moderne et adaptative.

1.2.2 Étude de l'Existant


Une analyse approfondie de l'existant a été réalisée pour comprendre les
lacunes dans les systèmes d'apprentissage actuels. Cette étude a révélé des
limitations dans la personnalisation des parcours d'apprentissage, la diversité
des ressources disponibles, et l'engagement des apprenants. Ces constats ont
renforcé la nécessité de créer une plateforme innovante, capable de surmonter
ces obstacles et offrir une expérience d'apprentissage plus efficace.

1.2.3 Solution Proposée


La solution apportée par "Learning Journey" repose sur l'intégration de
l'intelligence artificielle pour générer des parcours d'apprentissage
personnalisés. L'utilisateur peut simplement spécifier le sujet qu'il souhaite
apprendre, et notre système générera automatiquement des titres et des unités
pertinents. Chaque unité est associée à une vidéo YouTube et à des questions à
choix multiples (QCM) pour permettre à l'utilisateur de tester ses
connaissances. Cette approche innovante garantit une expérience
d'apprentissage engageante, adaptée aux besoins spécifiques de chaque
individu.

1.3 Choix méthodologique


La méthodologie de développement est l’une des étapes les plus
importantes du projet. Dans notre cas, la méthode adaptée pour organiser et
limiter le travail est scrum en raison de sa facilité d’adaptation aux
changements.
1.3.1 Les méthodes agiles
Une méthode Agile est une approche itérative et collaborative, apte à
prendre en considération les besoins initiaux du client et aux développements.
Le but d’une méthode agile est de maximiser la valeur ajoutée.

Comparaison entre les méthodes agiles


Les méthodes d’agiles se différent et se varient selon le projet, parmis les
méthodes les plus utilisées sont : XP«Extreme Programming», AUP « Agile
Unified Process » et Scrum. Dans notre cas, on va comparer ces méthodes pour
choisir la méthode la plus adéquate à adopter. Le tableau suivant présente une
comparaison entre les caractéristiques de ces derniers

Condition \ Méthode XP AUP Scrum

Petite équipe Oui Non Oui

Exigences très variables Oui Non Oui


Équipes distribuées Non Oui Oui

Client/Parties Prenantes Non Non Oui


multiples

TABLE 1.1 – Comparatif des méthodes agiles

1.3.2 Démarche SCRUM


Scrum est une méthode de gestion de projet de plus en plus utilisée dans
l’industrie du développement logiciel. Elle est particulièrement adaptée pour
des projets modulaires, qui visent à réaliser un produit à forte valeur ajoutée
pour le client . Le cycle de vie de cette méthode est résumé dans la figure 1.2

FIGURE 1.2 – cycle de vie de scrum 7

Terme clé Définition

Product Rassemble tous les exigences fonctionnels du client et


Backlog les révèle sous la forme de "User Story" .
User Story Description complète et facile d’une fonctionnalité ou
d’une attente formulée par un utilisateur.
Sprint Backlog Ensemble des User Stories à utiliser dans un Sprint

Sprint Un regroupement de personnes impliquées dans un


projet pour se focaliser sur le déroulement de ce projet .
Scrum Master Un professionnel qui assure que les processus Scrum
seront mis en œuvre dans les meilleurs délais.
Product Owner Le Product Owner, ou chef de projet digital, est chargé
de la mise en œuvre de la stratégie de développement
de l’entreprise.
Équipe de Ensemble de personnes responsables de livrer à chaque
développemen fin de sprint un produit ou un service .
t

TABLE 1.2 – Table de termes clés du méthodologie Scrum

Conclusion
Ce projet a permis de développer une nouvelle fonctionnalité pour
l'application mobile d'ETTABA qui permet aux utilisateurs de suivre l'évolution
de leurs cultures en temps réel. Cette fonctionnalité permet d'optimiser la
connexion entre les fermes et les citadins tout en offrant une expérience
agricole immersive et éducative.

CHAPITRE 2

ANALYSE ET SPÉCIFICATION DES BESOINS « SPRINT 0 »


Introduction
2.1 Spécification des besoins
2.1.1 Identification des acteurs
2.1.2 Besoins Fonctionnels
2.1.3 Les besoins non fonctionnels
2.2 Analyse des besoins
2.2.1 Diagramme de cas d’utilisation globale
2.2.2 Diagramme de classe général
2.3 Planification du projet
2.3.1 Backlog du produit
2.3.2 Planification des Sprints
2.4 Architecture globale
2.4.1 Architecture de déploiement
2.4.2 Architecture logicielle
2.5 Choix technologique
2.5.1 Outils et langages de développement
2.5.2 Outil de modélisation
2.5.3 Outil de gestion de projet
2.5.4 Outil de communication
Conclusion 9

Introduction
Ce chapitre présente la phase d’analyse, qui est la phase la
plus importante dans le développement d’un projet. En outre, ceci
inclut l’analyse et la spécification des exigences fonctionnelles et
non fonctionnelles du client. Commençons par identifier les
acteurs et préciser les besoins fonctionnels et non fonctionnels.
Ensuite, nous passerons à la modélisation des besoins à travers un
diagramme de cas d’utilisation et un diagramme de classe
généraux . Pour finir, nous allons présenter notre environnement
de développement.

2.1 Spécification des besoins


La spécification des besoins est utilisée pour mettre le projet
dans la bonne voie . Lors de la passation de cette phase nous
aurons une vue plus claire pour nos fonctionnalités qui met notre
projet dans un cadre plus précis .

2.1.1 Identification des acteurs


L’acteur est la personne qui interagit avec le système .
Dans notre cas il y a 3 acteurs principaux :

10
Utilisateur Standard Administrateur

2.1.2 Besoins Fonctionnels


Les besoins fonctionnels décrivent les fonctionnalités spécifiques attendues du
système "Learning Journey".
Ces besoins comprennent :

1. Inscription et Authentification :
 Permettre aux utilisateurs de créer un compte et de
s'authentifier via leur compte Google.
2. Génération Automatique de Cours :
 Fournir une fonctionnalité permettant à l'utilisateur de
spécifier le sujet d'apprentissage et de générer
automatiquement un cours associé.
3. Intégration YouTube et Quiz :
 Intégrer des vidéos YouTube pertinentes dans les cours
générés et mettre en place un système de quiz interactif.
4. Contrôle de la Lecture Vidéo :
 Offrir des options de contrôle lors de la lecture des vidéos,
telles que la pause, l'avance rapide et le retour en arrière.

11

2.1.3 Les besoins non fonctionnels


Les besoins non fonctionnels sont tout aussi cruciaux pour le bon
fonctionnement de notre plateforme d'apprentissage. Nous les définissons
en tenant compte des particularités de notre projet :
1. Performance :
 Le système doit fournir une expérience utilisateur réactive
et des temps de chargement minimaux, même lors de
l'intégration de vidéos et de la participation à des quiz.
2. Sécurité :
 Assurer la sécurité des données utilisateur, en particulier
lors de l'authentification via Google, et garantir la
confidentialité des informations personnelles.
3. Convivialité :
 Concevoir une interface utilisateur intuitive pour une
navigation facile et une expérience d'apprentissage
agréable.
4. Compatibilité Multiplateforme :
 Assurer la compatibilité du système sur différentes
plateformes, y compris les appareils mobiles et les
ordinateurs de bureau.

12

2.2 Analyse des besoins

2.2.1 Diagramme de cas d’utilisation globale

Dans cette partie, nous présentons les exigences du système d’une manière
formelle en utilisant un diagramme de cas d’utilisation, cependant ce dernier
nous offre la possibilité d’identifier les interactions possibles entre les acteurs. Ce
diagramme est présenté dans la figure ci-dessous
Diagramme de cas d’utilisation générale
13

2.2.2 Diagramme de classe général

Le diagramme de classe est une représentation des différents éléments du


système en décrivant les relations entre eux.
Les différentes entités sont représentées dans la figure suivante :
FIGURE 2.3 – Diagramme de classe général

14

Nom de la base Description de la classe

Gère les informations liées aux comptes utilisateur, y


Account compris les détails de connexion et les informations de
profil.
Représente les utilisateurs de la plateforme, stockant
User des informations telles que le nom, l'e-mail, et l'image
de profil.
Stocke les détails des cours, y compris le nom et
Course l'image associés, ainsi que la liste des unités du cours.

Représente les unités d'un cours, associant des chapitres


Unit à chaque unité et facilitant l'organisation du contenu.

Stocke des informations sur les chapitres, y compris le


Chapter nom, le résumé, et les questions associées, facilitant la
structuration du contenu éducatif.

Gère les questions associées à un chapitre, stockant la


Question question elle-même, les options de réponse et la
réponse correcte.

TABLE 2.1 – Description textuelle du diagramme de classes

15
2.3 Planification du projet

2.3.1 Backlog du produit

La réussite du projet requiert un pré planification. Selon la méthodologie


scrum nous avons créé le tableau ci-dessous pour résumer notre backlog du
produit. Celle-ci présente une liste de fonctionnalité à gérer pour répondre à la
problématique posée précédemment et regroupe les colonnes suivantes :
ID Fonctionnalité User Story Priorité

Développement de 1.1 En tant qu'utilisateur, je souhaite une interface


1 l'Interface Utilisateur conviviale pour interagir avec la plateforme 1

2 Authentification et 2.1 En tant qu'utilisateur, je veux m'authentifier via


Inscription mon compte Google 1

2.2 En tant qu'utilisateur, je veux m'inscrire avec


2 mon compte Google 1

Génération 3.1 En tant qu'utilisateur, je veux spécifier un sujet


3 Automatique de d'apprentissage pour générer automatiquement un 1
Cours cours
3.2 En tant qu'utilisateur, je veux que le système
3 génère des cours avec des vidéos YouTube et des 1
quiz associés
Contrôle de la Lecture 4.1 En tant qu'utilisateur, je veux contrôler la
4 Vidéo lecture des vidéos, y compris la pause, l'avance
rapide et le retour en arrière 2
Intégration YouTube 5.1 En tant qu'utilisateur, je veux répondre à des 1
5 et Quiz questions pour tester ma compréhension après
avoir regardé une vidéo
5.2 En tant qu'utilisateur, je veux que les vidéos
soient intégrées de manière transparente dans les 1
5 cours générés
Intégration d'Images 6.1 En tant qu'utilisateur, je souhaite que des
6 Educatives images éducatives soient intégrées dans le contenu 2
des cours
6.2 En tant qu'utilisateur, je veux que les images
6 améliorent la compréhension des concepts
enseignés 2

TABLE 2.2 – Backlog générale du produit


2.3.2 Planification des Sprints

1. Sprint : 0 - Analyse et Spécification des besoins :


 Identification des acteurs et définition des besoins fonctionnels et
non fonctionnels.
 Création de diagrammes de cas d'utilisation globale et de classe
générale.
 Planification initiale du projet avec la création du backlog du produit.
 Définition de l'architecture globale et des choix technologiques.
2. Sprint : 1 - Fonctionnalités Principales :
 Génération automatique de cours avec sprint backlog détaillé.
 Analyse approfondie des besoins avec création de diagrammes de
cas d'utilisation.
 Réalisation des fonctionnalités principales avec conclusion de sprint.
3. Sprint : 2 - Authentification et Interface Utilisateur :
 Mise en œuvre de l'authentification via les comptes Google.
 Amélioration de l'interface utilisateur avec sprint backlog dédié.
 Analyse détaillée des aspects d'authentification et conclusion du
sprint. 16
4. Sprint : 3 - Contenu Généré Automatiquement :
 Optimisation des algorithmes de génération de contenu.
 Ajout de nouvelles sources de données pour la diversité des cours.
 Analyse approfondie de la qualité du contenu généré avec
conclusion.
5. Sprint : 4 - Intégration YouTube et Quiz :
 Intégration fluide de vidéos YouTube dans les cours générés.
 Création de quiz interactifs pour évaluer la compréhension.
 Analyse de l'interaction entre le contenu vidéo et les quiz avec
conclusion.

2.4 Architecture globale


Dans cette section du rapport, nous décrivons l’architecture générale
de l’application.

2.4.1 Architecture de déploiement


L’architecture adoptée pour notre plateforme d'apprentissage alimentée
par l'IA est une architecture 3-tiers. Elle se compose des éléments suivants :
- Client web : Le navigateur web par lequel les utilisateurs accèdent aux
différentes interfaces de l'application.
- Serveur d'application : La partie backend du projet, contenant les
métadonnées des flux de travail et les divers processus qui se déroulent en
arrière-plan de l'application.
- Serveur de données : La couche de persistance de données de l'application
utilisée pour gérer les différentes données de l'application.

17

2.4.2 Architecture logicielle


L'architecture logicielle du projet "Learning Journey" est conçue pour assurer une mise
en œuvre efficace et évolutive de ses fonctionnalités. Elle se compose des éléments
suivants :
1. Front-end :
 L'interface utilisateur est développée en utilisant les frameworks ShadCN et
Tailwind CSS, assurant une conception moderne et une expérience utilisateur
conviviale.
2. Back-end :
 La logique métier est gérée par le backend, utilisant l'API OpenAI pour la
génération automatique de cours, l'API YouTube pour l'intégration de vidéos,
et l'API Unsplash pour l'intégration d'images éducatives.
3. Base de Données :
 La persistance des données est assurée par une base de données MySQL,
utilisée pour stocker les informations utilisateur, les cours générés, et d'autres
données essentielles.
4. Authentification :
 Le système d'authentification repose sur le compte Google de l'utilisateur,
assurant une connexion sécurisée et sans tracas.
5. Gestion de Projet :
 La planification et le suivi du projet sont facilités par l'utilisation d'un outil de
gestion de projet, garantissant une coordination efficace au sein de l'équipe de
développement.
6. Communication :
 Les canaux de communication sont maintenus par un outil dédié, facilitant la
collaboration au sein de l'équipe et assurant une communication transparente.

18

2.5 Choix technologique


2.5.1 Outils et langages de développement

PlanetScale is a database-as-a-service (DBaaS) platform built on Vitess, an


open-source system for scaling MySQL horizontally. It offers a serverless
solution with multi-cloud and multi-region capabilities, simplifying database
operations and enabling seamless scaling. PlanetScale's infrastructure-agnostic
approach aligns with modern cloud-native principles, providing users with
flexibility and efficient database management.

Node.js est une plateforme logicielle libre en JavaScript, orientée vers les
applications réseau événementielles hautement concurrentes qui doivent pouvoir
monter en charge. Elle utilise la machine virtuelle . Node.js est un environnement bas
niveau permettant l’exécution de JavaScript côté serveur.

19

Next.js 13 est un framework React très prisé qui simplifie la création


d'applications web modernes. Développé par Vercel, il améliore les applications
React en fournissant un ensemble puissant d'outils et de fonctionnalités. Avec la
version 13, Next.js introduit de nouvelles capacités et améliorations, renforçant
l'expérience des développeurs. Le framework prend en charge le rendu côté
serveur, la découpe automatique du code, et diverses autres fonctionnalités qui
facilitent le flux de travail de développement. Next.js 13 permet aux
développeurs de créer des applications web performantes et évolutives avec
facilité, en en faisant un outil précieux pour la construction de sites web
dynamiques de pointe.

Tailwind CSS est un framework CSS utilitaire simplifiant la conception d'interfaces


utilisateur modernes. Avec une classe pour chaque style, il élimine la nécessité de feuilles
de style personnalisées, accélérant le processus de développement. La version actuelle,
Tailwind CSS 3, apporte de nouvelles fonctionnalités pour une expérience de
développement encore plus fluide. Apprécié pour sa simplicité et sa personnalisation, il
reste un choix populaire pour créer rapidement des interfaces esthétiques et réactives.

20
L'API OpenAI est une interface puissante pour accéder aux fonctionnalités
d'OpenAI, permettant aux développeurs d'intégrer des capacités d'intelligence artificielle
avancées dans leurs applications.
L'API YouTube fournit un accès programmable aux fonctionnalités de YouTube,
permettant aux développeurs d'intégrer des fonctionnalités telles que la recherche de
vidéos, la récupération de métadonnées et la gestion des commentaires dans leurs
applications.

L'API Unsplash offre un moyen programmable d'accéder à la vaste bibliothèque


d'images haute résolution d'Unsplash. Les développeurs peuvent l'intégrer pour
récupérer des images de manière dynamique et enrichir visuellement leurs applications.

Visual Studio Code est un éditeur de code source qui peut être utilisé avec une variété
de langages de programmation, notamment Java, JavaScript, Go, Node.js et C++. Il est basé
sur le cadre Electron, qui est utilisé pour développer des applicationsWebNode.js qui s’exécutent
sur le moteur de présentation Blink. Visual Studio Code utilise le même composant
d’éditeur (nom de codeMonaco) utilisé dans Azure DevOps (anciennement appelé Visual
Studio Online et Visual Studio Team Services). Le logiciel prend en charge leWindows Subsystem
for Linux et, permet ainsi par exemple, de programmer facilement en C/C++ depuis
un ordinateurWindows 10.[5]

2.5.2 Outil de modélisation

Draw.io est une plateforme en ligne dédiée à la création et à la


collaboration sur des diagrammes visuels. Offrant une interface intuitive, des
fonctionnalités flexibles et une collaboration en temps réel, Draw.io simplifie
l'élaboration de flux de travail, de cartes conceptuelles et d'autres visualisations
pour une communication visuelle optimale au sein des équipes. Accessible
depuis n'importe quel navigateur, Draw.io se distingue comme un outil
polyvalent pour la conception de diagrammes, adapté à divers contextes et
besoins.

22
2.5.3 Outil de gestion de projet
Trello est un outil collaboratif qui organise tous vos projets en une serie de listes
partagées. D’un seul coup d’oeil Trello vous renseignera sur tous vos projets, sur
leur état d’avancement et vous dira qui travaille sur quoi dans votre équipe. La
prise en main de cet outil d’organisation collaboratif se passe de longs modes
d’emploi. Ici tout est simple et intuitif. Votre tableau de bord est composé d’une
série de listes correspondant à vos projets. Chaque liste est composée de cartes
que l’on déplace d’une colonne à l’autre du bout de la souris. Par défaut un
tableau est composé de trois colonnes « to do », « doing » et « done ». Une
méthode universelle d’organisation.

23

2.5.4 Outil de communication


Slack est l’acronyme de « Searchable Log of All Conversation and
Knowledge » qui peut se traduire en français, "journal de bord avec recherche
de toutes les conversations et connaissances" ou "Accessibilité à toutes les
conversations et connaissances". Slack fonctionne à la manière d’un chat IRC
organisé en canaux correspondant à autant de sujets de discussion. La
plateforme permet également de conserver une trace de tous les échanges,
permet le partage de fichiers au sein des conversations et intègre en leur sein
des services externes comme GitHub, Dropbox, Google Drive ou encore Heroku
pour centraliser le suivi et la gestion d’un projet. Un robot peut également
répondre automatiquement à certaines requêtes de l’utilisateur et s’améliore
au fil du temps grâce à des algorithmes d’apprentissage.

Conclusion
Dans ce chapitre, nous avons spécifié les différents besoins de notre
projet, aussi bien Fonctionnels que non fonctionnels. Nous avons également
élaboré le diagramme de cas D’utilisation et le diagramme de classe généraux.
Le chapitre suivant traitera le premier Sprint qui est

24
Fonctionnalités Principales « Sprint 1 »
3. Introduction
 3.1 Sprint backlog
 3.2 Analyse
 3.2.1 Diagramme de cas d’utilisation
 3.3 Réalisation
 Conclusion

25

Introduction
Le Sprint 1 marque le début du développement de fonctionnalités clés
pour la plateforme "Learning Journey". Cette phase initiale se concentre sur la
création d'éléments essentiels pour offrir une expérience utilisateur
fondamentale et la génération automatique de cours.

3.1 Sprint Backlog


Le Sprint Backlog du Sprint 1 comprend les tâches et les fonctionnalités
prioritaires à accomplir pendant cette itération. Il sert de guide pour l'équipe de
développement, détaillant les objectifs spécifiques à atteindre.

3.2 Analyse
L'analyse dans ce sprint se concentre sur la définition claire des besoins et
des fonctionnalités à implémenter. Cela comprend la spécification des exigences
détaillées pour la génération automatique de cours, l'interaction utilisateur, et
d'autres éléments essentiels identifiés dans la phase de planification.

3.2.1 Diagramme de cas d’utilisation

26
Diagramme de cas d’utilisation

3.3 Réalisation
La phase de réalisation dans le Sprint 1 se concentre sur la concrétisation
des fonctionnalités identifiées dans le Sprint Backlog et définies lors de la phase
d'analyse. L'équipe de développement s'engage dans la mise en œuvre effective
des éléments clés, notamment la génération automatique de cours, l'interaction
utilisateur, et la gestion de contenu.
Cette phase implique une collaboration étroite entre les membres de l'équipe
pour assurer une exécution efficace des tâches assignées. Les développements
seront régulièrement testés pour garantir la qualité du code et la conformité
aux spécifications établies.
27
Conclusion du Sprint 1
La conclusion du Sprint 1 offre une rétrospective sur les réalisations et les
défis rencontrés pendant cette phase. Les leçons apprises et les points
d'amélioration potentiels sont identifiés. Cette évaluation globale fournit des
insights cruciaux pour l'itération suivante, contribuant à l'amélioration continue
du processus de développement au sein du projet "Learning Journey".

28
4. Authentification et Interface Utilisateur « Sprint 2 »
Introduction
 4.1 Sprint backlog
 4.2 Analyse
 4.3 Diagramme de cas d’utilisation
4.3.3Diagramme de cas d’utilisation d’authentification
4.3.2 Diagramme de cas d’utilisation de l'interface
utilisateur
 4.4 Diagramme de séquence système
4.4.1 Diagramme de séquence du scénario "S’authentifier"
 4.5 Réalisation
4.5.1 Réalisation du scénario "S’authentifier"
 Conclusion

29
Introduction
Le Sprint 2 se concentre sur l'authentification des utilisateurs et
l'amélioration de l'interface utilisateur dans le cadre du projet "Learning
Journey". Cette phase vise à renforcer la sécurité de la plateforme et à
optimiser l'expérience utilisateur lors de l'accès et de l'interaction avec le
contenu éducatif.

4.1 Sprint Backlog


Le Sprint Backlog du Sprint 2 détaille les tâches spécifiques liées à
l'authentification des utilisateurs et à l'interface utilisateur. Les objectifs
comprennent la mise en œuvre de l'authentification via les comptes
Google, la gestion des sessions, et l'amélioration de l'ergonomie de
l'interface.

4.2 Analyse
L'analyse dans ce sprint se penche sur les aspects techniques et
fonctionnels de l'authentification. Cela implique la définition des flux
d'authentification, la conception des interfaces utilisateur pour les
processus d'inscription et de connexion, ainsi que l'évaluation des
exigences de sécurité associées à cette phase du développement.

4.3 Diagramme de cas d’utilisation


4.3.1 Diagramme de cas d’utilisation d’authentification

30
4.3.2 Diagramme de cas d’utilisation de l'interface utilisateur

31
4.4 Diagramme de séquence système
4.4.1 Diagramme de séquence du scénario
"S’authentifier"

32
4.5 Réalisation
 4.5.1 Réalisation du scénario "S’authentifier"

1. Implémentation Technique :
 Mise en place de l'interface utilisateur avec l'option de connexion via
Google.
 Intégration de l'API Google pour le processus d'authentification.
2. Développement Front-End :
 Création de l'écran d'authentification avec le bouton de connexion
Google.
 Gestion des événements côté client pour l'interaction avec l'API
Google.
3. Développement Back-End :
 Configuration des end-points pour gérer les demandes
d'authentification.
 Gestion des réponses d'authentification côté serveur.
4. Communication avec Google API :
 Mise en place de la communication sécurisée avec l'API Google.
 Gestion des flux de données entre l'application et Google pour
l'authentification.
5. Gestion des Réponses :
 Traitement des réponses positives et négatives de Google.
 En cas de succès, autorisation d'accès à l'application.
 En cas d'échec, gestion des messages d'erreur pour l'Utilisateur.
6. Intégration Continue :
 Intégration du scénario "S’authentifier" dans le flux global de
l'application. 34
 Vérification de la compatibilité avec d'autres fonctionnalités.

 Conclusion 35
Le Sprint 2 a été marqué par des avancées significatives dans
l'authentification et l'interface utilisateur. L'intégration réussie de
l'authentification via les comptes Google, l'amélioration de l'ergonomie
de l'interface, et la gestion des sessions sont autant de réussites clés.
Cette étape fournit des insights cruciaux pour l'amélioration continue et
guide le développement futur du projet "Learning Journey".

36
6. Contenu Généré Automatiquement « Sprint 3 »
Introduction
 5.1 Sprint Backlog
 5.2 Analyse
 5.2.1 Diagramme de cas d’utilisation
 5.2.2 Diagramme de Séquence Système
 5.3 Réalisation
 Conclusion

37
Introduction
Le Sprint 3 est dédié au développement du module de
génération automatique de contenu pour le projet "Learning
Journey". Cette phase vise à perfectionner le processus de
création de cours automatisé, fournissant ainsi des expériences
d'apprentissage riches et diversifiées.
5.1 Sprint Backlog
Le Sprint Backlog du Sprint 3 détaille les tâches et les
fonctionnalités spécifiques liées à l'amélioration de la génération
automatique de contenu. Les objectifs incluent l'optimisation des
algorithmes de génération, l'ajout de nouvelles sources de
données, et l'amélioration de la variété des cours générés.
5.2 Analyse
L'analyse dans ce sprint se concentre sur l'évaluation
approfondie de la qualité du contenu généré. Cela implique
l'analyse des retours des utilisateurs, la validation de la pertinence
du contenu généré, et l'identification des améliorations
potentielles à apporter au processus de génération.

 5.2.1 Diagramme de sequence

38
39
 5.3 Réalisation

40
41
Conclusion
Le Sprint 3 a marqué des avancées significatives dans
l'amélioration de la génération automatique de contenu. Les
ajustements apportés aux algorithmes ont renforcé la qualité des cours
générés, offrant une expérience d'apprentissage plus diversifiée. Cette
phase a fourni des enseignements précieux pour perfectionner
davantage le processus de génération de contenu automatisé dans les
itérations à venir du projet "Learning Journey".

42
7. Intégration YouTube et Quiz « Sprint 4 »
Introduction
 6.1 Sprint Backlog
 6.2 Analyse
 6.2.1 Diagramme de cas d’utilisation
 6.3 Réalisation
 Conclusion

43
Introduction
Le Sprint 4 se concentre sur l'intégration des fonctionnalités YouTube et
Quiz dans le cadre du projet "Learning Journey". Cette phase vise à enrichir
l'expérience d'apprentissage en intégrant de manière transparente des vidéos
YouTube et des quiz interactifs dans les cours générés.
6.1 Sprint Backlog
Le Sprint Backlog du Sprint 4 détaille les tâches spécifiques liées à
l'intégration de YouTube et des quiz. Les objectifs comprennent la mise en
œuvre d'une intégration fluide des vidéos YouTube, la création de questions
interactives, et la synchronisation harmonieuse entre le contenu vidéo et les
évaluations.
6.2 Analyse
L'analyse dans ce sprint se concentre sur la garantie de l'interaction
optimale entre le contenu vidéo et les quiz. Cela inclut la conception d'une
interface utilisateur intuitive, l'évaluation de l'efficacité pédagogique des quiz,
et l'optimisation des performances pour une expérience utilisateur sans heurts.
 6.2.1 Diagramme de cas d’utilisation

44
 6.3 Réalisation

45
46
Conclusion
La conclusion du Sprint 4 résume les succès accomplis dans l'intégration
réussie de YouTube et des quiz interactifs. Cette phase renforce la richesse du
contenu éducatif et offre aux utilisateurs une expérience d'apprentissage plus
engageante. Les enseignements tirés guideront les développements futurs,
contribuant à faire évoluer positivement le projet "Learning Journey".

46
Conclusion générale

La conclusion générale du projet "Learning Journey" marque la clôture d'une


phase passionnante de développement axée sur la création d'une plateforme
éducative novatrice. Ce projet, propulsé par l'intelligence artificielle, vise à
révolutionner l'apprentissage en offrant une expérience personnalisée et
diversifiée à chaque utilisateur.

Au cours de ce parcours, chaque sprint a apporté des avancées significatives, de


l'authentification utilisateur à l'intégration de YouTube et des quiz interactifs.
L'utilisation de méthodologies agiles, notamment la démarche SCRUM, a
favorisé une collaboration efficace au sein de l'équipe de développement.

L'analyse et la spécification des besoins ont jeté les bases du projet, définissant
clairement les objectifs et les fonctionnalités essentielles. Les sprints successifs
ont permis d'implémenter ces fonctionnalités de manière itérative, créant ainsi
une plateforme robuste et fonctionnelle.

L'architecture logicielle, soigneusement conçue, assure une séparation claire


entre le front-end et le back-end, favorisant la scalabilité et l'intégration fluide
de nouvelles fonctionnalités. Les choix technologiques, tels que l'utilisation de
ShadCN, Tailwind CSS, et les API externes, ont contribué à une mise en œuvre
efficace.

Chaque sprint a été suivi d'une analyse approfondie et d'une conclusion,


alimentant ainsi le processus d'amélioration continue. Les enseignements tirés,
les retours des utilisateurs et les ajustements apportés ont façonné le projet
tout au long de son développement.

En conclusion, le projet "Learning Journey" représente une innovation


significative dans le domaine de l'éducation en ligne. Les fonctionnalités 47
implémentées offrent aux utilisateurs un moyen dynamique et interactif
d'apprendre, tout en ouvrant la porte à un potentiel d'expansion et
d'amélioration continu. Ce rapport de stage témoigne de l'engagement, de la
créativité et de la collaboration qui ont été au cœur de la réalisation de ce
projet.

48

Vous aimerez peut-être aussi