Académique Documents
Professionnel Documents
Culture Documents
MEMOIRE
presenté à
Institut Supérieur d’Informatique de Mahdia
En vue de l’obtention
De la Licence Fondamentale en Sciences Informatiques
par
Anas Charfi
et
la Licence Appliquée en Réseaux Informatiques
par
Nourehane Gharbi
AnIT :
Développement d’une plateforme
d’analyse automatique des réseaux
sociaux
Je commence par rendre grâce à DIEU et à sa volonté pour la patience, le courage, la compé-
tence et la santé qu’il m’a donnée pour réaliser ce travail.
À mes chers parents Said CHARFI et Esma LAHDHERI aux quel j’exprime mes senti-
ments de reconnaissance pour leurs efforts consentis, leurs sacrifices et surtout leur amour incon-
ditionnel, que Dieu les protège et rend heureux. Je veux que vous soyez si fiers de moi
À mon cher petit frère Ahmed que je lui souhaite la réussite dans ces études et sa vie.
À mes amis. À tous mes enseignants, pour toute l’affectation et l’encouragement et pour leurs
soutiens tous au long de ma formation. À tous ceux qui m’ont aidé de loin ou de prés dans ce projet.
Anas CHARFI
1
Remerciment :
C’est avec un grand plaisir que je réserve ces quelques lignes en signe de gratitude et recon-
naissance à tous ceux qui ont contribué à l’élaboration de ce projet de fin d’études.
Je suis également très reconnu à Mr Hedi YAZID notre encadrant pédagogique à l’ISIMa
et Mr Ahmed CHAREF notre encadrant professionnel à la société qui nous a donné des pré-
cieux conseils dont j’avais un grand besoin, qui nous encadrait d’une manière méthodologique et
continue, et surtout qui nous permettant de profiter de leurs expériences professionnelle et de leurs
connaissances.
Anas CHARFI
2
Remerciment :
J’exprime ma gratitude envers mon encadreur Mr Hedi Yazid pour sa patience, sa disponi-
bilité, son encadrement, sa confiance et les conseils qu’il m’a généreusement prodigués durant la
réalisation de ce travail de fin d’études.
Je tiens à remercier mon Tuteur de stage Mr Ahmed Charef pour tout l’effort versé à mon
égard, sa patience à mon encontre, son aide précieuse lors des difficultés encourues pour mener à
terme ce projet.
Mes sincères gratitudes à mon binôme Anas Chafi pour le travail qu’il a effectuée durant le
stage, sa motivation, son réactivité et surtout pour son esprit d’équipe.
Je remercie vivement ma mère, ma soeur et son marie, mes deux frères, a toute la grande
famille, et mes amis qui ont toujours été à mes côté et qui m’ont soutenu tout le long de ce travail.
Sans oublier toutes les personnes qui m’ont aidé d’une manière directe ou indirecte à réaliser ce
projet dans les meilleures conditions et à franchir toutes les difficultés ainsi que pour leurs qualités
humaines tout à fait hors du commun.
Enfin, j’adresse mes remerciements aux membres de jury Mr Hamdi Aloulou et Mme Sana
Ghannay pour m’avoir honoré en acceptant d’évaluer ce travail.
Nourhane GHARBI
Table des matières
Introduction Générale 1
1 Etude de projet 2
1.1 Présentation de l’organisme d’accueil : . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Technopark ElGhazala : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Centre de recherche et innovation : . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Boite de developpement d’accueil DRTechnologies : . . . . . . . . . . . . . . 4
1.1.4 Critique de l’existant et solution proposée : . . . . . . . . . . . . . . . . . . . 5
1.1.4.1 Critique de l’existant : . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4.2 Solution proposé : . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Etat de l’art : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 C’est quoi l’analyse des données : . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 C’est quoi la Visualisation des données : . . . . . . . . . . . . . . . . . . . . 9
1.3 Partie sécurité et API Rest : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Partie Sécurité : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.2 Api Rest : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Methodologie et langage de conception : . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1 Méthodologie : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1.1 C’est quoi SCRUM ? . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1.2 Les rôles : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.1.3 Processus SCRUM : . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.2 Langage de conception : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Sprint 0 14
2.1 Spécification des besoins : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 Identification des acteurs : . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 Spécifications des besoins fonctionnels : . . . . . . . . . . . . . . . . . . . . . 15
2.1.3 Spécifications des besoins non fonctionnels : . . . . . . . . . . . . . . . . . . 16
2.2 Pattern et Style architectural : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Style architectural : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2 Pattern architectural : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Planning du traitement des cas d’utilisation : . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Exigence et Importance : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2 Les risques : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Pilotage de projet avec SCRUM : . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Équipe et rôles : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.2 Le backlog du produit : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.3 Structure et découpage du projet : . . . . . . . . . . . . . . . . . . . . . . . 21
3 Sprint 1 22
3.1 Découpage des fonctionnalitées : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Spécifications fonctionnelles : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1 Classification des cas d’utilisation par acteurs : . . . . . . . . . . . . . . . . . 25
3.2.2 Diagramme de cas d’utilisation : . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.3 Description textuelle des cas d’utilisation : . . . . . . . . . . . . . . . . . . . 26
3.2.3.1 Le cas d’utilisation « S’inscrire » : . . . . . . . . . . . . . . . . . . 26
3.2.3.2 Le cas d’utilisation « S’authentifier » : . . . . . . . . . . . . . . . . 27
3.2.3.3 Le cas d’utilisation « Modifier Compte » : . . . . . . . . . . . . . . 28
3.2.3.4 Le cas d’utilisation « Collecter les données » : . . . . . . . . . . . 29
3.2.3.5 Le cas d’utilisation « Obtenir les données » : . . . . . . . . . . . . . 30
3.3 Conception : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Diagramme de séquences système détaillé . . . . . . . . . . . . . . . . . . . . 31
3.3.1.1 Diagramme de séquences système du cas «S’inscrire» : . . . . . . . 31
3.3.1.2 Diagramme de séquences système du cas «S’authentifier» : . . . . . 32
3.3.1.3 Diagramme de séquences système du cas « Modifier compte » : . . 33
3.3.1.4 Diagramme de séquences système du cas «Collecter les données» : . 34
3.3.1.5 Diagramme de séquences système du cas «Obtenir les données» : . 35
3.3.1.6 Diagramme de séquences système détaillé «S’authentifier» : . . . . 36
3.3.2 Diagramme de classe global du premier sprint : . . . . . . . . . . . . . . . . 37
3.4 codage : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 Test : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5.1 Partie Front-end : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5.1.1 L’interface de l’inscription : . . . . . . . . . . . . . . . . . . . . . . 39
3.5.1.2 L’interface d’authentification : . . . . . . . . . . . . . . . . . . . . . 41
3.5.1.3 L’interface d’obtention de données : . . . . . . . . . . . . . . . . . . 42
3.5.1.4 L’interface de modification de Compte : . . . . . . . . . . . . . . . 42
3.5.2 Partie Back-end : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.5.2.1 Module ’getUserProfile ’ : . . . . . . . . . . . . . . . . . . . . . . . 43
3.5.2.2 Module ’getMyFeed ’ : . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.2.3 Module ’getLocationFeed’ : . . . . . . . . . . . . . . . . . . . . . . 44
3.5.3 Logo officiel de la plateforme : . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Sprint 2 46
4.1 Découpage des fonctionnalitées : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Spécifications fonctionnelles : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 Classification des cas d’utilisation par acteurs : . . . . . . . . . . . . . . . . . 48
4.2.2 Diagramme de cas d’utilisation : . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3 Description textuelle des cas d’utilisation : . . . . . . . . . . . . . . . . . . . 49
4.2.3.1 Le cas d’utilisation « Filtrer les utilisateurs » : . . . . . . . . . . . 50
4.2.3.2 Le cas d’utilisation « Rechercher utilisateur » : . . . . . . . . . . . 51
4.2.3.3 Le cas d’utilisation « Visualiser les données » : . . . . . . . . . . . 52
4.2.3.4 Le cas d’utilisation « Analyser les données » : . . . . . . . . . . . . 53
4.2.3.5 Le cas d’utilisation « Filtrer les données » : . . . . . . . . . . . . . 54
4.3 Conception : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 Diagramme de séquences système détaillé : . . . . . . . . . . . . . . . . . . . 55
4.3.1.1 Diagramme de séquences système du cas «Analyser les données» : . 55
4.3.1.2 Diagramme de séquences système du cas « Rechercher utilisateur » : 56
4.3.1.3 Diagramme de séquences système du cas « Filtrer les utilisateurs » : 57
4.3.1.4 Diagramme de séquences système du cas « Filtrer les données » : . 58
4.3.1.5 Diagramme de séquences système du cas « Visualiser les données » : 59
4.3.2 Diagramme de classe global du deuxième sprint : . . . . . . . . . . . . . . . 60
4.4 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5 Test : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5.1 Partie Front-end : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5.1.1 Interface de Filtration des utilisateurs : . . . . . . . . . . . . . . . . 61
4.5.1.2 Les interfaces de Rechercher Utilisateur : . . . . . . . . . . . . . . . 62
4.5.1.3 Les interfaces de l’Analyse des données : . . . . . . . . . . . . . . . 65
4.5.2 Partie Back-end : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.5.2.1 Module ’getUserProfileAnalyse’ : . . . . . . . . . . . . . . . . . . . 68
4.5.2.2 Module ’getCommentsListAnalyse’ : . . . . . . . . . . . . . . . . . 68
4.5.2.3 Module ’getPostsEvolutionAnalyse’ : . . . . . . . . . . . . . . . . . 69
5 Sprint 3 70
5.1 Découpage des fonctionnalitées : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2 Spécifications fonctionnelles : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.1 Classification des cas d’utilisation par acteur : . . . . . . . . . . . . . . . . . 72
5.2.2 Diagramme de cas d’utilisation : . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2.3 Description textuelle des cas d’utilisation : . . . . . . . . . . . . . . . . . . . 73
5.2.3.1 Le cas d’utilisation « Ajouter compte » : . . . . . . . . . . . . . . . 74
5.2.3.2 Le cas d’utilisation « Interagir avec la plateforme » : . . . . . . . . 75
5.2.3.3 Le cas d’utilisation « Gérer les notifications » : . . . . . . . . . . . 76
5.2.3.4 Le cas d’utilisation « Visualiser statistique » : . . . . . . . . . . . . 77
5.2.3.5 Le cas d’utilisation « Gérer les rôles » : . . . . . . . . . . . . . . . . 78
5.2.3.6 Le cas d’utilisation « Contrôler les utilisateurs » : . . . . . . . . . . 79
5.2.3.7 Le cas d’utilisation « Gérer l’accueil » : . . . . . . . . . . . . . . . 80
5.3 Conception : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3.1 Diagramme de séquences système détaillé : . . . . . . . . . . . . . . . . . . . 81
5.3.1.1 Diagramme de séquences système du cas «Ajouter compte» : . . . . 81
5.3.1.2 Diagramme de séquences système du cas «Interagir avec la plate-
forme» : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.1.3 Diagramme de séquences système du cas «Gérer les notifications» : 83
5.3.1.4 Diagramme de séquences système du cas «Visualiser statistique» : . 83
5.3.1.5 Diagramme de séquences système du cas «Gérer les rôles» : . . . . 84
5.3.1.6 Diagramme de séquences système du cas «Contrôler les utilisateurs» : 85
5.3.1.7 Diagramme de séquences système du cas «Gérer l’accueil» : . . . . 88
5.3.2 Diagramme de classe global du troisième sprint : . . . . . . . . . . . . . . . . 89
5.4 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.5 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5.1 L’interface d’ajout d’un compte : . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5.2 L’interface d’interaction avec la plateforme : . . . . . . . . . . . . . . . . . . 92
5.5.3 L’interface de visualisation statistique : . . . . . . . . . . . . . . . . . . . . . 94
5.5.4 L’interface de contrôle des utilisateurs : . . . . . . . . . . . . . . . . . . . . . 95
5.5.5 L’interface de gestion d’accueil : . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.5.6 L’interface de gestion des rôles : . . . . . . . . . . . . . . . . . . . . . . . . . 97
6 La phase de cloture 98
6.1 Environnement de développement : . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1.1 Environnement matériel : . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1.2 Environnement logiciel : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.1.3 Technologies et langages utilisées : . . . . . . . . . . . . . . . . . . . . . . . 103
6.1.4 Logiciel de la base de données : . . . . . . . . . . . . . . . . . . . . . . . . . 105
De ce fait, L’objectif principal de cet axe d’application consiste à la recherche d’une solution
pratique pour des clients potentiels afin de faciliter la commercialisation de leurs produits d’où
l’idée de créer une interface de gestion des médias.
En essayant de couvrir les différents thèmes évoqués ci-dessus, notre stage de fin d’études
s’inscrit dans cette lignée de la problématique susmentionnée. Ainsi, Ce travail suscite un certain
nombre d’interrogations :
— Comment collecter les informations des cibles ?
— Quelles sont les étapes à suivre pour gérer ces données ?
— Comment nous allons présenter et exploiter nos données ?
Afin de bien présenter notre travail, le présent mémoire présente six parties organisées comme
suit :
Le premier chapitre porte sur le contexte général du projet : Il donne un aperçu général sur
l’organisme d’accueil, une étude des solutions techniques existant en mentionnant leurs avantages
et leurs inconvénients pour finir par donner la solution retenue et la méthodologie utilisée et notre
contribution à atteindre l’objectif voulu.
Au chapitre II, nous déterminons les besoins fonctionnels et non fonctionnels de notre appli-
cation et nous présentons les différents cas d’utilisation.
Au chapitre III, nous présentons notre application dédiée. Cette partie aborde la première
phase de développement. Nous tentons d’identifier les utilisateurs (inscription, authentification,
modification de compte).
Le chapitre IV, nous traitons le sprint 2 de développement pour lancer plusieurs fonctionna-
litées, tels que recherches, filtrer et/ou visualiser et faire des analyses sur les données récoltées.
Le chapitre V, vise à décrire le dernier sprint de l’application réalisée qui offre aux utilisateurs
l’accès à plusieurs fonctionnalités.
Le chapitre VI, intitulé « phase de clôture » présente l’environnement de travail ainsi que les
outils logiciels que nous avons utilisés pour la réalisation de notre projet.
En conclusion, nous mentionnons les différents atouts de ce projet et les perspectives d’amé-
liorations possibles.
1
Chapitre 1
Etude de projet
CHAPITRE 1. ETUDE DE PROJET
Introduction
Ce chapitre s’intitule ‘Etude de projet’ et qui sera consacré à présenter le contexte général
de notre application. Nous commençons par présenter l’organisme d’accueil. Ensuite, nous allons
exposer l’étude de l’existant tout en citant les points forts et les points faibles observés. Finale-
ment, nous allons présenter la solution proposée pour remédier les problèmes existants ainsi que
la méthodologie du travail et le langage de conception choisi.
3
CHAPITRE 1. ETUDE DE PROJET
4
CHAPITRE 1. ETUDE DE PROJET
5
CHAPITRE 1. ETUDE DE PROJET
Ana.ly : Une application mobile (Android) propose une collection et d’analyse des données
pour le compte Instagram de l’utilisateur.
Avantage :
— Téléchargement gratuit.
— Bien organisé.
Inconvenient :
— Toutes les analyses qui nécessitent un effort mental sont payantes ( les données collectées
gratuitements sont inutiles ).
— Les données collectées se trouve dans le compte d’utilisateur sur l’application Instagram.
— L’application se trouve seulement sur PlayStore pour les appareils Android et non pas pour
l’iphone le téléphone le plus fréquent pour les influenceurs.
— Beaucoup de publicité d’une manière gênante.
— Pas de possibilité de collecte ou d’analyse des données d’autres comptes Instagram à part
celui de l’utilisateur authentifié.
6
CHAPITRE 1. ETUDE DE PROJET
Xprofile : est une application mobile (Android) qui offre des analyses sur des données collec-
tées à partir des comptes de l’utilisateur.
Avantage :
— Téléchargement gratuit.
— Bien organisé avec des activités très claires.
Inconvenient :
— Temps de chargement très long.
— Toutes les analyses utiles permettent d’augmenter la visibilité du compte est payante.
— L’application n’est pas multiplateforme (cross-platform) car elle se trouve uniquement sur
PlayStore et donc pour les appareils Android.
— Cette application contient beaucoup de publicité.
— Pas de possibilité de collecte ou d’analyse des données d’autres comptes Instagram à part
celui de l’utilisateur authentifié.
7
CHAPITRE 1. ETUDE DE PROJET
Later.com : C’est une application web qui sert à collecter les données et la possibilité de
publier automatiquement des photos sur le compte de l’utilisateur.
Avantage :
— Inscription gratuite.
— Interface claire à lire.
— Creation des publications automatique.
— L’analyse, la collection et la programmation des publications peut être faite pour beaucoup
des réseaux sociaux au même temps(Instagram, Twitter, Pinterest, Facebook, etc).
Inconvenient :
— L’interaction avec la plateforme est compliquée.
— Les analyses et la publication automatique sont payantes sauf la collection est gratuite.
— Pas de possibilité de collecte ou d’analyse des données d’autres comptes Instagram à part
celui de l’utilisateur authentifié.
8
CHAPITRE 1. ETUDE DE PROJET
9
CHAPITRE 1. ETUDE DE PROJET
Les tokens d’authentification : Pour vérifier que la requête est authentifiée, on utilise les
tokens d’authentification. Pour pouvoir créer et vérifier les tokens d’authentification, on utilise le
package : jsonwebtoken.
Un header (ou en-tête) : Nous permet de faire passer des informations supplémentaires sur le
message.
Par exemple :
— De quel langage s’agit-il ?
— À quelle date l’envoyez-vous ?
— Quel logiciel la personne utilise-t-elle ?
— Quelle est votre clé d’authentification ?
Le body : Dans le body, on peut créer les données réelles de la ressource avec POST, ou on peut
les mettre à jour avec PUT. Les données sont envoyées sous format JSON.
La structure des réponses :
Le format du message de réponse est très similaire à celui de la requête : Version HTTP +
Code de réponse HTTP + Headers + Body
Le body contient l’information que vous avez demandée et que l’API vous renvoie. L’image
ci-dessus montre une réponse d’une requête réussie.
Si la requête échoue, le body peut contenir un message d’erreur.
10
CHAPITRE 1. ETUDE DE PROJET
Les codes de réponse http : Le code de réponse HTTP aide le développeur et/ou le client à
comprendre le statut de la réponse. En général, les règles de base pour les codes de réponse HTTP
sont les suivantes :
— 100+ : Information
— 200+ : Succès
— 300+ : Redirection
— 400+ : Erreur client
— 500+ : Erreur serveur
L’authentification pour une API :
L’authentification constitue simplement un moyen pour les API de garantir que le client a les
autorisations nécessaires pour accéder aux données et les manipuler.
Les clés ou tokens API sont couramment utilisés dans une requête pour authentifier un utili-
sateur.
Privilégiez la sécurité : choisissez vos API avec discernement
Il faut vérifier la fiabilité d’une API avant de l’utiliser.
Il existe quelques méthodes simples et rapides pour vérifier si une API est fiable ou non. Les
API de qualité auront plusieurs mesures de sécurité comme l’authentification, l’autorisation et le
cryptage. Elles auront aussi été mises à jour récemment.
1.4.1 Méthodologie :
Les fameuses méthodes Agile est une famille de méthodologie reposent sur un cycle de dévelop-
pement itératif, incrémental et adaptatif. Le manifeste agile était écrit en 2001 est dès cette année
la majorité des entreprises de développement et même autre domaine ont adapté le principe pour
augmenter leur travail et avoir le maximum possible du montant du résultat final dans une durée
très courte par rapport à la méthode de travail traditionnelle.
11
CHAPITRE 1. ETUDE DE PROJET
12
CHAPITRE 1. ETUDE DE PROJET
Conclusion
Dans cette partie nous avons présenté le contexte de notre projet durant notre stage suivi d’une
étude de l’existant pour préciser les objectifs à atteindre, aussi on a étayer la méthodologie à suivre
et le langage de modélisation pour assurer un bon déroulement du travail et une bonne conception
pour réussir à livré un bon produit pour notre client.
Dans le chapitre suivant, nous allons identifier les fonctionnalitées à développer après la pré-
paration du projet.
13
Chapitre 2
Sprint 0
CHAPITRE 2. SPRINT 0
Introduction
Le deuxième chapitre se base sur la principale phase appliquée dans la méthode de SCRUM
qui consiste à planifier le projet, définir les fonctionnalités et les classer dans des incréments. Nous
parlons ici de l’une des pratiques les plus discutées dans le Scrum « Sprint zéro ». Ce dernier
est un élément important pour mettre les bonnes bases d’un nouveau projet et pour permettre
à une nouvelle équipe de se former et d’apprendre à travailler ensemble. En Fait, le sprint zéro
est une période d’exploration, de justification et d’organisation. Ainsi, nous allons préciser dans
ce chapitre les besoins et les fonctionnalités tout en désignant les différents acteurs et établir le «
Product Backlog » du produit initial et planifier les autres sprints.
15
CHAPITRE 2. SPRINT 0
Rechercher utilisateur : Le système doit permettre aux prestataires de rechercher les in-
fluenceurs selon leurs noms d’utilisateur Instagram ou Twitter. Cette fonctionnalité est
disponible aussi aux Influenceurs.
Filtrer les utilisateurs : Le système doit permettre aux inscrits sur la plateforme de filtrer
les influenceurs par domaine d’activité, ville, audience, genre, âge, etc.
Filtrer les données : Le système doit filtrer les données collectées à partir des comptes Ins-
tagram ou Twitter.
Analyser les données : Le système doit analyser les données collectées depuis les comptes
Instagram ou Twitter.
Visualiser les données : Le système doit interpréter les données analysées.
Ajouter compte : Le système doit permettre aux utilisateurs d’ajouter un compte pour l’ana-
lyser.
Interagir avec la plateforme : Le système doit permettre aux utilisateurs d’ajouter un ou
plusieurs commentaires.
Gérer les notifications : Le système doit autoriser aux utilisateurs de gérer les notifications
avec la capacité de recevoir et de voir la liste des notifications générées.
Gérer les rôles : Le système doit permettre aux administrateurs d’ajouter ou de supprimer
des accès affectés aux utilisateurs sur la plateforme.
Gérer l’accueil : Le système doit permettre aux administrateurs d’ajouter, supprimer ou
modifier les champs de la page d’accueil où s’affichent des analyses, des articles et des
statistiques, etc.
Visualiser statistique : Le système doit visualiser des statistiques à propos des analyses
déjà faites ainsi que sur l’activité des utilisateurs sur la plateforme.
Contrôler les utilisateurs : Le système doit permettre a l’administrateur de supprimer les
utilisateurs ou leurs avis à propos l’application ou les influenceurs.
16
CHAPITRE 2. SPRINT 0
17
CHAPITRE 2. SPRINT 0
18
CHAPITRE 2. SPRINT 0
19
CHAPITRE 2. SPRINT 0
6 Visualiser les données 6.1 En tant que système, je dois visualiser les données. 1
7 Filtrer les données 7.1 En tant que système, je dois filtrer les données collectées. 3
8 En tant que prestataire, je peux filtrer les influenceurs par leurs
8.1 3
Filtrer les utilisateurs domaine, ville, genre et âge.
En tant qu’influenceur, je peux filtrer les influenceurs par leurs
8.2 3
domaine, ville, genre et âge.
9 En tant que prestataire, je peux ajouter un autre
9.1 2
Ajouter compte compte sur un réseau social.
En tant que prestataire, je peux ajouter un autre
9.2 2
compte sur un réseau social.
10 En tant que prestataire, je peux ajouter
10.1 4
Interagir avec l’application un ou plusieurs commentaires à propos l’application.
En tant qu’Influenceur, je peux ajouter
10.2 4
un ou plusieurs commentaires à propos l’application.
En tant que prestataire, je peux ajouter
10.3 un ou plusieurs commentaires à propos mon avis 4
sur les influenceurs.
En tant qu’Influenceur, je peux ajouter
10.4 un ou plusieurs commentaires à propos mon avis 4
sur les autres influenceurs.
11 11.1 En tant qu’influenceur, je peux recevoir des notifications. 4
Gérer les notifications
11.2 En tant que prestataire, je peux recevoir des notifications. 4
12 En tant qu’influenceur, je peux obtenir les informations
12.1 2
Obtenir les données personnelles des utilisateurs qui sont inscrits sur l’application.
En tant que prestataire, je peux obtenir les informations
12.2 2
personnelles des utilisateurs qui sont inscrits sur l’application.
13 En tant qu’influenceur, je peux modifier mes données
13.1 4
Modifier compte personnelles sur l’application.
En tant que prestataire, je peux modifier mes données
13.2 4
personnelles sur l’application.
14 En tant qu’influenceur je peux avoir
14.1 2
Analyser les données une analyse des données collectées.
En tant que prestataire je peux avoir
14.2 2
une analyse des données collectées.
En tant d’administrateur je peux gérer les rôles
15 Gérer les rôles 15.1 4
des utilisateurs sur l’application.
En tant d’administrateur je peux supprimer,
16 Contrôler les utilisateurs 16.1 4
les comptes des utilisateurs ou leur avis sur la plateforme.
En tant d’administrateur je peux gérer les analyses,
17 Gérer l’acceuil 17.1 4
les statistiques et les articles de la page d’accueil.
20
CHAPITRE 2. SPRINT 0
Conclusion :
Durant ce chapitre, nous avons établi la planification de notre projet. En effet, nous avons défini
les spécifications des besoins en suivant les recommandations de la méthodologie SCRUM. Ainsi,
nous avons identifié les différents rôles de l’équipe de notre projet. Après, nous avons proposé le
Product Backlog qui contient la liste des fonctionnalités attendues du produit en vue. Ensuite,
nous avons proposé le découpage des Sprints. Dans le chapitre suivant, nous allons enchaîner à
présent avec notre premier sprint en détaillant les différentes fonctionnalités qui le décrivent.
21
Chapitre 3
Sprint 1
CHAPITRE 3. SPRINT 1
Introduction
Dans le chapitre précédent, nous avons défini la spécification des besoins. Puis, nous avons
proposé un découpage de notre projet en des sprints tout en se référant sur les principes de Scrum.
En fait, un sprint désigne une période bien structurée pendant laquelle un travail doit être mené
et qui fait l’objet d’une révision. Dans ce chapitre, nous allons détailler cette étape de processus
Scrum qui est cruciale car à la fin de ce sprint nous devons présenter un produit livrable dans les
délais. Ainsi, nous allons dresser une liste de toutes les user stories (histoires utilisateurs), avec leur
affiliation à des ‘’features” (les attributs). Un attribut est associé à une “release” (une version) : il
est composé en user stories qui sont priorisés dans des sprints.
23
CHAPITRE 3. SPRINT 1
24
CHAPITRE 3. SPRINT 1
S’authentifier.
Administrateur
S’inscrire.
S’authentifier.
S’inscrire.
Influenceur Obtenir les données.
Collecter les données.
Modifier Compte.
S’authentifier.
S’inscrire.
Prestataire Obtenir les données.
Collecter les données.
Modifier Compte.
Nous avons précisé dans le diagramme précédent les acteurs et leurs cas d’utilisations. L’utili-
sateur va exécuter les cas « S’inscrire », « S’authentifier », « collecter les données », « Obtenir les
données » et « Modifier compte ».
25
CHAPITRE 3. SPRINT 1
26
CHAPITRE 3. SPRINT 1
27
CHAPITRE 3. SPRINT 1
28
CHAPITRE 3. SPRINT 1
29
CHAPITRE 3. SPRINT 1
3.3 Conception :
Nous allons commencer maintenant une phase importante dans le cycle de vie d’une application.
Dans cette partie, nous allons réaliser les diagrammes de séquences et le diagramme de classe pour
détailler davantage les fonctionnalités les plus importantes de ce sprint.
30
CHAPITRE 3. SPRINT 1
31
CHAPITRE 3. SPRINT 1
32
CHAPITRE 3. SPRINT 1
33
CHAPITRE 3. SPRINT 1
34
CHAPITRE 3. SPRINT 1
35
CHAPITRE 3. SPRINT 1
36
CHAPITRE 3. SPRINT 1
37
CHAPITRE 3. SPRINT 1
3.4 codage :
La phase de codage, appelée aussi la phase de développement est consacrée à l’implémentation
des “user stories” analysées et conçues lors des deux étapes précédentes. Dans cette section, nous
allons présenter la structure de la base de données pour ce premier sprint, tout en appliquant les
règles de passage du modèle entité/association au modèle relationnel.
Schéma de la base de données : Ci-dessous, la table que nous avons réalisé au cours de ce
premier sprint.
3.5 Test :
Les pratiques de test représentent la dernière phase du cycle de développement d’un sprint.
Elles permettent de vérifier les résultats obtenus lors de l’étape de développement afin d’assurer et
de garantir une version de qualité. Nous allons illustrer la phase de développement par des captures
d’écrans des fonctionnalités qui ont été développées.
38
CHAPITRE 3. SPRINT 1
39
CHAPITRE 3. SPRINT 1
La figure ci-dessous présente le formulaire d’inscription pour l’administrateur sur notre appli-
cation :
40
CHAPITRE 3. SPRINT 1
41
CHAPITRE 3. SPRINT 1
42
CHAPITRE 3. SPRINT 1
43
CHAPITRE 3. SPRINT 1
44
CHAPITRE 3. SPRINT 1
Conclusion :
Jusqu’à cette partie, nous avons réussi à analyser, concevoir et développer le premier incrément
de notre projet « Gestion des comptes et Collection des données ». C’est une version qui est
potentiellement exploitable. Pour la partie suivante, nos efforts seront consacrés pour réaliser le
troisième incrément ’Sprint’.
45
Chapitre 4
Sprint 2
CHAPITRE 4. SPRINT 2
Introduction
Dans le chapitre précédent, nous avons exposé le premier sprint «La gestion des profils et la
collection des données». A la fin de ce sprint, nous avons obtenu une deuxième version de notre
application. Dans ce quatrième chapitre, nous allons réaliser le deuxième sprint qui va présenter la
partie la plus importante de notre application. En fait, il comprend les fonctionnalités de recherche
et d’analyse des données disponibles aux profit de différents utilisateurs de l’application.
47
CHAPITRE 4. SPRINT 2
Rechercher utilisateur.
Analyser les données.
Administrateur
Visualiser les données.
Filtrer les utilisateurs.
Rechercher utilisateur.
Analyser les données.
Influenceur
Visualiser les données.
Filtrer les utilisateurs.
Rechercher utilisateur.
Analyser les données.
Prestataire
Visualiser les données.
Filtrer les utilisateurs.
Filtrer automatiquement
«Moteur Filtrage»
les données.
48
CHAPITRE 4. SPRINT 2
Nous avons déterminé dans le tableau précédent les acteurs et leurs cas d’utilisations. Main-
tenant, nous présentons le diagramme de cas d’utilisation initial du sprint 2. Le prestataire peut
réaliser l’ensemble des cas d’utilisation «rechercher influenceur » et «Filtrer les utilisateurs».Et
c’est le même pour l’influenceur.
49
CHAPITRE 4. SPRINT 2
50
CHAPITRE 4. SPRINT 2
51
CHAPITRE 4. SPRINT 2
52
CHAPITRE 4. SPRINT 2
53
CHAPITRE 4. SPRINT 2
4.3 Conception :
Dans cette branche, nous allons présenter les diagrammes de séquences détaillés ainsi que le
diagramme de classe global des fonctionnalités les plus importantes de ce sprint.
54
CHAPITRE 4. SPRINT 2
55
CHAPITRE 4. SPRINT 2
56
CHAPITRE 4. SPRINT 2
57
CHAPITRE 4. SPRINT 2
58
CHAPITRE 4. SPRINT 2
59
CHAPITRE 4. SPRINT 2
60
CHAPITRE 4. SPRINT 2
4.4 Codage
Ayant construit le diagramme de classes de ce sprint et après avoir appliquer la transformation
du modèle entité/association au modèle relationnel, nous obtenons le schéma de la base de données
suivant.
Schéma de la base de données : Ci-dessous, la table que nous avons réalisé au cours de ce
premier sprint.
4.5 Test :
4.5.1 Partie Front-end :
4.5.1.1 Interface de Filtration des utilisateurs :
Après l’authentification, l’administrateur peut filtrer les utilisateurs par leurs domaines, ville,
nom d’utilisateur, genre et âge.La figure ci-dessous présente l’interface de filtrage des utilisateurs.
61
CHAPITRE 4. SPRINT 2
62
CHAPITRE 4. SPRINT 2
63
CHAPITRE 4. SPRINT 2
64
CHAPITRE 4. SPRINT 2
65
CHAPITRE 4. SPRINT 2
66
CHAPITRE 4. SPRINT 2
67
CHAPITRE 4. SPRINT 2
68
CHAPITRE 4. SPRINT 2
Conclusion :
Jusqu’à cette étape, nous avons atteint notre objectif de concevoir et développer le deuxième
incrément de notre plateforme. Nous disposons du deuxième sprint « Analyse et Filtration des
données». Pour la partie suivante, nous allons réaliser les dernières fonctionnalités de la plateforme.
69
Chapitre 5
Sprint 3
CHAPITRE 5. SPRINT 3
Introduction
Dans le chapitre précédent, nous avons annoncé le deuxième sprint. Dans ce chapitre, nous allons
réaliser le troisième sprint qui va disposer la version finale de notre application. Ce sprint permet
aux utilisateurs d’exécuter plusieurs fonctionnalités telles que l’ajout d’un compte, d’interagir avec
le plateforme, aussi chaque utilisateur peut avoir des statistiques à propos leurs réactions et des
notifications concernant les nouveautés de l’application. Par contre l’administrateur peut gérer les
rôles et l’accueil, aussi contrôler les utilisateurs.
71
CHAPITRE 5. SPRINT 3
Ajouter compte.
Interagir avec la plateforme.
Prestataire
Gérer les notifications.
Visualiser statistique.
72
CHAPITRE 5. SPRINT 3
Nous avons assuré dans le diagramme précédent les acteurs et leurs cas d’utilisations. L’utili-
sateur peut exécuter les cas «Ajouter compte», «Interagir avec la plateforme», «Gérer les notifi-
cations» et «Visualiser statistique» . Par contre l’administrateur peut exercer les cas «Gérer les
rôles», «Contrôler les utilisateurs» et «Gérer l’accueil».
73
CHAPITRE 5. SPRINT 3
74
CHAPITRE 5. SPRINT 3
75
CHAPITRE 5. SPRINT 3
76
CHAPITRE 5. SPRINT 3
77
CHAPITRE 5. SPRINT 3
78
CHAPITRE 5. SPRINT 3
79
CHAPITRE 5. SPRINT 3
80
CHAPITRE 5. SPRINT 3
5.3 Conception :
Dans cette partie, nous allons énoncer les diagrammes de séquences détaillés ainsi que le dia-
gramme de classe global des fonctionnalités les plus importantes de la troisième sprint.
81
CHAPITRE 5. SPRINT 3
82
CHAPITRE 5. SPRINT 3
83
CHAPITRE 5. SPRINT 3
84
CHAPITRE 5. SPRINT 3
85
CHAPITRE 5. SPRINT 3
86
CHAPITRE 5. SPRINT 3
87
CHAPITRE 5. SPRINT 3
88
CHAPITRE 5. SPRINT 3
89
CHAPITRE 5. SPRINT 3
5.4 Codage
Dans cette partie, nous allons expliquer la structure de la base de données pour ce troisième
sprint, tout en adoptant les règles de passage de la modèle entité/association au modèle relationnel.
Table : Avis plateforme
90
CHAPITRE 5. SPRINT 3
5.5 Test
5.5.1 L’interface d’ajout d’un compte :
La figure ci-dessous illustre le formulaire d’authentification pour les utilisateurs sur le compte
Twitter :
91
CHAPITRE 5. SPRINT 3
92
CHAPITRE 5. SPRINT 3
93
CHAPITRE 5. SPRINT 3
94
CHAPITRE 5. SPRINT 3
95
CHAPITRE 5. SPRINT 3
96
CHAPITRE 5. SPRINT 3
Conclusion
Dans ce chapitre, nous avons présenté la dernière phase de réalisation de notre application. Nous
avons présenté un aperçu sur les interfaces réalisés et les fonctionnalités offertes à l’utilisateur telles
que : L’ajout d’un compte, visualisation des statistiques, gérer l’accueil, etc. Ceci nous permet de
passer à notre dernier chapitre, la phase de clôture.
97
Chapitre 6
La phase de
cloture
CHAPITRE 6. LA PHASE DE CLOTURE
Introduction
Dans ce sixième chapitre de notre cycle de développement d’un logiciel avec Scrum, nous allons
nous intéresser à la phase de clôture qui une phase essentielle dans un projet. Cette phase rappelle
les environnements matériels de notre système informatique, ainsi que l’environnement logiciel
pour les différents techniques qu’on a utilisés.
Ordinateur portable 1 2
Processeur Intel core i5 Intel core i7
Ram 8 Go 12 Go
Stockage 1 To hdd 1 To ssd
Système d’exploitation Windows 10 professionnel Windows 10 professionnel
99
CHAPITRE 6. LA PHASE DE CLOTURE
100
CHAPITRE 6. LA PHASE DE CLOTURE
101
CHAPITRE 6. LA PHASE DE CLOTURE
102
CHAPITRE 6. LA PHASE DE CLOTURE
103
CHAPITRE 6. LA PHASE DE CLOTURE
104
CHAPITRE 6. LA PHASE DE CLOTURE
Conclusion
Dans ce chapitre, nous avons énuméré toutes les technologies et les logiciels appliqués au cours
de ce travail. Notre choix a visé essentiellement les nouvelles tendances actuelles de l’ingénierie
et du développement (Bases de données NoSQL, Angular, Flask, etc ;). Ainsi, nous nous sommes
référés à une variété de plateformes qui, chacun d’eux, a assuré une fonctionnalité de l’application
développée.
105
Conclusion
Générale
CHAPITRE 6. LA PHASE DE CLOTURE
Dans le cadre de notre projet de fin d’étude à l’Institut Supérieur d’Informatique de Mahdia,
nous avons réussi à développer une application d’analyse automatique des réseaux sociaux au profit
de la startup DRTechnologies.
Au début, nous avons exposé l’étude du projet en dégageant les besoins du clients. Après, nous
avons présenté l’organisme d’accueil, critiqué les systèmes similaires puis on a défini les termes
essentielles dans lesquelles notre projet se déroule. Finalement, nous avons focalisé sur la métho-
dologie et le langage de conception utilisés pour gérer notre projet et le modéliser.
Dans la partie suivante, nous avons exposé le backlog de notre système pour le subdiviser en
trois incréments. Après, nous avons suivi les recommandations de la méthodologie Scrum sur les
trois sprints du projets. Au début, nous avons commencé par le découpage des fonctionnalités.
Deuxièmement, nous avons définit les spécifications fonctionnelles pour chaque type d’utilisateur.
Ensuite, nous avons présenté la partie conception suivie par le codage et enfin l’insertion de quelques
exemples de la phase final test.
Le fruit de l’effort a donné une application web fonctionnelle qui satisfait les besoins de nos
futurs utilisateurs, malgré les difficultés rencontrées au cours du projet. Le résultat obtenu a validé
les objectifs prédéfinis au début du projet. Ainsi, notre application permet de mener un processus
de collecte, de stockage, d’analyse et de visualisation des données issues des réseaux sociaux.
Au Cours de notre stage, nous avons eu l’occasion d’acquérir des nouveaux compétences aca-
démiques et même professionnelles dans le domaine de l’informatique et aussi dans d’autres do-
maines auxiliaires tels que la gestion du temps principalement. Techniquement, nous avons réussi
à manipuler des frameworks dédiées à l’analyse et la visualisation de données et qui prennent,
actuellement, un essor incrémental dans la communauté informatique.
107
Netographie
NETOGRAPHIE
109
NETOGRAPHIE
110