Rapport PFE Ahmed Dabbabi Version 0
Rapport PFE Ahmed Dabbabi Version 0
Et de la Recherche Scientifique
****
Université de Sousse
****
Ecole Supérieure des Sciences et de la Technologie de Hammam Sousse
Réalisé par :
Ahmed Dabbebi
&
À ma chère Yasmyn
toujours unis.
2
Remerciements
Avant tout, je rends grâce à Dieu, source de force et de persévérance, qui nous accompagne
dans chaque étape de notre parcours.
Il m’est difficile de trouver les mots justes pour exprimer toute ma reconnaissance en-
vers **Monsieur Ala Eddine KHARRAT**, mon encadrant académique, qui a été bien plus
qu’un simple guide tout au long de cette aventure. Son engagement sans faille, sa disponibilité
constante et son soutien indéfectible ont été d’une valeur inestimable. Que ce soit à travers nos
nombreuses réunions, en ligne comme en présentiel, il était toujours là, prêt à répondre à mes
interrogations, à éclairer mes doutes et à me pousser à donner le meilleur de moi-même. Son
suivi rigoureux, sa patience et ses conseils avisés ont non seulement enrichi mon travail, mais
ont également renforcé ma confiance et ma passion pour ce domaine. Bien au-delà de son rôle
d’encadrant, il a été un véritable **grand frère**, toujours présent pour m’épauler, me motiver
et m’orienter avec bienveillance. Pour tout cela, je lui suis infiniment reconnaissant.
Je tiens aussi à adresser mes remerciements les plus sincères à toute l’équipe de **IOBIRD**
pour leur accueil chaleureux, leur accompagnement et leur professionnalisme tout au long de
mon stage. Leur soutien et leur disponibilité ont grandement facilité l’aboutissement de mon
projet, et je leur en suis profondément reconnaissant.
Je souhaite également exprimer toute ma gratitude aux **membres du jury**, qui ont
accepté d’évaluer ce travail. Leur expertise et leur regard critique sont d’une grande importance,
et je les remercie pour le temps qu’ils ont consacré à l’examen de ce mémoire.
Enfin, un immense merci à toutes les personnes qui, de près ou de loin, ont contribué à la
réalisation de ce projet. Leur soutien, leurs encouragements et leur aide précieuse ont été une
véritable source de motivation et de réussite.
3
Table des matières
Introduction générale 1
1 Présentation du projet 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 IOBIRD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Activités d’IOBIRD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Présentation du sujet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Étude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Analyse de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Méthodologie du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 La méthode Agile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.2 La méthode Agile : SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3 Avantages du modèle SCRUM . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.4 L’équipe SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Planification du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4
Table des matières 5
3 Étude conceptuelle 33
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Conception de la plateforme : vue statique . . . . . . . . . . . . . . . . . . . . . 33
3.2.1 Diagramme de déploiment . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.2 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Conception de la plateforme : vue dynamique . . . . . . . . . . . . . . . . . . . 36
3.3.1 Diagramme de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Diagramme de séquence « Ajouter une tâche » : . . . . . . . . . . . . . . 36
Diagramme de séquence « Ajouter une note » : . . . . . . . . . . . . . . 38
Diagramme de séquence « Classification des documents » : . . . . . . . . 40
3.4 Diagramme d’état/transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Diagramme d’état/transition : objet tâche . . . . . . . . . . . . . . . . . 42
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4 Réalisation 43
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1 Environnement technique . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.2 Environnement technique(AI) . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.3 Choix technologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
La partie Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.4 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Table des matières 6
Conclusion générale 64
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Webographie 65
Liste des tableaux
7
Table des figures
8
Table des figures 9
À l’ère du numérique, les étudiants sont constamment à la recherche d’outils efficaces pour
optimiser leur organisation et améliorer leur productivité dans le cadre de leurs études. La
gestion du temps, des ressources et des tâches représente un défi majeur pour la réussite aca-
démique. Les méthodes traditionnelles, telles que l’utilisation de classeurs papier et d’agendas,
ne répondent plus de manière optimale aux besoins des étudiants d’aujourd’hui.
Face à ce constat, le développement d’une application web dédiée aux étudiants apparaît
comme une solution pertinente pour les accompagner dans la gestion de leurs études. Cette
plateforme centralisée offrirait un espace personnalisé où les étudiants pourraient stocker et
organiser leurs fichiers, tels que les cours, les séries d’exercices et les travaux pratiques. De plus,
un calendrier intégré permettrait une gestion efficace des événements importants et des dates
limites, facilitant ainsi la planification des révisions et la soumission des travaux dans les délais
impartis.
En outre, l’application web proposerait un espace dédié à la prise de notes, offrant aux
étudiants la possibilité de consigner leurs réflexions, leurs idées et les points clés de leurs cours.
Cet outil favoriserait une meilleure rétention des connaissances et une révision facilitée. Par
ailleurs, un module de gestion des tâches permettrait aux utilisateurs de créer des rappels et
de suivre l’avancement de leurs projets, garantissant ainsi une organisation optimale de leur
charge de travail.
L’objectif de ce projet de fin d’études est de concevoir et de développer une application web
complète et conviviale, spécialement conçue pour répondre aux besoins des étudiants en matière
de gestion de leurs études. En offrant une solution centralisée et intuitive, cette plateforme vise
à faciliter l’organisation, la planification et le suivi des tâches académiques, permettant ainsi
aux étudiants de se concentrer pleinement sur leur réussite scolaire.
Ce rapport est composé de quatre chapitres. Tout d’abord, nous commençons dans le pre-
mier chapitre par la description et la présentation de l’organisme d’accueil, tout en exposant la
méthodologie adoptée et la planification du travail pour assurer le bon déroulement du projet
et l’étude de l’existant en fin.
Ensuite, nous allons identifier les acteurs ainsi que les différents services et fonctionnalités de
notre application dans le deuxième chapitre par l’intégration des maquettes après.
Le troisième chapitre portera sur toute la phase conceptuelle de notre plateforme.
1
Introduction générale 2
Présentation du projet
1.1 Introduction
Dans ce chapitre, nous débutons par une présentation de l’entité accueillante. Ensuite,
nous détaillons le sujet du projet à réaliser, précédé par une exposition de la problématique
ayant motivé cette démarche. Nous définissons également les exigences fonctionnelles et non
fonctionnelles. Après cela, nous examinons et évaluons les solutions actuellement en place, ce
qui nous conduit à proposer une nouvelle solution et à définir les divers objectifs de ce travail.
1.2.1 IOBIRD
IOBIRD est une entreprise spécialisée dans le développement de logiciels, notamment pour
les solutions de commerce électronique mobile. Elle aide les petites et moyennes entreprises en
Tunisie à augmenter leurs ventes en ligne grâce à des applications personnalisées, offrant des
commandes automatisées en temps réel et des programmes de fidélisation intelligents basés sur
l’apprentissage automatique.
L’objectif d’Iobird est de transformer les idées des clients en solutions évolutives et de haute
qualité.[1]
3
1.2. Présentation de l’organisme d’accueil 4
• Sprime : Sprime est un logiciel d’ingénierie assistée par ordinateur (IAO) basé sur le
cloud computing, développé par Iobird.
Ce produit avancé permet de réaliser des simulations de dynamique des fluides computa-
tionnelle (CFD), d’analyse par éléments finis (FEA) et de simulations thermiques.
Grâce à sa puissance et à sa flexibilité, Sprime est devenu un outil essentiel dans divers
secteurs de pointe, y compris l’aérospatiale.
Actuellement utilisé par SpaceX, Sprime contribue de manière significative à l’optimi-
sation des conceptions et des performances des projets spatiaux, en offrant des capacités
de simulation précises et efficaces directement accessibles via le cloud.
1.3. Présentation du sujet 5
1.3.1 Problématique
De nos jours plusieurs étudiants font face à des difficultés lors de la planification de leurs
études en raison du manque d’outils adaptés disponibles ce qui peut entraîner une baisse de la
qualité de l’enseignement.
De plus avec l’augmentation du nombre des étudiants et la diversification des programmes
d’études, il devient de plus en plus difficile de garantir leur réussite académique.
La gestion manuelle des emplois du temps et des ressources devient rapidement obsolète et
entraîne des erreurs ainsi qu’une utilisation inefficace des ressources disponibles.
En outre, les outils de suivi des progrès des étudiants actuellement disponibles sont souvent
limités et ne fournissent pas une vue d’ensemble complète de la performance académique.
En somme, il est crucial de développer une plateforme de planification d’études intégrée et
conviviale qui permettra aux étudiants de relever ces défis et d’améliorer l’expérience d’appren-
tissage.
1.3. Présentation du sujet 6
Analyse de l’existant
Il existe déjà plusieurs solutions numériques sur le marché qui offrent aux étudiants des
fonctionnalités pour faciliter l’organisation de leurs études.
Avant de présenter notre proposition pour une nouvelle application web, nous allons examiner
quelques-unes des solutions existantes les plus populaires dans ce domaine.
En étudiant ces solutions, nous pouvons mieux appréhender les besoins des étudiants et dé-
terminer comment notre application pourrait se démarquer en proposant des fonctionnalités
novatrices et une expérience utilisateur optimisée.
Parmi les nombreuses options disponibles, nous avons choisi quatre solutions particulièrement
pertinentes en matière de gestion des études et de productivité : Notion, Coda (pour les étu-
diants), Todoist (pour les étudiants) et Microsoft OneNote.
Chacune de ces applications propose des approches différentes pour aider les utilisateurs à or-
ganiser leurs tâches, prendre des notes et collaborer de manière efficace.
Dans les sections suivantes, nous allons définir et analyser en détail ces quatre solutions afin
de mieux cerner leur positionnement sur le marché et d’identifier les possibilités d’amélioration
pour notre propre application.
• Notion : Notion (voir figure 1.4) est une application polyvalente de prise de notes et de
gestion de projet qui permet aux étudiants de créer, organiser et partager des documents,
des listes de tâches, des tableaux, des bases de données et bien plus encore.
Avec Notion, les étudiants peuvent collaborer en temps réel sur des projets, suivre leurs
progrès et centraliser toutes leurs informations et ressources au même endroit.[2]
• Coda (pour les étudiants) : Coda (voir figure 1.5) est une plateforme de productivité
tout-en-un qui combine les fonctionnalités d’un traitement de texte, d’un tableur et d’une
base de données. Les étudiants peuvent utiliser Coda pour créer des documents interactifs,
organiser leurs idées, gérer leurs tâches et collaborer avec leurs camarades de classe.
Coda offre des fonctionnalités avancées de personnalisation et d’automatisation, ce qui
1.3. Présentation du sujet 7
en fait un outil puissant pour optimiser les flux de travail et améliorer l’efficacité dans les
études.[3]
• Todoist (pour les étudiants) : Todoist (voir figure 1.6) est une application de ges-
tion des tâches qui permet aux étudiants d’organiser leurs listes de tâches, de définir des
rappels et des dates d’échéance, et de suivre leur progression dans la réalisation de leurs
projets et devoirs.
Avec Todoist, les étudiants peuvent créer des listes de tâches personnalisées, les classer
par priorité et les partager avec d’autres personnes.[4]
• Microsoft OneNote : Microsoft OneNote (voir figure 1.7) est une application de prise
de notes numérique développée par Microsoft. Elle permet aux utilisateurs de capturer,
organiser et partager des informations sous forme de notes, de croquis, de listes, d’enre-
gistrements audio, de captures d’écran et d’autres contenus multimédias.
OneNote offre une interface flexible qui permet aux utilisateurs de créer des cahiers per-
sonnalisés contenant des sections et des pages pour organiser leurs informations de manière
efficace.[5]
1.3. Présentation du sujet 8
Critique de l’existant
Bien que les solutions que nous venons de citer permettent une gestion d’études efficace,
nous envisageons de rajouter nos touches d’amélioration puisque ces dernières disposent d’un
ensemble d’incohérences et de points faibles. le tableau 1.1 présente les points forts et les points
faibles de chaque solution citée dans la section précédente :
Le tableau de comparaison des solutions existantes met en lumière les forces et les faiblesses
de chaque option.
Notion se distingue par son interface intuitive et sa gamme étendue de fonctionnalités, mais sa
courbe d’apprentissage peut être abrupte pour les débutants.
Coda offre une interface conviviale et des tarifs préférentiels pour les étudiants, mais ses fonc-
tionnalités avancées sont limitées dans la version étudiante.
Microsoft OneNote bénéficie d’une intégration native avec Microsoft Office, mais son interface
peut être moins intuitive.
Todoist propose une gestion efficace des tâches et des tarifs préférentiels pour les étudiants,
mais il est moins adapté pour la prise de notes détaillées.
Face à la nécessité de mieux gérer leurs études, notre projet vise à créer une application
web dédiée aux étudiants. Cette solution fournira un espace unique où les utilisateurs pourront
télécharger et organiser leurs fichiers de cours, séries d’exercices, travaux pratiques, etc.
De plus, un calendrier intégré permettra aux étudiants de planifier efficacement leurs événe-
ments et de respecter leurs délais.
Un espace dédié aux notes offrira la possibilité d’enregistrer des informations importantes, tan-
dis qu’un module de gestion des tâches permettra de créer des rappels pour les activités à venir.
Cette application sera conçue pour répondre aux besoins de différents types d’utilisateurs.
Un administrateur supervisera le système, tandis que les utilisateurs standards auront accès à
toutes les fonctionnalités de base.
En outre, les utilisateurs bénéficiant d’un abonnement premium disposeront d’avantages sup-
plémentaires, les aidant à optimiser davantage leur expérience d’apprentissage.
En rassemblant les données et en automatisant les processus, notre application offrira une vi-
sibilité en temps réel sur les activités liées aux études.
Elle permettra de réduire la dépendance aux méthodes traditionnelles de gestion et d’alléger la
charge administrative, libérant ainsi du temps pour se concentrer sur l’essentiel : l’apprentissage.
Avant la réalisation d’un projet informatique, il est nécessaire de choisir une méthode de
travail afin de rendre le développement plus fidèle aux besoins du client.
C’est pour cela que nous avons opté pour la méthodologie agile Scrum puisque ses caractéris-
tiques correspondent au chemin souhaité pour notre travail et elle est adoptée par toutes les
équipes de l’entreprise.
1.4. Méthodologie du travail 10
Scrum (voir figure 1.8) est une méthode de gestion de projets agiles qui permet de délivrer
et modifier un produit très rapidement grâce à ses différents rôles, outils et à un ensemble de
réunions conduisant à la livraison des petits morceaux de logiciels fonctionnels au client à un
intervalle régulier de temps tout en prenant en charge les modifications qui interviennent au
cours du développement sans qu’elles posent de problèmes.
• Délai de mise sur le marché plus court : SCRUM permet une livraison rapide et
itérative d’incréments de produit utilisables, offrant un retour d’information rapide, des
mises à jour incrémentales et une satisfaction client continue.
L’équipe SCRUM est divisée en 3 rôles principaux, qui interviennent dans le processus de
développement du produit, à savoir :
• Le Product Owner : Le Product Owner représente les intérêts du client, définit les
besoins du projet, établit les priorités, valide les incréments et participe activement aux
réunions de planification et de suivi, assurant ainsi l’alignement avec les attentes et ob-
jectifs métier du client.
En se basant sur la méthode Scrum, notre projet a été structuré en plusieurs sprints pour
une gestion agile et itérative. Le tableau ci-dessous présente les différentes étapes du projet,
les objectifs principaux de chaque sprint, ainsi que les fonctionnalités développées et les tests
effectués.
Ce tableau 1.2 présente une planification détaillée du développement d’une application web
en 7 sprints. Chaque sprint est décrit avec des informations concises sur sa durée, ses objectifs
principaux, les fonctionnalités à développer et les tests et livrables associés.
1.6. Conclusion 14
1.6 Conclusion
Dans ce premier chapitre, nous avons, tout d’abord, présenté l’organisme d’accueil ansi que
les services qu’il propose. Ensuite, nous avons exposé le contexte du projet, en fournissant une
description générale des objectifs de la plateforme et en examinant l’existant, y compris les
critiques formulées. Enfin, nous avons présenté la solution proposée pour répondre aux besoins
identifiés.
2.1 Introduction
Après l’étude de l’éxistant et la proposition d’une solution théorique, cette phase consiste
à cadrer le projet et à définir ses besoins. Pour cela, dans ce chapitre, nous présentons l’en-
semble des spécifications des besoins fonctionnels ainsi que les besoins non-fonctionnels qui
perfectionnent les qualités de la plateforme.
Un acteur représente une personne qui interagit avec le système. Nous identifierons d’abord
les différents acteurs de notre plateforme puis nous modéliserons les exigences pour chaque
acteur.
Dans le cadre de développement de notre plateforme, nous avons identifié deux principaux
acteurs :
• Administrateur : C’est l’acteur qui possède le droit de tout gérer dans notre plateforme.
Il possède le droit de faire toutes les fonctionnalités développées dans la plateforme, il
possède le privilège de gérer les comptes des utilisateurs ainsi que leurs droits d’accès (les
inscriptions).
15
2.2. Spécification des besoins 16
• Utilisateur (abonnement standard) : C’est un acteur qui sera inscrit pour pouvoir
gérer ses fichiers, ses tâches, ses notes, son emploi de temps ainsi que son calendrier.
• Utilisateur (abonnement premium) : Cet acteur bénéficie de tous les avantages d’un
abonnement standard, ainsi que d’un accès étendu à de nombreuses autres fonctionnalités.
Les besoins fonctionnels représentent les fonctionnalités ou les actions spécifiques que le
système doit effectuer. Ils décrivent les actions que les utilisateurs attendent du système et les
résultats attendus de ces actions.
Dans cette section, nous expliquerons les fonctionnalités générales de notre système associés
à chaque acteur :
• Gestion des Contenus : Capacité à superviser les fichiers téléchargés par les utilisa-
teurs, à modérer le contenu inapproprié et à assurer la conformité aux directives de
sécurité.
2.2. Spécification des besoins 17
2. Utilisateur (avec abonnement gratuit) :Les utilisateurs normaux sont ceux qui uti-
lisent l’application sans abonnement premium. Leurs besoins fonctionnels comprennent
les fonctionnalités de base. Parmi ces fonctionnalités, on trouve :
• Espace de Notes : Possibilité de créer, éditer et organiser des notes pour prendre des
informations importantes.
• Gestion des Tâches : Fonctionnalité pour créer des tâches, définir des rappels et
suivre les progrès des travaux marqués.
• Gestion des Fichiers : Capacité à télécharger, organiser et partager des fichiers tels
que des cours, des photos, des documents etc.
Les besoins non fonctionnels, quant à eux, décrivent les contraintes et les caractéristiques non
liées aux fonctionnalités du système, ces besoins sont généralement mesurables et permettent
d’évaluer la qualité du système. Quant aux besoins non fonctionnels, ils se récapitulent en :
UML (Unified Modeling Language) (voir figure 2.1) est un language de modélisation gra-
phique standard utilisé dans l’industrie du développement logiciel pour représenter visuellement
les systèmes informatiques. Il permet de décrire les différents composantes d’un système, comme
les cas d’utilisation, les classes, les séquences, les activités, les composants, etc. L’utilisation de
UML permet une meilleure compréhension du système et facilite la communication entre les
différents parties prenantes du projet. Il est donc un outil précieux pour la conception, l’analyse
et la documentation des systèmes informatiques.
2.3. Modélisation des besoins 19
Dans cette section, nous exposons le diagramme de cas d’utilisation général qui regroupe tous
les cas d’utisation de base afin d’avoir une vue globale du fonctionnement de notre plateforme :
2.3. Modélisation des besoins 20
Afin de mieux comprendre un fontionnement d’un cas d’utilisation, nous allons présenter
une table descriptive pour les principaux cas d’utilisation.
Le tableau 2.2 indique la description textuelle du cas d’utilisation « Gestion des tâches » :
2.3. Modélisation des besoins 22
Scénario alternatif
• Champs obligatoires non remplis
• Formats de données incorrects
2.3. Modélisation des besoins 23
Le tableau 2.3 indique la description textuelle du cas d’utilisation « Gestion des notes » :
2.3. Modélisation des besoins 24
Scénario alternatif
• Champs obligatoires non remplis
• Formats de données incorrects
• Format d’image non supporté
Le tableau 2.4 indique la description textuelle du cas d’utilisation « Gestion des documents
»:
Scénario alternatif
• Document est illisible ou corrompu.
• Classification incorrecte du document
• Format de document non supporté
2.3. Modélisation des besoins 26
Scénario alternatif
• Conflits de planification lors de la modification ou l’ajout d’évé-
nements
2.4 Maquettes
Placer les maquettes des interfaces dans ce chapitre, "Analyse et spécification des besoins",
constitue une démarche stratégique visant à fournir une représentation concrète et détaillée de
la manière dont l’application web répondra aux exigences identifiées lors de l’étude préliminaire
du projet.
Cette intégration permettra aux lecteurs de visualiser comment les besoins des utilisateurs se-
ront traduits en fonctionnalités spécifiques, mettant en lumière la pertinence et l’efficacité de
la solution proposée.
En présentant les maquettes à ce stade du rapport, nous offrons une transition naturelle entre
la phase d’identification des besoins et celle de leur spécification, permettant ainsi une compré-
hension approfondie de la vision conceptuelle du projet et de sa concrétisation pratique.
2.4. Maquettes 28
2.4.1 Accueil
• une vue globale sur les tâches de l’utilisateur ( les tâches complètes, en retard,
incomplètes etc.. ).
L’interface de gestionnaire des document qui est illustrée par la figure 2.8 comporte :
• une section qui regroupe les documents classifiés (dans des dossiers).
• une formulaire d’ajout d’un document en cliquant sur le bouton "Upload file"
2.4.3 Calendrier
• une vue globale (par mois, par semaine ou par jour) d’un calendrier qui comporte les
évènements mis par l’utilisateur.
2.4.4 Notes
• une formulaire d’ajout d’une note en cliquant sur le champ de saisie de texte "Take a
note".
• un menu qui filtre les notes par ces labels, celles qui ont un rappel et celle qui ont été
archivées.
2.4.5 Tâches
• une formulaire d’ajout d’une tâche en cliquant sur le bouton "Add Task".
• une formulaire d’ajout d’une section en cliquant sur le bouton "Add Section".
2.5. Conclusion 32
2.5 Conclusion
Au fil de ce chapitre, nous avons minutieusement analysé et spécifié les besoins fonctionnels
et non-fonctionnels de notre projet, jetant ainsi les bases nécessaires à la réalisation de notre
plateforme. Nous avons identifié les fonctionnalités essentielles ainsi que les exigences supplé-
mentaires qui guideront le développement de la solution. Le prochain chapitre sera consacré à
la conception.
Chapitre 3
Étude conceptuelle
3.1 Introduction
Après avoir réalisé une présentation sur l’entreprise d’accueil, l’analyse et la spécification
des besoins du projet ainsi que l’intégration des maquettes des interfaces, nous avançons dans
ce chapitre, dans la préparation de la phase de réalisation en proposant une conception plus
détaillée pour notre système
33
3.2. Conception de la plateforme : vue statique 34
Le diagramme de classes est une représentation visuelle qui décrit la structure interne d’un
système et participe à sa modélisation statique. Il généralise les objets du système, illustrant
comment ils collaborent et interagissent pour réaliser les cas d’utilisation.
3.5 Conclusion
Au cours de ce chapitre, nous avons détaillé le modèle conceptuel de notre projet qui va être
utilisé dans le développement de la plateforme. Dans le prochain chapitre, nous allons étudier
la partie réalisation qui sera traduite par la présentation de l’environnement du travail et les
interfaces réalisées.
Chapitre 4
Réalisation
4.1 Introduction
Dans ce chapitre nous exposons le travail achevé. Nous présentons en premier lieu l’archi-
tecture adapté pendant la réalisation du projet.
Ensuite, nous élaborons notre stack technologique choisi durant le développement de notre
système, tout en détaillant les outils utilisés pour développer notre application.
Nous clôturons ce chapitre par quelques captures d’écran traduisant le déroulement du plate-
forme.
4.2 Architecture
L’architecture à suivre dans notre projet est l’architecture MVC.
Le modèle-vue-contrôleur (en abrégé MVC, de l’anglais Model-View-Controller) est un modèle
d’architecture de conception de logiciels qui permet de séparer les préoccupations de l’interface
utilisateur, de la logique de l’application et des données. Le modèle est constitué de trois
composants : le modèle, la vue et le contrôleur.
43
4.3. Environnement de développement 44
• Vscode :
Visual Studio Code (voir figure 4.2), conçu par Microsoft, est un éditeur de code léger
et polyvalent. Il propose une gamme étendue de fonctionnalités, telles que la complétion
4.3. Environnement de développement 45
intelligente du code, des outils de débogage avancés et une intégration fluide avec Git.
Avec son interface conviviale et sa prise en charge multiplateforme, Visual Studio Code
est largement plébiscité pour sa capacité à faciliter un codage efficace et collaboratif dans
divers langages de programmation.[6]
• Overleaf :
Overleaf (voir figure 4.3) est une plateforme de rédaction collaborative en ligne, spécia-
lement conçue pour les documents LaTeX. Elle offre une multitude de fonctionnalités,
notamment la compilation en temps réel, la gestion des versions, et la collaboration en
temps réel. Avec une interface utilisateur intuitive et des outils de partage et de commen-
taires intégrés, Overleaf est devenu un choix privilégié pour la rédaction de documents
académiques, scientifiques et techniques. Sa facilité d’utilisation et sa compatibilité mul-
tiplateforme en font une option populaire pour les équipes travaillant sur des projets de
recherche et de rédaction collaborative.[7]
• Github :
GitHub (voir figure 4.4) est une plateforme de développement logiciel collaborative, lar-
gement utilisée dans la communauté de la programmation. Fondée sur un système de
contrôle de version basé sur Git, elle offre une multitude de fonctionnalités, notamment
la gestion de projets, le suivi des problèmes, la collaboration entre développeurs et l’in-
tégration continue. Avec son interface conviviale et ses outils avancés, GitHub facilite le
développement et la collaboration sur des projets de logiciels open source et privés, en
faisant un choix incontournable pour les équipes de développement modernes.[8]
4.3. Environnement de développement 46
• Lucidchart :
Lucidchart (voir figure 4.5) est une plateforme de création de diagrammes en ligne, offrant
une multitude de fonctionnalités pour la visualisation de données et la conception de
flux de travail. Développée par Lucid Software, cette application propose une interface
intuitive et conviviale, permettant aux utilisateurs de créer facilement des diagrammes
professionnels, des organigrammes, des cartes mentales, et bien plus encore. Avec ses outils
de collaboration en temps réel, Lucidchart facilite le travail d’équipe et la communication
visuelle, en permettant aux utilisateurs de partager et de commenter leurs créations en
toute simplicité. Sa compatibilité multiplateforme et son intégration transparente avec
d’autres outils en font un choix populaire pour la création et la gestion de diagrammes
dans divers contextes professionnels et éducatifs.[9]
Python (voir figure 4.6) est un langage de programmation polyvalent reconnu pour sa
simplicité et sa lisibilité. Il est largement utilisé dans de nombreux domaines, notamment
le développement web, l’automatisation de tâches, la science des données et l’intelligence
artificielle. Sa syntaxe claire et concise en fait un choix idéal pour les débutants et les pro-
fessionnels. Python est particulièrement prisé dans le domaine de l’intelligence artificielle
en raison de sa riche bibliothèque d’outils et de frameworks spécialisés. Ces ressources
puissantes permettent aux développeurs d’implémenter des algorithmes d’apprentissage
4.3. Environnement de développement 47
automatique, de traitement du langage naturel et de vision par ordinateur avec une rela-
tive facilité. Ainsi, Python se distingue comme un langage incontournable pour ceux qui
souhaitent explorer et exploiter les vastes possibilités de l’intelligence artificielle.[10]
• NumPy :
NumPy (voir figure 4.7) est une bibliothèque Python pour le calcul scientifique qui prend
en charge de grands tableaux et matrices multidimensionnels, ainsi qu’un ensemble de
fonctions mathématiques pour fonctionner efficacement sur ces tableaux et matrices.[11]
• NLTK :
NLTK (voir figure 4.8) est une bibliothèque Python qui fournit un ensemble d’outils
et de ressources pour les tâches de traitement du langage naturel. Elle offre des divers
fonctionnalités et algorithmes pour des tâches telles que la tokenisation, la racinisation
(stemming), le marquage (tagging), l’analyse (parsing), le raisonnement sémantique, etc.
NLTK est largement utilisé dans le domaine de traitement du language naturel pour la
recherche et l’éducation.[12]
• Scikit-learn :
4.3. Environnement de développement 48
Scikit-learn (voir figure 4.9) est une bibliothèque Python destinée à l’apprentissage auto-
[Link] propose dans son framework de nombreuses bibliothèques d’algorithmes à
implémenter, clé en [Link] comprend notamment des fonctions pour estimer des forêts
aléatoires, des régressions logistiques, des algorithmes de classification, et les machines à
vecteurs de support. Elle est conçue pour s’harmoniser avec d’autres bibliothèques Py-
thon, notamment NumPy et SciPy.[13]
La partie Frontend
Dans le domaine du développement web, l’interface désigne la partie visible d’un site web
ou d’une application avec laquelle les utilisateurs interagissent directement. Elle englobe la pré-
sentation, la structure et les fonctionnalités de l’interface utilisateur, ainsi que les technologies
et les langages utilisés pour sa conception. Le développement frontal implique généralement
l’utilisation de HTML pour structurer le contenu, de CSS pour le style et la mise en page, et
de JavaScript pour rendre les éléments interactifs et gérer leur comportement. Afin d’élaborer
notre interface web, nous avons utilisé :
• React :React (voir figure 4.10) est une bibliothèque JavaScript open-source pour la
construction d’interfaces utilisateur. Elle fournit une approche déclarative et efficace pour
construire des applications web complexes et interactives. React utilise une architecture
basée sur des composants, où les éléments de l’interface utilisateur sont décomposés en
4.4. Présentation des interfaces du plateforme 49
Le travail a été réalisé sur un ordinateur portable qui dispose les caractéristiques suivantes :
L’interface d’accueil (voir la figure 4.12) offre une vue d’ensemble complète des tâches et
des problèmes en cours. La première partie affiche les tâches dues, en retard, incomplètes et
terminées, tandis que la seconde partie (voir la figure 4.13 ) présente une répartition des tâches
par section ainsi qu’un calendrier des événements à venir.
4.4. Présentation des interfaces du plateforme 51
L’interface de gestionnaire de fichiers (voir la figure 4.14 ) permet aux étudiants de gérer
efficacement leurs documents et ressources numériques (voir la figure 4.15 ). Elle offre des
fonctionnalités d’organisation (voir la figure 4.16 ) et de visualisation des fichiers, facilitant
ainsi la gestion de contenu.
4.4. Présentation des interfaces du plateforme 52
L’interface de calendrier (voir la figure 4.17) permet aux étudiants d’ajouter (voir la figure
4.18) et de visualiser des événements étiquetés (voir la figure 4.19). Grâce à une vue intuitive
et interactive, les étudiants peuvent facilement organiser leurs événements et rendez-vous en
les catégorisant par étiquettes.
4.4. Présentation des interfaces du plateforme 54
L’interface de note (voir la figure 4.20) offre la possibilité d’ajouter (voir la figure 4.21)
des notes personnalisées et de leur associer des rappels. Cette fonctionnalité aide les étudiants
à gérer leurs idées et remarques importantes tout en garantissant qu’aucune échéance n’est
oubliée grâce aux notifications de rappel.
L’interface de tâches (voir la figure 4.22) permet aux étudiants d’ajouter (voir la figure
4.23) des tâches en spécifiant leur niveau de priorité (faible, normal, élevée) et de les regrouper
par section (voir la figure 4.24). Cette organisation facilite la gestion des activités quotidiennes
en assurant que les tâches les plus urgentes et importantes sont clairement identifiées et bien
structurées.
1. Extraction du texte
• L’algorithme initie le processus en extrayant soigneusement le contenu du document
PDF, préservant ainsi les nuances et les détails essentiels pour une analyse précise.
2. Nettoyage du texte
• Le contenu extrait est soumis à un traitement méticuleux visant à éliminer non
seulement les caractères inutiles, mais aussi à normaliser le texte, garantissant ainsi
une cohérence et une clarté optimales.
3. Tokenisation
• Une fois nettoyé, le texte est méticuleusement segmenté en mots ou en tokens, une
étape fondamentale qui prépare le terrain pour une analyse exhaustive.
4. Vectorisation TF-IDF
• Les tokens sont alors transformés en vecteurs numériques grâce à la technique so-
phistiquée de pondération TF-IDF. Cette méthode, tenant compte à la fois de la
fréquence du terme et de son importance dans le contexte global du document, ga-
rantit une représentation fidèle et significative du contenu.
5. Calcul de similarité
• À l’aide de la mesure de similarité cosinus, l’algorithme évalue avec rigueur la si-
militude entre le contenu du document et chaque sujet pertinent, offrant ainsi une
perspective approfondie sur les relations sémantiques.
7. Association au sujet
• En appliquant un seuil de similitude préétabli (tel que 0.2), l’algorithme attribue le
document au sujet correspondant si la similitude dépasse ce seuil critique. Dans le
cas contraire, le sujet est catégorisé comme "Inconnu", offrant ainsi une transparence
et une granularité cruciales dans l’analyse des résultats.
4.5. Présentation de la partie IA 60
Pseudo-code de l’algorithme
L’intégration de l’IA dans notre plateforme web offre plusieurs avantages spécifiques
• Gestion simplifiée des études : Catégorisation automatique des documents par sujet,
ce qui permet une organisation plus efficace des ressources académiques et une réduction
significative du temps passé à rechercher des informations pertinentes.
plication web et offre une expérience utilisateur de plus en plus pertinente et personnalisée
aux étudiants.
• Analyse prédictive : Utilisation de modèles prédictifs pour anticiper les besoins acadé-
miques et proposer des contenus et des ressources adaptés, facilitant ainsi l’apprentissage
proactif et ciblé.
Grâce à ces innovations, notre plateforme devient un outil indispensable pour les étudiants,
leur offrant non seulement une aide précieuse dans leurs études mais aussi une optimisation de
leur temps et de leurs efforts, tout en s’adaptant continuellement à leurs besoins spécifiques.
4.6. Conclusion 63
4.6 Conclusion
Dans ce chapitre, nous avons identifié les logiciels et les techniques que nous avons utilisées
durant la phase de développement de notre plateforme.
Puis, nous avons enrichi notre travail par des imprimes écrans englobant la majorité des
fonctionnalités.
Enfin, nous avons exposé la partie IA sous forme d’un algorithme simplifié et un organigramme
qui représente le fonctionnement de l’algorithme visuellement.
Conclusion générale
Conclusion
En conclusion, ce projet de fin d’études a permis de développer une application web dé-
diée aux étudiants, visant à répondre aux défis contemporains de la gestion académique. Dans
un contexte où les méthodes traditionnelles de planification et d’organisation des études ne
suffisent plus, notre application propose une solution centralisée et intuitive pour optimiser
l’organisation, la planification et le suivi des tâches académiques.
Grâce à une plateforme personnalisée, les étudiants peuvent désormais stocker et organi-
ser leurs fichiers, gérer efficacement leurs événements et échéances, prendre des notes et suivre
l’avancement de leurs projets. Cette application répond non seulement aux besoins fondamen-
taux des étudiants en termes de gestion de temps et de ressources, mais elle offre également
une flexibilité d’utilisation adaptée à différents profils d’utilisateurs, allant des administrateurs
aux utilisateurs standards et premium.
Les quatre chapitres de ce rapport ont détaillé le processus de développement de l’applica-
tion, depuis la description de l’organisme d’accueil et la méthodologie adoptée, jusqu’à l’étude
des besoins des utilisateurs et la conception et réalisation de la plateforme. L’étude de l’existant
a mis en lumière les lacunes des outils actuels et justifié la pertinence de notre solution.
En créant un outil complet et convivial, nous avons fourni une réponse pertinente aux
problèmes identifiés dans notre problématique. L’application web développée permet de relever
les défis de la planification des études, de la gestion des ressources et du suivi des performances
académiques. En facilitant l’organisation et la gestion des tâches académiques, cette application
a le potentiel d’améliorer significativement la qualité de l’enseignement et la réussite académique
des étudiants.
Enfin, bien que notre projet ait atteint ses objectifs initiaux, plusieurs perspectives d’amé-
lioration et d’évolution peuvent être envisagées. Il serait pertinent de continuer à enrichir les
fonctionnalités de l’application, d’intégrer des outils d’analyse des performances académiques
plus avancés et de proposer une version mobile pour une accessibilité accrue. Ces développe-
ments futurs permettront de répondre encore mieux aux besoins évolutifs des étudiants et de
garantir leur succès dans un environnement académique de plus en plus complexe.
64
Webographie
[1] [Link]
[2] [Link]
[3] [Link]
[4] [Link]
[5] [Link]
[6] [Link]
[7] [Link]
[8] [Link]
[9] [Link]
[10] [Link]
[11] [Link]
[12] [Link]
[13] [Link]
[14] [Link]
65
Résumé
Ce travail fait partie du programme de fin d’études à l’École Supérieure des Sciences et de
la Technologie de Hammam Sousse afin d’obtenir le diplôme national de licence en Sciences de
l’Informatique : Génie Logiciel et Système d’Informations.
L’idée générale de ce projet consiste à concevoir et développer une application web dédiée
à la gestion académique des étudiants. Cette plateforme centralisée offre des fonctionnalités
pour stocker et organiser des fichiers académiques, intégrer un calendrier pour la gestion des
événements et des dates limites, ainsi qu’un espace pour la prise de notes. Un module de gestion
des tâches permet de créer des rappels et de suivre l’avancement des projets, garantissant une
organisation optimale de la charge de travail.
Abstract
This work is part of the end-of-study project at the Higher School of Sciences and Technology
of Hammam Sousse to obtain the national bachelor’s degree in Computer Science : Software
Engineering and Information Systems.
The main idea of this project is to design and develop a web application dedicated to
academic management for students. This centralized platform offers functionalities for storing
and organizing academic files, integrating a calendar for managing events and deadlines, as well
as a space for note-taking. A task management module allows users to create reminders and
track project progress, ensuring optimal organization of their workload.
Key words : React, Dashboard, Artificial Intelligence, Academic Management, Web Ap-
plication, Integrated Calendar, Note-taking, Task Management, Students.