Vous êtes sur la page 1sur 123

République Tunisienne Université de Monastir

Ministère de l’Enseignement Institut Supérieur d’Informatique


Supérieur et de la Recherche de Mahdia
Scientifique Projet de fin d’études N◦ d’ordre : . . ..

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

Soutenu le . . ..., devant la commission d’examen :


Mr.Hamdi Aloulou Président
Mme.Sana Ghannay Rapporteur
Mr.Hedi Yazid Encadrant Pédagogique
Mr.Ahmed Charef Encadrant Professionnel

Année universitaire 2019/2020


Dédicases :

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.

Je vous aime bien.

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.

J’adresse mes spéciaux remerciements au directeur de la société DRTechnologies qui nous a


permis d’effectuer notre stage au sein de sa société.

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.

Enfin je remercie vivement Mr Hamdi ALOULOU d’avoir accepté de présider ce travail et


Mme Sana GHANNAY pour avoir accepté d’évaluer ce rapport et nous faire profiter de son
expérience.

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

Table des figures

Liste des tableaux

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

Conclusion Générale 107


Table des figures

1.1 Logo DRTechnologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3


1.2 Logo ISIMa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Les activitées principaux de l’application mobile Ana.ly . . . . . . . . . . . . . . . . 6
1.4 Les pages principaux de l’application Xprofile . . . . . . . . . . . . . . . . . . . . . 7
1.5 Page d’accueil de l’application web Later . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Mode de fonctionnement SCRUM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Logo Langage UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1 Style architectural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17


2.2 Architecture MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Sprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1 Diagramme de cas d’utilisation Global du Sprint 1 . . . . . . . . . . . . . . . . . . . 25


3.2 Diagramme de cas d’utilisation « S’inscrire » . . . . . . . . . . . . . . . . . . . . . 26
3.3 Diagramme de cas d’utilisation « S’authentifier » . . . . . . . . . . . . . . . . . . . 27
3.4 Diagramme de cas d’utilisation « Modifier Compte » . . . . . . . . . . . . . . . . . 28
3.5 Diagramme de cas d’utilisation « Collecter les données » . . . . . . . . . . . . . . . 29
3.6 Diagramme de cas d’utilisation « Obtenir les données » . . . . . . . . . . . . . . . . 30
3.7 Diagramme de séquences système du cas «S’inscrire» . . . . . . . . . . . . . . . . . 31
3.8 Diagramme de séquences système du cas «S’authentifier» . . . . . . . . . . . . . . . 32
3.9 Diagramme de séquences système du cas « Modifier compte » . . . . . . . . . . . . 33
3.10 Diagramme de séquences système du cas «Collecter les données» . . . . . . . . . . . 34
3.11 Diagramme de séquences système du cas «Obtenir les données» . . . . . . . . . . . 35
3.12 Diagramme de séquences système du cas «S’authentifier» . . . . . . . . . . . . . . . 36
3.13 Diagramme de class du Sprint 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.14 Interface Inscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.15 Interface Inscription Administrateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.16 Interface Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.17 Interface Authentification administrateur . . . . . . . . . . . . . . . . . . . . . . . . 41
3.18 Interface Obtentir les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.19 Interface Modifier Compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.20 Resultat module ’GetUserProfile’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.21 Resultat module ’GetMyFeed’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.22 Resultat module ’GetLocationFeed’ . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.23 Logo du plateforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1 Diagramme de cas d’utilisation Global du Sprint 2 . . . . . . . . . . . . . . . . . . . 49


4.2 Diagramme de cas d’utilisation « Filtrer les utilisateurs » . . . . . . . . . . . . . . 50
4.3 Diagramme de cas d’utilisation « Rechercher utilisateur » . . . . . . . . . . . . . . 51
4.4 Diagramme de cas d’utilisation « Visualiser les données » . . . . . . . . . . . . . . 52
4.5 Diagramme de cas d’utilisation « Analyser les données » . . . . . . . . . . . . . . . 53
4.6 Diagramme de cas d’utilisation « Filtrer les données » . . . . . . . . . . . . . . . . 54
4.7 Diagramme de séquences système du cas «Analyser les données» . . . . . . . . . . . 55
4.8 Diagramme de séquences système du cas « Rechercher utilisateur» . . . . . . . . . . 56
4.9 Diagramme de séquences système du cas « Filtrer les utilisateurs » . . . . . . . . . 57
4.10 Diagramme de séquences système du cas « Filtrer les données » . . . . . . . . . . . 58
4.11 Diagramme de séquences système du cas « Visualiser les données » . . . . . . . . . 59
4.12 Diagramme de class du Sprint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.13 Interface Filtrer les utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.14 Interface Rechercher Utilisateur 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.15 Interface Profile Utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.16 Interface Mur Utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.17 Interface Exemple des abonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.18 Interface Rechercher Localisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.19 Interface Mur Hashtag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.20 Interface Analyse des données 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.21 Interface Analyse des données 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.22 Interface Analyse des données 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.23 Interface Analyse des données 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.24 Interface Analyse des données 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.25 Interface Analyse des données 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.26 Resultat module ’getUserProfileAnalyse’ . . . . . . . . . . . . . . . . . . . . . . . . 68
4.27 Interface Filtrer les utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.28 Interface Filtrer les utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.1 Diagramme de cas d’utilisation Global du Sprint 3 . . . . . . . . . . . . . . . . . . . 73


5.2 Diagramme de cas d’utilisation « Ajouter compte » . . . . . . . . . . . . . . . . . . 74
5.3 Diagramme de cas d’utilisation « Interagir avec la plateforme » . . . . . . . . . . . 75
5.4 Diagramme de cas d’utilisation « Gérer les notifications » . . . . . . . . . . . . . . . 76
5.5 Diagramme de cas d’utilisation « Visualiser statistique » . . . . . . . . . . . . . . . 77
5.6 Diagramme de cas d’utilisation « Gérer les rôles » . . . . . . . . . . . . . . . . . . . 78
5.7 Diagramme de cas d’utilisation « Contrôler les utilisateurs » . . . . . . . . . . . . . 79
5.8 Diagramme de cas d’utilisation « Gérer l’accueil » . . . . . . . . . . . . . . . . . . . 80
5.9 Diagramme de séquences système du cas «Ajouter compte» . . . . . . . . . . . . . . 81
5.10 Diagramme de séquences système du cas «Interagir avec la plateforme» . . . . . . . 82
5.11 Diagramme de séquences système du cas «Gérer les notifications» . . . . . . . . . . 83
5.12 Diagramme de séquences système du cas «Visualiser statistique» . . . . . . . . . . . 83
5.13 Diagramme de séquences système du cas «Gérer les rôles» . . . . . . . . . . . . . . 84
5.14 Diagramme de séquences système du cas «Contrôler les utilisateurs» . . . . . . . . . 87
5.15 Diagramme de séquences système du cas «Gérer l’accueil» . . . . . . . . . . . . . . 88
5.16 Diagramme de class du Sprint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.17 Interface Ajouter compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.18 Interface Interagir avec la plateforme 1 . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.19 Interface Interagir avec la plateforme 2 . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.20 Interface Interagir avec la plateforme 3 . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.21 Interface de visualisation statistique 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.22 Interface de visualisation statistique 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.23 Interface Contrôler les utilisateurs 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.24 Interface Contrôler les utilisateurs 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.25 Interface Contrôler les utilisateurs 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.26 Interface Gérer Accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.27 Interface Gérer les rôles 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.28 Interface Gérer les rôles 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1 Logo Visual Studio Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99


6.2 Logo Visual Paradigm Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.3 Logo OverLeaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.4 Logo LaTex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Logo Adobe Illustrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.6 Logo Adobe Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.7 Logo Postman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.8 Logo Google Docs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.9 Logo GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.10 Logo Google Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.11 Logo Ngrok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.12 Logo Google Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.13 Logo Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.14 Logo Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.15 Logo TypeScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.16 Logo JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.17 Logo HTML 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.18 Logo CSS 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.19 Logo Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.20 Logo Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.21 Logo Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.22 Logo Express.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.23 Logo MongoDb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Liste des tableaux

1.1 Informations à propos DRTechnologies . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1 Les rôles SCRUM de notre équipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


2.2 Backlog de notre projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1 Backlog du Sprint 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24


3.2 Spécifications des fonctionnalités du Sprint 1 . . . . . . . . . . . . . . . . . . . . . 25
3.3 Description textuelle du cas d’utilisation « S’inscrire » . . . . . . . . . . . . . . . . 26
3.4 Description textuelle du cas d’utilisation « S’authentifier » . . . . . . . . . . . . . . 27
3.5 Description textuelle du cas d’utilisation « Modifier Compte » . . . . . . . . . . . . 28
3.6 Description textuelle du cas d’utilisation « Collecter les données » . . . . . . . . . . 29
3.7 Description textuelle du cas d’utilisation « Obtenir les données » . . . . . . . . . . . 30
3.8 Table Utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.1 Backlog du Sprint 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


4.2 Spécifications des fonctionnalités du Sprint 2 . . . . . . . . . . . . . . . . . . . . . 48
4.3 Description textuelle du cas d’utilisation « Filtrer les utilisateurs » . . . . . . . . . . 50
4.4 Description textuelle du cas d’utilisation « Rechercher utilisateur » . . . . . . . . . 51
4.5 Description textuelle du cas d’utilisation « Visualiser les données » . . . . . . . . . 52
4.6 Description textuelle du cas d’utilisation « Analyser les données » . . . . . . . . . . 53
4.7 Description textuelle du cas d’utilisation « Filtrer les données » . . . . . . . . . . . 54
4.8 Table Requette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.1 Backlog du Sprint 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72


5.2 Spécifications des fonctionnalités du Sprint 3 . . . . . . . . . . . . . . . . . . . . . . 72
5.3 Description textuelle du cas d’utilisation « Ajouter compte » . . . . . . . . . . . . . 74
5.4 Description textuelle du cas d’utilisation « Interagir avec la plateforme » . . . . . . 75
5.5 Description textuelle du cas d’utilisation « Gérer les notifications » . . . . . . . . . 76
5.6 Description textuelle du cas d’utilisation « Visualiser statistique » . . . . . . . . . . 77
5.7 Description textuelle du cas d’utilisation « Gérer les rôles » . . . . . . . . . . . . . . 78
5.8 Description textuelle du cas d’utilisation « Contrôler les utilisateurs » . . . . . . . . 80
5.9 Description textuelle du cas d’utilisation « Gérer l’accueil » . . . . . . . . . . . . . . 80
5.10 Table Avis plateforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.11 Table Avis influenceur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6.1 Caractéristique technique des machines . . . . . . . . . . . . . . . . . . . . . . . . . 99


Introduction
Générale
Le marché des applications web connaît un essor phénoménal et devient une véritable manne
financière pour les entreprises. C’est dans cette optique que plusieurs sociétés telles que Digital Re-
search Technologies n’ont pas hésité à exploiter les avancées technologiques pour offrir des services
innovants et rapides à ses clients. Le défi de Digital Research Technologies consiste à exploiter des
informations issues des réseaux sociaux tels que Instagram, Facebook, Twitter. . . qui seront utilisés
principalement par les responsables marketing et les gestionnaires des communautés afin de cibler
les bons influenceurs.

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.

1.1 Présentation de l’organisme d’accueil :


Notre stage s’est déroulé au sein de la boite de développement DRTechnologies qui est située
au centre d’innovation du Technopark El Ghazala pour obtenir le diplôme de licence fondamen-
tale en science informatique pour Anas Charfi et le diplôme de la licence appliquée en Réseaux
Informatiques pour Nourhene Gharbi à l’Institut Supérieur d’Informatique de Mahdia (ISIMa).
Ce projet a été réalisé sur une période de six mois, dès 21 janvier 2020 au 11 juillet 2020.

Figure 1.1 – Logo DRTechnologies 1

Figure 1.2 – Logo ISIMa 2

3
CHAPITRE 1. ETUDE DE PROJET

1.1.1 Technopark ElGhazala :


Le Technopark ElGhazala est un environnement intégré pour le développement des petites
et moyennes entreprises ainsi que pour les multinationales et les grands groupes du secteur des
technologies de l’information et de la communication. Son objectif principal est d’accueillir et de
soutenir le développement d’activités de haute technologie et de promouvoir la recherche et le
développement ainsi que le transfert de technologie.
La mission du technopark s’inscrit dans la stratégie nationale et internationale de développe-
ment et de promotion de la recherche scientifique, de l’innovation et de la production à forte valeur
ajoutée dans le domaine des technologies de l’information et de la communication. Il accueille des
institutions de soutien telles que la formation et la recherche en plus des activités de production,
dans le but de créer une synergie et des relations croisées entre ces acteurs.
ElGhazala Technopark accueille aujourd’hui plus de 100 entreprises, dont 12 filiales de grands
groupes mondiaux (Microsoft, ST Microélectroniques, Ericsson, Alcatel Lucent), ainsi que des
succès stories tunisiennes (Telnet, Cynapsys, ...)

1.1.2 Centre de recherche et innovation :


Le projet a été réalisé avec la startup DRTechnologies qui est situé au centre d’innovation. Ce
centre est basé pour faciliter son intégration avec son environnement et la société. Il englobe les
entités suivantes :
— Un espace de travail collaboratif où des équipes d’entrepreneurs seront hébergées pour des
périodes variant entre 6 et 18 mois pour travailler sur des projets visant à résoudre des
problèmes issus de l’environnement du Technopark.
— Un accélérateur d’innovation qui contribuera, en étroite collaboration avec le Technopark,
au développement des prototypes développés dans le centre d’innovation.
— Des laboratoires de tests et de prototypage où les acteurs de l’écosystème Technopark
peuvent valider les prototypes et les solutions qu’ils développent en son sein.
— En plus de ces trois composantes, le centre d’innovation s’appuiera sur un ensemble de parte-
naires qui vont notamment : Fournir le centre d’innovation avec les différentes composantes
d’une plateforme de prototypage.
L’avantage de ces composants est de créer un environnement où les équipes de projet (entrepre-
neurs, chercheurs, doctorants) peuvent travailler sur la résolution de problèmes concrets tout en
préservant les intérêts de chacune des parties prenantes. Afin d’atteindre cet objectif, un modèle
économique fondé sur le partage des intérêts et des avantages communs devrait être mis en œuvre.
C’est ainsi que j’ai bénéficié de cet environnement qui prolonge la réalisation des projets.

1.1.3 Boite de developpement d’accueil DRTechnologies :


L’objectif de la startup d’accueil consiste à créer rapidement des solutions IoT qui fonctionnent
avec les appareils, actifs et les systèmes existants ainsi que exploiter, analyser les données et dégager
des informations exploitables par l’intermédiaire d’une plateforme IoT flexible. Ces produits sont
destinés aux industriels ou start-ups, ils sont génériques et servent d’interface web et mobile pour
gérer les objets et les utilisateurs (clients, administrateurs, exploitants, etc).
Davantage, le startup d’accueil offre un service de création de chatbot (ou agent conversation-
nel) pour offrir la possibilité d’améliorer la communication de marque, d’automatiser certaines
interactions avec les clients, d’optimiser les ventes e-commerce ou d’assurer une expérience et un
service client optimaux.

4
CHAPITRE 1. ETUDE DE PROJET

Les services offert par DRTechnologies sont :


— Développement des solutions IOT.
— Développement des applications web.
— Développement des applications mobile.
— Développement de Chat Bot.

Digital Research Technologies


Nom
‘DRTechnologies’
Date de création Octobre 2017
Centre de recherche et innovation, ElGhazala
Siège social
Technopark, Raoued, 2088 Ariana - Tunisie
Site web www.drtechnologies.com.tn
Nom du président directeur général Ahmed Charef
Adresse mail contact@drtechnologies.com.tn

Table 1.1 – Informations à propos DRTechnologies

1.1.4 Critique de l’existant et solution proposée :


Cette étape est absolument primordiale car elle nous donne une idée plus précise à propos
les besoins du client et les lacunes faites par ce que nous pouvons appeler concurrents pour bien
favoriser la créativité et l’esprit du concurence. Pour valoriser l’étude de l’existant, il nous faut
qu’on mette la casquette du client, suite à ça nous avons cherché bien et même nous nous sommes
inscrits sur les plateformes qui donne un service similaire et téléchargé les applications mobiles
aussi.

1.1.4.1 Critique de l’existant :


Dont l’objectif est de créer un projet qui assure le besoin de notre client. Ainsi, il est nécessaire
que nous commençons par la critique de l’existant car cela nous montre les points forts et les points
faibles des applications existantes et qui traitent la même problématique de ce travail.

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.

Figure 1.3 – Les activitées principaux de l’application mobile Ana.ly 3

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.

Figure 1.4 – Les pages principaux de l’application Xprofile 4

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.

Figure 1.5 – Page d’accueil de l’application web Later 5

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é.

1.1.4.2 Solution proposé :


Suite à l’analyse détaillée sur les application existantes sur le marché, nous avons réussi à éla-
borer le besoin du client, au service de collecte et d’analyse de données et de dégager les anomalies
présentes sur ces applications. De ce fait, nous avons déduit que la solution réside dans la création
d’une plateforme d’analyse des réseaux sociaux permet essentiellement de :
— Collecter les données des réseaux sociaux.
— Analyser ses données.
— Les Visualisées d’une manière claire.

8
CHAPITRE 1. ETUDE DE PROJET

1.2 Etat de l’art :


1.2.1 C’est quoi l’analyse des données :
“L’appellation d’ « analyse des données » recouvre une collection d’instruments de statistique
descriptive. Collection, c’est-à-dire rassemblement et juxtaposition dont le lien logique est parfois
ténu. Instruments, c’est-à-dire outils dont on attend d’abord qu’ils aient une efficacité pratique, la
justification théorique éventuelle n’étant recherchée qu’en second. Statistique descriptive, c’est-à-
dire que l’analyse des données s’applique à des résultats statistiques bruts, dont elle vise à faciliter
le maniement : elle se situe Immédiatement en aval de la production de ces résultats, et Immé-
diatement en amont de leur présentation littéraire qu’elle prépare, des raisonnements probabilistes
(notamment économétriques) que l’on peut effectuer sur eux et des études proprement économiques,
sociologiques ou autres qu’ils peuvent nourrir.”[1]

1.2.2 C’est quoi la Visualisation des données :


“La dataviz (raccourci pour Data Vizualisation) est l’anglicisme qui désigne les techniques per-
mettant de présenter des données sous forme visuelle afin d’en faciliter la compréhension et/ou
l’analyse.”[2]
“Dans le domaine du web analytics, la profusion des indicateurs en tout genre a tendance à
noyer l’utilisateur sous un flot d’informations que le cerveau humain a du mal à traiter, alors qu’en
réalité, seules quelques unes sont réellement utiles. La représentation graphique permet en outre de
mieux analyser les tendances, et de ne pas se perdre dans l’analyse de chiffres isolés.”[2]

1.3 Partie sécurité et API Rest :


1.3.1 Partie Sécurité :
CORS signifie Cross Origin Resource Sharing, il s’agit d’un système de sécurité qui, par défaut,
bloque les appels HTTP d’être effectués entre des serveurs différents, ce qui empêche donc les
requêtes malveillantes d’accéder à des ressources sensibles.
Dans notre cas, nous avons deux origines : localhost :3000 et localhost :4200, et nous souhaite-
rions qu’elles puissent communiquer entre elles. Pour cela, nous devons ajouter des headers à notre
objet response.
Ces headers permettent :
— d’accéder à notre API depuis n’importe quelle origine ( ’*’ ).
— d’ajouter les headers mentionnés aux requêtes envoyées vers notre API (Origin, X-Requested-
With, etc.).
— d’envoyer des requêtes avec les méthodes mentionnées ( GET ,POST , etc.).
Bcrypt : Le package de chiffrement que nous utiliserons bcrypt, qui utilise un algorithme
unidirectionnel pour chiffrer et créer un hash des mots de passe utilisateur.
On stocke le mot de passe de chaque utilisateur sous la forme d’un hash.
Package de validation : Pour s’assurer que deux utilisateurs ne peuvent pas utiliser la même
adresse e-mail, nous utilisons un package de validation pour pré-valider les informations avant de
les enregistrer : mongoose-unique-validator.

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.

1.3.2 Api Rest :


API : c’est un moyen de communication entre deux logiciels, que ce soit entre différents com-
posants d’une application ou entre deux applications différentes.
Le fonctionnement des API : Elles permettent la communication par l’utilisation de requêtes
et de réponses.
Les avantages d’une API REST :
Nous utiliserons REST dans notre projet, car c’est le plus populaire. C’est l’un des standards
de création d’API les plus logiques, efficaces, et utilisés.
REST signifie Representational State Transfer (ou transfert d’état de représentation, en fran-
çais), et constitue un ensemble de normes, ou de lignes directrices architecturales qui structurent la
façon de communiquer les données entre votre application et le reste du monde, ou entre différents
composants de votre application.
Nous utilisons l’adjectif RESTful pour décrire les API REST.
Les API RESTful se basent sur le protocole HTTP pour transférer les informations.

Les requêtes et les réponses avec une API REST :


La structure des requêtes :
Chaque requête a une structure spécifique qui a cette forme : Verbe HTTP + URI + Version
HTTP + Headers + Body (facultatif). Pour formuler des requêtes et tester des API, nous avons
utilisé Postman.

Les verbes HTTP :


Correspondent à différents types d’action que nous pouvons accomplir avec notre requête. Ceux
que vous rencontrerez le plus couramment sont : GET (obtenir), PUT (mettre), POST (publier),
et DELETE (supprimer).

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 Methodologie et langage de conception :


Dans cette partie nous allons aborder la méthodologie choisie pour avoir un travail bien organisé
et structuré et qui permet de faciliter et accélérer la conception, la documentation et même le
développement. Dans ce cadre, nous avons choisi l’une des méthodes Agile qui s’appelle SCRUM.

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.

1.4.1.1 C’est quoi SCRUM ?


Le framework SCRUM est l’une des méthodes de la famille agile les plus utilisées. Cette méthode
présenté en 1995 par Ken Schwaber, publiée ensuite en 2001 par lui-même et Mike Beedle. Ce
framework s’appuie sur le découpage du projet global sur des incréments ou s’appel aussi des
boites de temps et des pointes de vitesse, ces petites partie par rapport au taille total du projet
commence par une estimation du temps, la durée de l’incrément doit être entre quelques heures et
un mois. Chaque boite de temps se termine par une démonstration du résultat achevé. On ne peut
passer au module suivant qu’après que l’équipe réalise une rétrospective sur la version du produit
réalisé et passer à l’incrément suivant pour améliorer les pratiques du développement.

11
CHAPITRE 1. ETUDE DE PROJET

1.4.1.2 Les rôles :


La méthode choisie définit trois rôles dans le projet qui sont :
— Product Owner (propriétaire du produit) : Personne ayant la responsabilité de maintenir
à jour le carnet de produit. C’est lui qui détermine les priorités et qui prend les décisions
d’orientation de l’effort dépensé.
— Scrum Master (chef de mêlée) : Membre de l’équipe dont l’objectif principal est de la
protéger des perturbations extérieures et assure le bon fonctionnement du projet. Il est
complètement transparent pour la communication entre l’équipe et les clients. C’est en
revanche un facilitateur pour les problèmes techniques et non techniques de l’équipe. Cette
personne n’a aucun de pouvoir hiérarchique sur les autres membres de l’équipe.
— Development Team (équipe de développement) : Ces sont les personnes responsable au
développement du besoin du client. Cette équipe peut être composée de 2 à 10 membres.

1.4.1.3 Processus SCRUM :

Figure 1.6 – Mode de fonctionnement SCRUM. 6

12
CHAPITRE 1. ETUDE DE PROJET

1.4.2 Langage de conception :


Après l’évolution des langages de programmation et la migration de principe du langage procé-
dural vers l’orienté objet le langage unifié de modélisation ‘UML’ était là pour remplir la nécessité
du modélisation des langages orientés objet. Dans le cadre de notre projet on a choisi de modé-
liser notre système par ce langage. Ce langage est désigné pour modéliser graphiquement à base
de pictogrammes. L’UML est un langage visuel constitué des diagrammes ces sont des schémas
graphiques. Il nous fournit donc des diagrammes pour représenter le logiciel à développer.

Figure 1.7 – Logo Langage UML. 7

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.

2.1 Spécification des besoins :


2.1.1 Identification des acteurs :
Un acteur correspond à un rôle qui n’est pas obligatoirement une personne physique (il peut
jouer le rôle d’un élément système) et qui Interagit directement avec le système. Dans notre appli-
cation, nous avons deux acteurs qui sont :
Administrateur : c’est la personne responsable de la gestion du contenu de l’application et
de la gestion des accès des rôles.
Influenceur : c’est la personne qui peut avoir des analyses avancées sur son compte Instagram
ou Twitter et aussi sur les comptes des autres utilisateurs.
Prestataire : c’est la personne qui fait des recherches sur une/ou plusieurs personnes. Aussi,
il peut générer des analyses limitées sur son compte Instagram ou Twitter et aussi sur les
comptes des autres utilisateurs.

2.1.2 Spécifications des besoins fonctionnels :


Les spécifications fonctionnelles ont pour objectif de décrire précisément l’ensemble des fonc-
tions de l’application, et de fixer ainsi le périmètre fonctionnel du projet. La rédaction des spécifi-
cations est basée sur l’expression des besoins du client. De ce fait, notre application doit répondre
aux exigences suivantes :
S’inscrire : Pour commencer à utiliser notre plateforme, le client doit commencer par s’inscrire
comme étant un Influenceur ou un prestataire à travers un formulaire d’inscription.
S’authentifier : C’est action permet d’accéder aux fonctionnalités de l’application cation
d’une manière sécurisée.
Modifier compte : Le système doit permettre à un utilisateur de modifier ses données per-
sonnelles sur la plateforme.
Collecter les données : Le système doit permettre aux utilisateurs de collecter des informa-
tions personnelles sur des comptes actifs sur les réseaux sociaux.
Obtenir les données : Le système doit permettre aux utilisateurs d’obtenir des informations
personnelles suite à une procédure de recherche déjà exécutée (Collection des informations
sur la localisation, genre, âge, etc.).

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.

2.1.3 Spécifications des besoins non fonctionnels :


Dans leur cycle de vie, tous les systèmes d’information doivent considérer des besoins non
fonctionnels et valider les tests de l’intégration. Pour notre projet, ces besoins sont très importants
pour assurer la qualité et le bon fonctionnement du système.
Les besoins de notre projet sont :
Sécurité : L’application doit être sécurisée, les informations ne doivent pas être accessibles à
tout le monde, l’accès à l’application est possible à partir d’un login et un mot de passe.
Disponibilité : La plateforme doit être disponible à tout moment et pour tous les utilisateurs.
Convivialité : L’application doit être simple et facile à manipuler.
Performance : L’application doit être performante c’est-à-dire que le système doit réagir dans
un délai précis, quel que soit l’action d’utilisateur.
L’extensibilité : Dans le cadre de ce travail, l’application devra être extensible, c’est-à dire
que le gestionnaire de l’application pourra avoir la possibilité d’ajouter ou de modifier de
nouvelles fonctionnalités.
Maintenance : le code source de l’application doit être clair pour faciliter sa maintenance.

16
CHAPITRE 2. SPRINT 0

2.2 Pattern et Style architectural :


2.2.1 Style architectural :
Il s’agit d’un modèle logique d’architecture applicative qui vise à modéliser une application.
C’est une architecture basée sur l’environnement client–serveur. L’architecture logique du système
est divisée en trois niveaux ou couches :
— Couche de présentation.
— Couche de traitement.
— Couche d’accées au données.
Dans notre projet, nous avons utilisé l’architecture 3-tiers qui est composé de trois niveaux, détaillés
comme-suit :
Le client : déclenche les requêtes à destination de la couche de traitement et reçoit les réponses
requêtes.
Le serveur d’application : Ce serveur, appelé aussi middleware, offre des services applicatifs
à la couche de présentation à partir des requêtes des clients. Pour fournir ses services, il
faut faire un appel à un autre serveur.
Le serveur de base de données : Cette partie correspond à la partie gérant l’accès aux
données de l’application.

Figure 2.1 – Style architectural 1

2.2.2 Pattern architectural :


L’architecture MVC est l’une des plus célèbres design patterns, qui signifie Modèle - Vue –
Contrôleur. Le pattern MVC permet de bien organiser une interface graphique d’un programme.
Il décrit l’architecture d’une application en la décomposant en trois sous-parties :
Modèle : cette partie gère les données de l’application (accès et mise à jour).
Vue : cette partie s’occupe des interactions avec l’utilisateur : présentation, saisie et validation
des données. En effet cette partie se concentre sur l’affichage des résultats.
Contrôleur : ce module traite les actions de l’utilisateur, modifie les données du modèle et
de la vue.

17
CHAPITRE 2. SPRINT 0

Figure 2.2 – Architecture MVC 2

2.3 Planning du traitement des cas d’utilisation :


2.3.1 Exigence et Importance :
L’exigence peut être définie comme le besoin qu’un système doit remplir. Par ailleurs, la des-
cription de notre application peut clarifier les exigences sus-énumérées. Lors de l’énumération de
l’ensemble des fonctionnalités, nous avons observé que certains besoins sont plus prioritaires que
d’autres. Généralement, les fonctionnalités qui vont être validées au premier serviront à la réali-
sation de celles qui leurs succèderont. De ce fait, et pour une démarche bien structurée et non
frustrante, il faut bien décomposer les exigences par priorité ou importance, par exemple : Impor-
tance Faible, Importance Moyenne et Importance Élevée.

2.3.2 Les risques :


Le risque est un événement possible qui peut affecter la démarche choisie, et ceci par la création
des redondances entre des parties qui sont ; au préalable ; indépendantes. Dans ce cas, il vaut mieux
regrouper ces parties pour ne pas menacer la passation d’un Sprint à un autre.

2.4 Pilotage de projet avec SCRUM :


2.4.1 Équipe et rôles :
L’équipe SCRUM comprend différents membres remplissant des rôles :
Le product Owner : c’est le propriétaire du produit et le responsable officiel du projet.
Le SCRUM Master : e maître SCRUM c’est lui qui vérifie le respect des principes de la
méthodologie et il veille à protéger l’équipe des perturbations extérieurs. Cependant, il n’a
aucun pouvoir hiérarchique sur l’équipe.
Developement Team : c’est l’équipe responsable du développement et de la qualité du pro-
duit.

18
CHAPITRE 2. SPRINT 0

Le Tableau ci-dessus représente notre équipe SCRUM :

Prénom et Nom Rôle


Mr Ahmed Charef Product Owner
Mr Hedi Yezid SCRUM Master
Anas Charfi Developement Team
Nourhene Gharbi Developement Team

Table 2.1 – Les rôles SCRUM de notre équipe

2.4.2 Le backlog du produit :


Le Backlog est défini comme un tableau qui comprend toutes les fonctionnalités attendues du
projet pour un utilisateur. Plus précisément, c’est le travail demandé à faire par l’équipe Scrum.
Durant l’actuel sprint (Sprint 0), nous allons apprendre à connaître les besoins de chaque utilisateur
de notre plateforme. Durant la réalisation du projet, il est très important d’alimenter le ‘backlog’
au fur et à mesure pour ne pas oublier des fonctionnalités permettant de répondre parfaitement
aux besoins de l’utilisateur.

Id exigence User Story Id tâche Tâche Priorité


En tant qu’administrateur, je peux visualiser
1 Visualiser les statistiques 1.1 des statistiques à propos des analyses déjà faites 2
et les types des utilisateurs inscrits.
2 tant que prestataire, je dois m’inscrire à travers
2.1 0
S’inscrire un formulaire d’inscription sur la plateforme.
En tant qu’Influenceur, je dois m’inscrire à travers
2.2 0
un formulaire d’inscription sur la plateforme.
3 En tant que prestataire, je dois m’authentifier par
3.1 1
S’authentifier les accès de mon propre compte (Instagram ou Twitter).
En tant qu’Influenceur, je dois m’authentifier par
3.2 1
les accès de mon propre compte (Instagram ou Twitter).
En tant que prestataire, je dois m’authentifier par un email
3.3 1
et un mot de passe.
En tant qu’Influenceur, je dois m’authentifier par un email
3.4 1
et un mot de passe.
4 En tant que prestataire, je peux obtenir mes informations
4.1 1
Collecter les données personnelles.
En tant qu’influenceur, je peux obtenir mes informations
4.2 1
personnelles.
En tant que prestataire, je peux obtenir une collection
4.3 1
d’informations sur une personne (audience, genre et âge).
En tant qu’influenceur, je peux obtenir une collection
4.4 1
d’informations sur une personne (audience, genre et âge).
5 En tant que prestataire, je peux rechercher les utilisateurs
5.1 0
Rechercher utilisateur selon leurs noms d’utilisateur Instagram ou Twitter.
En tant qu’influenceur, je peux rechercher les utilisateurs
5.2 0
selon leurs noms d’utilisateur Instagram ou Twitter.

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.

Table 2.2 – Backlog de notre projet

20
CHAPITRE 2. SPRINT 0

2.4.3 Structure et découpage du projet :


Dans ce qui suit, nous présentons le découpage de notre projet en des incréments, nommés «
Sprint ». Un Sprint dure en général de trois à quatre semaines. Fonctionnellement, il est caractérisé
par une publication sur la production de différentes tâches effectuées. Dans la figure N◦ 4.3, nous
allons détailler les différentes Sprints qui vont aboutir au développement de notre projet.

Figure 2.3 – Sprints 3

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.

3.1 Découpage des fonctionnalitées :


Le premier sprint présente l’inscription, l’authentification et la collecte des données. Chaque
fonctionnalité est composée d’un ensemble de sous-tâches qui la détermine.

Id exigence User Story Id tâche Tâche


1.1 Réaliser les diagrammes de cas d’utilisation, de séquences
En tant que prestataire, je dois m’inscrire à travers 1.1A
et de classe de la fonctionnalité « s’inscrire »
un formulaire d’inscription sur l’application.
1.1B Développer la fonctionnalité « s’inscrire »
1.1C Tester la fonctionnalité « s’inscrire »
1.2 Réaliser les diagrammes de cas d’utilisation, de séquences
En tant qu’influenceur, je dois m’inscrire à travers 1.2A
et de classe de la fonctionnalité « s’inscrire »
un formulaire d’inscription sur l’application.
1.2B Développer la fonctionnalité « s’inscrire »
1.2C Tester la fonctionnalité « s’inscrire »
1.3 Réaliser les diagrammes de cas d’utilisation, de séquences et de classe
En tant qu’administrateur, je dois m’inscrire à travers 1.3A
de la fonctionnalité « s’inscrire »
un formulaire sur l’application (via une url cachée).
1.3B Développer la fonctionnalité « s’inscrire »
1.3C Tester la fonctionnalité « s’inscrire »
2.1 Réaliser les diagrammes des cas d’utilisation, de séquences et de classe
En tant que prestataire, je dois m’authentifier 2.1A
de la fonctionnalité «S’authentifier»
par mon propre compte (Instagram ou Twitter).
2.1B Développer la fonctionnalité « S’authentifier »
2.1C Tester la fonctionnalité « S’authentifier »
2.2 Réaliser les diagrammes des cas d’utilisation, de séquences et de classe
En tant qu’un influenceur, je dois m’authentifier 2.2A
de la fonctionnalité «S’authentifier»
par mon propre compte (Instagram ou Twitter).
2.2B Développer la fonctionnalité « S’authentifier »
2.2C Tester la fonctionnalité « S’authentifier »
2.3 Réaliser les diagrammes des cas d’utilisation, de séquences et de classe
En tant que prestataire, je dois m’authentifier 2.3A
de la fonctionnalité «S’authentifier»
par une adresse email et un mot de passe.
2.3B Développer la fonctionnalité « S’authentifier »
2.3C Tester la fonctionnalité « S’authentifier »
2.4 Réaliser les diagrammes des cas d’utilisation, de séquences et de classe
En tant qu’Influenceur, je dois m’authentifier 2.4A
de la fonctionnalité «S’authentifier»
par un adresse email et un mot de passe.
2.4B Développer la fonctionnalité « S’authentifier »
2.4C Tester la fonctionnalité « S’authentifier »
2.5 Réaliser les diagrammes des cas d’utilisation, de séquences et de classe
En tant qu’Administrateur, je dois m’authentifier 2.5A
de la fonctionnalité «S’authentifier»
par un adresse email et un mot de passe.
2.5B Développer la fonctionnalité « S’authentifier »
2.5C Tester la fonctionnalité « S’authentifier »
3.1 Réaliser les diagrammes des cas d’utilisation, de séquences et de classe
En tant que prestataire, je peux collecter 3.1A
de la fonctionnalité « Collecter les données »
mes informations personnelles.
3.1B Développer la fonctionnalité « Collecter les données »
3.1C Tester la fonctionnalité « Collecter les données »

23
CHAPITRE 3. SPRINT 1

Id exigence User Story Id tâche Tâche


3.2 Réaliser les diagrammes des cas d’utilisation, de séquences
En tant qu’influenceur, je peux collecter 3.2A
et de classe de la fonctionnalité « Collecter les données »
mes informations personnelles.
3.2B Développer la fonctionnalité « Collecter les données »
3.2C Tester la fonctionnalité « Collecter les données »
3.3 Réaliser les diagrammes des cas d’utilisation, de séquences
En tant que prestataire, je peux collecter 3.3A
et de classe de la fonctionnalité « Collecter les données »
un ensemble d’informations sur plusieurs personnes.
3.3B Développer la fonctionnalité « Collecter les données »
3.3C Tester la fonctionnalité « Collecter les données »
3.4 Réaliser les diagrammes des cas d’utilisation, de séquences
En tant qu’influenceur, je peux collecter 3.4A
et de classe de la fonctionnalité « Collecter les données »
un ensemble d’informations sur plusieurs personnes.
3.4B Développer la fonctionnalité « Collecter les données »
3.4C Tester la fonctionnalité « Collecter les données »
4.1 En tant qu’influenceur, je peux obtenir Réaliser les diagrammes des cas d’utilisation, de séquences
4.1A
une collection des informations sur les données diffusées et de classe de la fonctionnalité « Obtenir les données utilisateurs »
sur mon compte (la localisation, audience par genre et âge). 4.1B Développer la fonctionnalité « Obtenir les données utilisateurs »
4.1C Tester la fonctionnalité « Obtenir les données utilisateurs »
4.2 En tant que prestataire, je peux obtenir Réaliser les diagrammes des cas d’utilisation, de séquences
4.2A
une collection des informations sur les données sur l’application et de classe de la fonctionnalité « Obtenir les données utilisateurs »
(la localisation, audience par genre et âge). 4.2B Développer la fonctionnalité « Obtenir les données utilisateurs »
4.2C Tester la fonctionnalité « Obtenir les données utilisateurs »
4.3 En tant qu’influenceur, je peux obtenir Réaliser les diagrammes des cas d’utilisation, de séquences
4.3A
la liste des utilisateurs de l’application et de classe de la fonctionnalité « Obtenir les données utilisateurs »
et leurs données personnelles (la localisation, genre et âge). 4.3B Développer la fonctionnalité « Obtenir les données utilisateurs »
4.3C Tester la fonctionnalité « Obtenir les données utilisateurs »
4.4 En tant qu’influenceur, je peux obtenir Réaliser les diagrammes des cas d’utilisation, de séquences
4.4A
la liste des utilisateurs de l’application et de classe de la fonctionnalité « Obtenir les données utilisateurs »
et leurs données personnelles (la localisation, genre et âge). 4.4B Développer la fonctionnalité « Obtenir les données utilisateurs »
4.4C Tester la fonctionnalité « Obtenir les données utilisateurs »
5.1 Réaliser les diagrammes des cas d’utilisation, de séquences
En tant qu’influenceur, je peux 5.1A
et de classe de la fonctionnalité « Obtenir les données utilisateurs »
modifier mes données personnels de l’application.
5.1B Développer la fonctionnalité « Obtenir les données utilisateurs »
5.1C Tester la fonctionnalité « Obtenir les données utilisateurs »
5.2 Réaliser les diagrammes des cas d’utilisation, de séquences
En tant qu’influenceur, je peux 5.2A
et de classe de la fonctionnalité « Obtenir les données utilisateurs »
modifier mes données personnels de l’application.
5.2B Développer la fonctionnalité « Obtenir les données utilisateurs »
5.2C Tester la fonctionnalité « Obtenir les données utilisateurs »

Table 3.1 – Backlog du Sprint 1

3.2 Spécifications fonctionnelles :


Les diagrammes de cas d’utilisation sont des diagrammes UML utilisés pour donner une vi-
sion globale du comportement fonctionnel d’un système logiciel. Un cas d’utilisation représente
une unité discrète d’interaction entre un utilisateur (humain ou machine) et un système. Ces dia-
grammes sont utiles pour présenter les fonctionnalités déclenchées par les acteurs d’un projet.
Aussi, les cas d’utilisations sont appropriés pour le pilotage du processus de développement. Dès la
première étape de chaque itération, la spécification fonctionnelle se traduit par un diagramme de
cas d’utilisation afin de formaliser toutes les exigences. Un diagramme de cas d’utilisation permet
donc de comprendre les besoins des acteurs pour concrétiser leurs objectifs.

24
CHAPITRE 3. SPRINT 1

3.2.1 Classification des cas d’utilisation par acteurs :


Le tableau suivant comporte une spécification de toutes les fonctionnalités par acteur :

Acteur Cas d’utilisation

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.

Table 3.2 – Spécifications des fonctionnalités du Sprint 1

3.2.2 Diagramme de cas d’utilisation :


Cette figure illustre le diagramme des cas d’utilisation général du sprint 1 :

Figure 3.1 – Diagramme de cas d’utilisation Global du Sprint 1 1

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

3.2.3 Description textuelle des cas d’utilisation :


Nous avons établi les raffinements des cas d’utilisations pour livrer une description sur les
différents scénarios possibles.

3.2.3.1 Le cas d’utilisation « S’inscrire » :


Le diagramme de cas d’utilisation « S’inscrire » énumère les différentes actions relatives à
l’inscription.

Figure 3.2 – Diagramme de cas d’utilisation « S’inscrire » 2

Description textuelle du cas d’utilisation « S’inscrire » : Nous détaillons à travers le


tableau ci-dessous le cas d’utilisation « S’inscrire ».

Cas d’utilisation S’inscrire


Acteurs Utilisateurs ( Prestataires et Influenceurs).
Pré-condition Remplir tous les champs requis au formulaire.
Post-condition L’utilisateur s’inscrit sur l’application.
01 : L’utilisateur demande l’interface d’inscription.
02 : Le système affiche l’interface d’inscription par formulaire.
Scénario principal 02.1 : L’utilisateur remplit tous les champs.
02.2 : L’utilisateur confirme en cliquant le bouton « s’inscrire ».
02.3 : Le système vérifie les paramètres et effectue l’inscription.
Scénario alternatif S’il y a un champ vide, les données ne s’envoient pas.

Table 3.3 – Description textuelle du cas d’utilisation « S’inscrire »

26
CHAPITRE 3. SPRINT 1

3.2.3.2 Le cas d’utilisation « S’authentifier » :


Ce diagramme de cas d’utilisation « S’authentifier » décrit les différentes actions relatives à
l’authentification.

Figure 3.3 – Diagramme de cas d’utilisation « S’authentifier » 3

Description textuelle du cas d’utilisation « S’authentifier » : Nous détaillons à travers


le tableau ci-dessous le cas d’utilisation « S’authentifier ».

Cas d’utilisation S’authentifier


Acteurs Administrateurs et Utilisateurs (Prestataires et Influenceurs).
Avoir un compte enregistré sur l’application.
Pré-condition
L’email et le mot de passe saisis doivent être corrects.
Post-condition L’utilisateur doit s’authentifier.
01 : L’utilisateur demande l’interface d’authentification.
02 : Le système affiche l’interface d’authentification.
03 : L’utilisateur saisit son e-mail et son mot de passe.
Scénario principal
04 : L’utilisateur confirme en cliquant sur le bouton « Se connecter ».
05 : Le système vérifie les paramètres.
06 : Le système affiche le compte demandé.
Le système affiche un message d’erreur informant l’utilisateur
Scénario alternatif que son email et son mot de passe sont incorrects.
S’il y’ a un champ vide, les données ne s’envoient pas.

Table 3.4 – Description textuelle du cas d’utilisation « S’authentifier »

27
CHAPITRE 3. SPRINT 1

3.2.3.3 Le cas d’utilisation « Modifier Compte » :


Ce diagramme de cas d’utilisation présente les différentes actions relatives à la modification.

Figure 3.4 – Diagramme de cas d’utilisation « Modifier Compte » 4

Description textuelle du cas d’utilisation « Modifier Compte » : Nous détaillons à


travers le tableau ci-dessous le cas d’utilisation « Modifier compte ».

Cas d’utilisation Modifier Compte


Acteurs Administrateurs et Utilisateurs (Prestataires et Influenceurs).
Pré-condition Avoir un compte enregistré sur l’application.
Post-condition L’utilisateur doit être authentifié sur l’application.
01 : L’utilisateur demande l’interface de collection des données.
01.1 : Si l’utilisateur choisit de collecter ses données personnelles :
01.1.1 : Le système affiche une interface de connexion
au compte réseau social.
01.1.2 : L’utilisateur choisit l’application convenable en cliquant
sur l’un des deux boutons « Instagram » ou « Twitter ».
01.1.3 : L’utilisateur s’authentifie surInstagram ou sur Twitter.
Scénario principal 01.1.4 : Le système affiche l’interface sur laquelle les données du compte
Instagram ou Twitter sont collectées et structurées.
01.2 : Si l’utilisateur choisit de collecter les données d’un utilisateur
de réseaux sociaux :
01.2.1 : L’utilisateur saisit le nom d’utilisateur à chercher.
01.2.2 : L’utilisateur s’authentifie sur Instagram ou Twitter.
01.2.3 : Le système affiche l’interface sur laquelle les données du compte
Instagram ou Twitter sont collectées et structurées.
Si l’utilisateur n’est pas authentifié, le système affiche l’interface
de connexion sur Instagram ou Twitter.
Scénario alternatif
Le Système affiche un message d’erreur si le nom saisi par l’utilisateur
n’existe pas.

Table 3.5 – Description textuelle du cas d’utilisation « Modifier Compte »

28
CHAPITRE 3. SPRINT 1

3.2.3.4 Le cas d’utilisation « Collecter les données » :


Ce diagramme de cas d’utilisation « Collecter les données » énumère et détaille les différentes
actions relatives à la collection des données.

Figure 3.5 – Diagramme de cas d’utilisation « Collecter les données » 5

Description textuelle du cas d’utilisation « Collecter les données » : Nous détaillons


à travers le tableau ci-dessous le cas d’utilisation « Collecter les données ».

Cas d’utilisation Collecter les données


Acteurs Administrateurs et Utilisateurs (Prestataires et Influenceurs).
Pré-condition Avoir un compte enregistré sur l’application.
Post-condition L’utilisateur doit être authentifié sur l’application.
01 : L’utilisateur demande l’interface de Modification du compte.
02 : Le système affiche l’interface demandée.
03 : L’utilisateur saisit les nouveau données.
Scénario principal 04 : Le système affiche une interface de confirmation du mot de passe.
05 : Le système affiche une interface de confirmation du mot de passe.
06 : Le système vérifie les paramètres.
07 : Le système affiche un message de confirmation du modification validé.
Si le mot de passe est incorrect, le système informe un message d’erreur.
Scénario alternatif
Si aucun champ n’est rempli, le système affiche un message d’erreur.

Table 3.6 – Description textuelle du cas d’utilisation « Collecter les données »

29
CHAPITRE 3. SPRINT 1

3.2.3.5 Le cas d’utilisation « Obtenir les données » :


Ce diagramme de cas d’utilisation « Obtenir les données » détaille les différentes actions rela-
tives à l’obtention des données.

Figure 3.6 – Diagramme de cas d’utilisation « Obtenir les données » 6

Description textuelle du cas d’utilisation « Obtenir les données » : Nous détaillons à


travers le tableau ci-dessous le cas d’utilisation « Obtenir les données ».

Cas d’utilisation Obtenir les données


Acteurs Administrateurs et Utilisateurs (Prestataires et Influenceurs).
Pré-condition Avoir un compte enregistré sur l’application.
Post-condition L’utilisateur doit être authentifié sur l’application.
01 : L’utilisateur demande l’interface d’obtention de données
des utilisateur
02 : Le système affiche l’interface demandée.
Scénario principal
03 : L’utilisateur saisit le nom, domaine, âge, etc.
04 : Le système affiche une liste des utilisateurs qu’il ont les même
données que l’utilisateur saisit.
Si le champ de recherche n’est pas rempli, le système affiche
Scénario alternatif
un message d’erreur.

Table 3.7 – Description textuelle du cas d’utilisation « Obtenir les données »

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

3.3.1 Diagramme de séquences système détaillé


Le diagramme de séquences (DS) est un diagramme d’interaction entre les objets, qui met
l’accent sur le classement des messages par ordre chronologique durant l’exécution du système.
Le DS est utilisé pour représenter certains aspects dynamiques d’un système : dans le contexte
d’une opération, d’un système, d’un sous système, d’un cas d’utilisation (un scénario d’un cas
d’utilisation) selon un point de vue temporel.

3.3.1.1 Diagramme de séquences système du cas «S’inscrire» :


Chaque utilisateur doit s’inscrire à travers un formulaire d’inscription sur l’application. S’il y a
des données manquantes, le système informe un message d’erreur. Cette figure décrit le diagramme
de séquences système «S’inscrire».

Figure 3.7 – Diagramme de séquences système du cas «S’inscrire» 7

31
CHAPITRE 3. SPRINT 1

3.3.1.2 Diagramme de séquences système du cas «S’authentifier» :


Le diagramme de séquences du premier cas d’utilisation dans notre sprint prouver l’authenti-
fication des utilisateurs. Chaque utilisateur doit s’authentifier par son email et son mot de passe
afin d’accéder à son espace sur l’application. S’il y a un champ non saisi ou l’identifiant est in-
correct, le système affiche un message d’erreur. Cette figure illustre le diagramme de séquences
«S’authentifier» :

Figure 3.8 – Diagramme de séquences système du cas «S’authentifier» 8

32
CHAPITRE 3. SPRINT 1

3.3.1.3 Diagramme de séquences système du cas « Modifier compte » :


Après l’authentification, chaque utilisateur peut modifier ses informations personnelles (Nom
d’utilisateur, âge,etc.). Si le mot de passe est incorrect, le système informe un message d’erreur.
La figure suivante illustre e diagramme de séquences système «Modifier compte» :

Figure 3.9 – Diagramme de séquences système du cas « Modifier compte » 9

33
CHAPITRE 3. SPRINT 1

3.3.1.4 Diagramme de séquences système du cas «Collecter les données» :


Après l’authentification, chaque utilisateur peut obtenir ses informations personnelles, et aussi
il peut recevoir une collection d’informations sur plusieurs personnes recherchées. Si le nom n’existe
pas, le système envoie un message d’erreur.
La figure ci-dessous illustre le diagramme de séquences système «Collecter les données» :

Figure 3.10 – Diagramme de séquences système du cas «Collecter les données» 10

34
CHAPITRE 3. SPRINT 1

3.3.1.5 Diagramme de séquences système du cas «Obtenir les données» :


Après l’authentification, l’utilisateur (en tant que prestataire ou bien influenceur) peut obtenir
les données personnelles ainsi que les données sur les utilisateurs de l’application.
Cette figure détaille le diagramme de séquences-système «Obtenir les données» :

Figure 3.11 – Diagramme de séquences système du cas «Obtenir les données» 11

35
CHAPITRE 3. SPRINT 1

3.3.1.6 Diagramme de séquences système détaillé «S’authentifier» :


Dans cette partie nous présentons le diagramme de séquences détaillés pour le cas d’utilisation
«S’authentifier». Cette figure représente le diagramme de séquences système «S’authentifier» :

Figure 3.12 – Diagramme de séquences système du cas «S’authentifier» 12

36
CHAPITRE 3. SPRINT 1

3.3.2 Diagramme de classe global du premier sprint :


Le diagramme de classes est considéré comme la plus importante illustration de la modélisa-
tion orientée objet qui décrit la structure d’un système en montrant les classes du système, leurs
attributs, leurs opérations et les relations entre les objets. La figure ci-dessous décrit le diagramme
de classes global du premier sprint requis pour développer le premier incrément de produit.

Figure 3.13 – Diagramme de class du Sprint 1 13

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.

Attribut Type Contrainte


UtilisateurID INT Primary Key
NomCompket Varchar(30) Not Null
NomUtilisateur Varchar(30) Not Null
email Varchar(50) Unique,Not Null
MotPasse Varchar(30) Not Null
Ville Varchar(60) Not Null
Rôle BOOLEAN Not Null
Age INT Not Null

Table 3.8 – Table Utilisateur

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

3.5.1 Partie Front-end :


3.5.1.1 L’interface de l’inscription :
La figure ci-dessous illustre le formulaire d’inscription pour les utilisateurs sur notre application :

Figure 3.14 – Interface Inscription 14

39
CHAPITRE 3. SPRINT 1

La figure ci-dessous présente le formulaire d’inscription pour l’administrateur sur notre appli-
cation :

Figure 3.15 – Interface Inscription Administrateur 15

40
CHAPITRE 3. SPRINT 1

3.5.1.2 L’interface d’authentification :


Cette interface représente le formulaire de l’authentification pour les utilisateurs sur l’applica-
tion. Si l’authentification est correcte, l’utilisateur aura accès aux différents modules.

Figure 3.16 – Interface Authentification 16

Cette interface représente le formulaire de l’authentification pour l’administrateur sur l’appli-


cation.

Figure 3.17 – Interface Authentification administrateur 17

41
CHAPITRE 3. SPRINT 1

3.5.1.3 L’interface d’obtention de données :


L’utilisateur peut obtenir ses informations personnelles ainsi que des informations sur les uti-
lisateurs du plateforme après la validation d’un formulaire de recherche affiné.

Figure 3.18 – Interface Obtentir les données 18

3.5.1.4 L’interface de modification de Compte :


Cette figure illustre l’interface qui va permettre à un utilisateur de modifier ses données per-
sonnelles.

42
CHAPITRE 3. SPRINT 1

Figure 3.19 – Interface Modifier Compte 19

3.5.2 Partie Back-end :


Dans cette partie on a declaré que trois résultat des modules developpés car les restes ont la
meme format et aussi une résultat de petite taille se trouve dessous pour être claire à lire.

3.5.2.1 Module ’getUserProfile ’ :


La figure ci-dessous expose la console résultat d’une requête de recherche des données issues
d’un compte Instagram :

Figure 3.20 – Resultat module ’GetUserProfile’ 20

43
CHAPITRE 3. SPRINT 1

3.5.2.2 Module ’getMyFeed ’ :


La figure ci-dessous consiste à un résultat sur la console suite à une requête de demande de
recueil des publications Instagram publié par un utilisateur sur son compte :

Figure 3.21 – Resultat module ’GetMyFeed’ 21

3.5.2.3 Module ’getLocationFeed’ :


La figure ci-dessous montre l’obtention des données sur une localisation cherché par notre
utilisateur.

Figure 3.22 – Resultat module ’GetLocationFeed’ 22

44
CHAPITRE 3. SPRINT 1

3.5.3 Logo officiel de la plateforme :


La figure ci-dessous expose le logo de notre plateforme, on a choisi d’utiliser les couleurs des
logos d’Instagram et de Twitter dont notre plateforme donne un service ciblé aux utilisateurs de
ces réseaux sociaux, aussi l’abréviation du nom du projet et An pour analyse, I pour Instagram,
T pour Twitter et finalement IT est l’abréviation anglaise de ’Information Technology’.

Figure 3.23 – Logo du plateforme 23

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.

4.1 Découpage des fonctionnalitées :


Le deuxieme incrément (sprint) présente la filtration des utilisateurs, la recherche d’utilisateur,
la visualisation des données, l’analyse des données et finallement la filtration des données.

Id exigence User Story Id tâche Tâche


6.1 En tant que prestataire, je peux rechercher Réaliser les diagrammes de cas d’utilisation, de séquences
6.1A
les utilisateurs selon leurs nom d’utilisateur et de classes de la fonctionnalité « rechercher utilisateur »
Instagram ou Twitter. 6.1B Développer la fonctionnalité « rechercher utilisateur »
6.1C Tester la fonctionnalité « rechercher utilisateur »
6.2 En tant qu’influenceur, je peux rechercher Réaliser les diagrammes de cas d’utilisation, de séquences
6.2A
les utilisateurs selon leurs nom d’utilisateur et de classes de la fonctionnalité « rechercher utilisateur »
Instagram ou Twitter. 6.2B Développer la fonctionnalité « rechercher utilisateur »
6.2C Tester la fonctionnalité « rechercher utilisateur »
7.1 En tant qu’Influenceur, je peux obtenir Réaliser les diagrammes de cas d’utilisation, de séquences
7.1A
une analyse des données sur les données collectées et de classes de la fonctionnalité « analyser les données »
sur mon compte. 7.1B Développer la fonctionnalité « analyser les données »
7.1C Tester la fonctionnalité « analyser les données »
7.2 En tant que prestataire, je peux obtenir Réaliser les diagrammes de cas d’utilisation, de séquences
7.2A
une analyse des données sur les données collectées et de classes de la fonctionnalité « analyser les données »
sur mon compte. 7.2B Développer la fonctionnalité « analyser les données »
7.2C Tester la fonctionnalité « analyser les données »
7.3 En tant qu’Influenceur, je peux obtenir Réaliser les diagrammes de cas d’utilisation, de séquences
7.3A
une analyse des données sur les données collectées et de classes de la fonctionnalité « analyser les données »
sur le compte d’un autre utilisateur Instagram. 7.3B Développer la fonctionnalité « analyser les données »
7.3C Tester la fonctionnalité « analyser les données »
7.4 En tant que prestataire, je peux obtenir Réaliser les diagrammes de cas d’utilisation, de séquences
7.4A
une analyse des données sur les données collectées et de classes de la fonctionnalité « analyser les données »
sur le compte d’un autre utilisateur Instagram. 7.4B Développer la fonctionnalité « analyser les données »
7.4C Tester la fonctionnalité « analyser les données »
Réaliser les diagrammes des cas d’utilisation, de
8.1 En tant que prestataire, je peux avoir 8.1A séquences et de classes de la fonctionnalité
une visualisation sur les données analysées. « Visualiser les données »
8.1B Développer la fonctionnalité « Visualiser les données »
8.1C Tester la fonctionnalité « Visualiser les données »
8.2 Réaliser les diagrammes des cas d’utilisation, de séquences
En tant qu’influenceur, je peux avoir 8.2A
et de classes de la fonctionnalité « Visualiser les données »
une visualisation sur les données analysées.
8.2B Développer la fonctionnalité « Visualiser les données »
8.2C Tester la fonctionnalité « Visualiser les données »
9.1 En tant que prestataire, je peux filtrer Réaliser les diagrammes des cas d’utilisation, de séquences
9.1A
les utilisateurs par le domaine, ville, et de classes de la fonctionnalité « filtrer les utilisateurs »
nom d’utilisateur, genre et âge. 9.1B Développer la fonctionnalité « filtrer les utilisateurs »
9.1C Tester la fonctionnalité « filtrer les utilisateurs »

47
CHAPITRE 4. SPRINT 2

Id exigence User Story Id tâche Tâche


9.2 En tant qu’influenceur, je peux filtrer Réaliser les diagrammes des cas d’utilisation, de séquences
9.2A
les utilisateurs par le domaine, ville, et de classes de la fonctionnalité « filtrer les utilisateurs »
nom d’utilisateur, genre et âge. 9.2B Développer la fonctionnalité « filtrer les utilisateurs »
9.2C Tester la fonctionnalité « filtrer les utilisateurs »
10.1 En tant qu’agent système « Moteur Filtrage», Réaliser les diagrammes des cas d’utilisation, de séquences
10.1A
je dois filtrer automatiquement les données et de classes de la fonctionnalité « filtrer les données »
obtenues de l’Instagram ou Twitter. 10.1B Développer la fonctionnalité « Filtrer les données »
10.1C Tester la fonctionnalité « Filtrer les données »

Table 4.1 – Backlog du Sprint 2

4.2 Spécifications fonctionnelles :


4.2.1 Classification des cas d’utilisation par acteurs :
Le tableau ci-dessous comporte la spécification de toutes les fonctionnalités par acteur :

Acteur Cas d’utilisation

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.

Table 4.2 – Spécifications des fonctionnalités du Sprint 2

48
CHAPITRE 4. SPRINT 2

4.2.2 Diagramme de cas d’utilisation :


Cette figure décrit le diagramme des cas d’utilisation initial du sprint 2 :

Figure 4.1 – Diagramme de cas d’utilisation Global du Sprint 2 1

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.

4.2.3 Description textuelle des cas d’utilisation :


Nous avons établi les raffinements des cas d’utilisations pour livrer une description sur les
différents scénarios possibles.

49
CHAPITRE 4. SPRINT 2

4.2.3.1 Le cas d’utilisation « Filtrer les utilisateurs » :


Ce diagramme de cas d’utilisation « Filtrer les utilisateurs » nous montre les différentes actions
relatives à la filtration des utilisateurs.

Figure 4.2 – Diagramme de cas d’utilisation « Filtrer les utilisateurs » 2

Description textuelle du cas d’utilisation « Filtrer les utilisateurs » : Nous détaillons


à travers le tableau ci-dessous le cas d’utilisation « Filtrer les utilisateurs ».

Cas d’utilisation Filtrer les utilisateurs


Acteurs Administrateurs et Utilisateurs ( Prestataires et Influenceurs).
Pré-condition L’utilisateur doit s’authentifier.
Post-condition L’utilisateur s’inscrit sur l’application.
01 : L’utilisateur s’authentifier à la plateforme.
02 : L’utilisateur accéder à la barre de recherche et écris
Scénario principal
le domaine, ville, nom d’utilisateur, genre ou l’âge.
03 : Le système vérifie les données et renvoyer la liste demandée.
Le système affiche un message d’erreur si les données n’existe
Scénario alternatif
pas dans la base de données.
Table 4.3 – Description textuelle du cas d’utilisation « Filtrer les utilisateurs »

50
CHAPITRE 4. SPRINT 2

4.2.3.2 Le cas d’utilisation « Rechercher utilisateur » :


Ce diagramme de cas d’utilisation « Recherche utilisateur » nous montre les différentes actions
relatives à la recherche d’utilisateur.

Figure 4.3 – Diagramme de cas d’utilisation « Rechercher utilisateur » 3

Description textuelle du cas d’utilisation « Rechercher utilisateur » : Nous détaillons


à travers le tableau ci-dessous le cas d’utilisation « Rechercher utilisateur ».

Cas d’utilisation Rechercher utilisateur


Acteurs Administrateurs et Utilisateurs ( Prestataires et Influenceurs).
L’utilisateur est authentifiés sur la plateforme et sur le compte
Pré-condition
réseau social.
Avoir un compte
Post-condition
enregistré sur la plateforme et un compte enregistré sur Instagram ou Twitter.
01 : L’utilisateur saisit le nom d’utilisateur à rechercher.
Scénario principal 02 : L’utilisateur confirme en cliquant sur le bouton « rechercher ».
03 : Le système vérifie les paramètres et affiche le compte demandé.
Scénario alternatif Le système affiche un message d’erreur si le nom d’utilisateur n’existe pas.

Table 4.4 – Description textuelle du cas d’utilisation « Rechercher utilisateur »

51
CHAPITRE 4. SPRINT 2

4.2.3.3 Le cas d’utilisation « Visualiser les données » :


Ce diagramme de cas d’utilisation « Visualiser les données » nous montre les différentes actions
relatives à la visualisation.

Figure 4.4 – Diagramme de cas d’utilisation « Visualiser les données » 4

Description textuelle du cas d’utilisation « Visualiser les données » : Nous détaillons


à travers le tableau ci-dessous le cas d’utilisation « Visualiser les données ».

Cas d’utilisation Visualiser les données


Acteurs Administrateurs et Utilisateurs ( Prestataires et Influenceurs).
L’utilisateur est authentifiés sur la plateforme et sur le compte
Pré-condition
du réseau social.
Avoir un compte
Post-condition
enregistré sur la plateforme et un compte enregistré sur Instagram ou Twitter.
01 : L’utilisateur demande l’interface (l’une des interfaces des analyses de données).
02 : Le sytème renvoi l’interface demandée.
Scénario principal 02.1 : L’utilisateur saisit les données.
02.2 : Le système vérife les données et affiche l’interface de visualisation demandée.
03 : Le système vérifie les paramètres et affiche le compte demandé.
Scénario alternatif Le système affiche un message d’erreur si le nom d’utilisateur n’existe pas.

Table 4.5 – Description textuelle du cas d’utilisation « Visualiser les données »

52
CHAPITRE 4. SPRINT 2

4.2.3.4 Le cas d’utilisation « Analyser les données » :


Ce diagramme de cas d’utilisation « Analyser les données » nous montre les différentes actions
relatives à l’analyse qu’on peut faire.

Figure 4.5 – Diagramme de cas d’utilisation « Analyser les données » 5

Description textuelle du cas d’utilisation « Analyser les données » : Nous détaillons


à travers le tableau ci-dessous le cas d’utilisation « Analyser les données ».

Cas d’utilisation Analyser les données


Acteurs Administrateurs et Utilisateurs ( Prestataires et Influenceurs).
Avoir un compte
Pré-condition
enregistré sur la plateforme et un compte enregistré sur Instagram ou Twitter.
L’utilisateur est authentifiés sur la plateforme et sur le compte
Post-condition
du réseau social.
01 : L’utilisateur est authentifiés sur la plateforme et sur le compte du réseau social.
Scénario principal
02 : Le système affiche l’interface demandée.
Le système affiche un message d’erreur si l’interface demandée requis
Scénario alternatif
des données saisit par l’utilisateur et qu’il sont incorrecte.

Table 4.6 – Description textuelle du cas d’utilisation « Analyser les données »

53
CHAPITRE 4. SPRINT 2

4.2.3.5 Le cas d’utilisation « Filtrer les données » :


Ce diagramme de cas d’utilisation « Filtrer les données » nous montre les différentes actions
relatives à la filtration des données faite.

Figure 4.6 – Diagramme de cas d’utilisation « Filtrer les données » 6

Description textuelle du cas d’utilisation « Filtrer les données » : Nous détaillons à


travers le tableau ci-dessous le cas d’utilisation « Filtrer les données ».

Cas d’utilisation Filtrer les données


Acteurs Administrateurs et Utilisateurs ( Prestataires et Influenceurs).
Avoir un compte enregistré sur la plateforme et un compte
Pré-condition
enregistré sur Instagram ou Twitter.
L’utilisateur est authentifiés sur la plateforme et sur le compte
Post-condition
du réseau social.
01 : L’utilisateur demande l’interface de collection des données.
Scénario principal
02 : Le système affiche l’interface demandée après filtration.
Le système affiche un message d’erreur si l’interface demandée requis
Scénario alternatif
des données saisit par l’utilisateur et qu’il sont incorrecte.

Table 4.7 – Description textuelle du cas d’utilisation « Filtrer les données »

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

4.3.1 Diagramme de séquences système détaillé :


4.3.1.1 Diagramme de séquences système du cas «Analyser les données» :
Le diagramme de séquences du premier cas d’utilisation dans notre sprint expliquer l’analyse
des données . Cette figure décrit le diagramme de séquences «Analyser les données» :

Figure 4.7 – Diagramme de séquences système du cas «Analyser les données»

55
CHAPITRE 4. SPRINT 2

4.3.1.2 Diagramme de séquences système du cas « Rechercher utilisateur » :


Après avoir authentifié, le prestataire peut rechercher les influenceurs, et l’influenceur peut
rechercher les prestataire selon leurs adresses Instagram ou Twitter. Si l’adresse n’existe pas, le
système informe un message d’erreur.
Cette figure expose le diagramme de séquences système «Rechercher utilisateur» :

Figure 4.8 – Diagramme de séquences système du cas « Rechercher utilisateur »

56
CHAPITRE 4. SPRINT 2

4.3.1.3 Diagramme de séquences système du cas « Filtrer les utilisateurs » :


Après l’authentification, le prestataire peut filtrer les influenceurs par le domaine, ville, nom
d’utilisateur, audience par genre et âge. Et c’est le même pour l’influenceur. Si les données est incor-
rect ou n’existe pas, le système informe un message d’erreur. Cette figure représente le diagramme
de séquences système « Filtrer les utilisateurs »

Figure 4.9 – Diagramme de séquences système du cas « Filtrer les utilisateurs »

57
CHAPITRE 4. SPRINT 2

4.3.1.4 Diagramme de séquences système du cas « Filtrer les données » :


Dans cette partie nous présentons le diagramme de séquences pour le cas d’utilisation «filtrer
les données». Cette figure montre le diagramme de séquences système « Filtrer les données » :

Figure 4.10 – Diagramme de séquence système du cas « Filtrer les données »

58
CHAPITRE 4. SPRINT 2

4.3.1.5 Diagramme de séquences système du cas « Visualiser les données » :


Dans cette partie nous présentons le diagramme de séquences pour le cas d’utilisation «Visua-
liser les données». Cette figure décrit le diagramme de séquences «Visualiser les données» :

Figure 4.11 – Diagramme de séquences système du cas « Visualiser les données »

59
CHAPITRE 4. SPRINT 2

4.3.2 Diagramme de classe global du deuxième sprint :


La figure ci-dessous illustre le diagramme de classe global relatif au deuxième sprint.

Figure 4.12 – Diagramme de class du Sprint 2 7

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.

Attribut Type Contrainte


UtilisateurID INT Primary Key
Requette Varchar(50) Not Null
TempsRecherche Varchar(400) Not Null
EmplacementDuPrestataire Varchar(50) Not Null
NbAmisCommuns INT Not Null
NbrRecherche INT Not Null
NrFollowers INT Not Null
NrFollowing INT Not Null

Table 4.8 – Table Requette

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.

Figure 4.13 – Interface Filtrer les utilisateurs 8

61
CHAPITRE 4. SPRINT 2

4.5.1.2 Les interfaces de Rechercher Utilisateur :


Chaque utilisateur peut faire des recherches sur plusieurs personnes publiques selon leurs
adresses Instagram ou Twitter . Ces figures représentent l’interface de recherche :

Figure 4.14 – Interface Rechercher Utilisateur 1 9

Figure 4.15 – Interface Profile Utilisateur 10

62
CHAPITRE 4. SPRINT 2

Figure 4.16 – Interface Mur Utilisateur 11

Figure 4.17 – Interface Exemple des abonnées 12

63
CHAPITRE 4. SPRINT 2

Figure 4.18 – Interface Rechercher Localisation 5 13

Figure 4.19 – Interface Mur Hashtag 14

64
CHAPITRE 4. SPRINT 2

4.5.1.3 Les interfaces de l’Analyse des données :


Chaque utilisateur peut obtenir des analyses sur les données collectées sur le compte d’un autre
utilisateur Instagram.Les figures ci-dessous décrivent les interfaces d’analyse des données :

Figure 4.20 – Interface Analyse des données 1 15

Figure 4.21 – Interface Analyse des données 2 16

65
CHAPITRE 4. SPRINT 2

Figure 4.22 – Interface Analyse des données 3 17

Figure 4.23 – Interface Analyse des données 4 18

66
CHAPITRE 4. SPRINT 2

Figure 4.24 – Interface Analyse des données 5 19

Figure 4.25 – Interface Analyse des données 6 20

67
CHAPITRE 4. SPRINT 2

4.5.2 Partie Back-end :


4.5.2.1 Module ’getUserProfileAnalyse’ :
La figure ci-dessous expose la console résultat d’une requête de recherche des données issuesd’un
compte Instagram

Figure 4.26 – Resultat module ’getUserProfileAnalyse’ 21

4.5.2.2 Module ’getCommentsListAnalyse’ :


La figure ci-dessous expose la console résultat d’une requête de recherche des données issuesd’un
compte Instagram

Figure 4.27 – Interface Filtrer les utilisateurs 22

68
CHAPITRE 4. SPRINT 2

4.5.2.3 Module ’getPostsEvolutionAnalyse’ :


La figure ci-dessous expose la console résultat d’une requête de recherche des données issuesd’un
compte Instagram

Figure 4.28 – Interface Filtrer les utilisateurs 23

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.

5.1 Découpage des fonctionnalitées :


Ce tableau centralise les fonctionnalités de ce troisième sprint :

Id exigence User Story Id tâche Tâche


11.1 Réaliser les diagrammes de cas d’utilisation, de séquences
En tant que prestataire, je peux ajouter 11.1A
et de classe de la fonctionnalité « Ajouter compte »
un autre compte de réseau sociaux.
11.1B Développer la fonctionnalité « Ajouter compte »
11.1C Développer la fonctionnalité « Ajouter compte »
11.2 Réaliser les diagrammes de cas d’utilisation, de séquences
En tant qu’influenceur, je peux ajouter 11.2A
et de classe de la fonctionnalité « Ajouter compte »
un autre compte de réseau sociaux.
11.2B Développer la fonctionnalité « Ajouter compte »
11.2C Tester la fonctionnalité « Ajouter compte »
12.1 Réaliser les diagrammes de cas d’utilisation, de séquences
En tant que prestataire, je peux donner 12.1A
et de classe de la fonctionnalité « Interagir avec la plateforme »
mon avis à propos la plateforme, ou les influenceurs.
12.1B Développer la fonctionnalité « Interagir avec la plateforme »
12.1C Tester la fonctionnalité « Interagir avec la plateforme »
12.2 Réaliser les diagrammes de cas d’utilisation, de séquences
En tant qu’influenceur, je peux donner 12.2A
et de classe de la fonctionnalité « Interagir avec la plateforme »
mon avis à propos la plateforme, ou les influenceurs.
12.2B Développer la fonctionnalité « Interagir avec la plateforme »
12.2C Tester la fonctionnalité « Interagir avec la plateforme »
13.1 En tant que prestataire je peux avoir Réaliser les diagrammes des cas d’utilisation, de séquences
13.1A
des notifications à propos et de classe de la fonctionnalité « Gérer les notifications »
les nouveautés de la plateforme, ou les avis des utilisateurs. 13.1B Développer la fonctionnalité « Gérer les notifications »
13.1C Tester la fonctionnalité « Gérer les notifications »
13.2 En tant qu’influenceur je peux avoir Réaliser les diagrammes des cas d’utilisation, de séquences
13.2A
des notifications à propos et de classe de la fonctionnalité « Gérer les notifications »
les nouveautés de la plateforme, ou les avis des utilisateurs. 13.2B Développer la fonctionnalité « Gérer les notifications »
13.2C Tester la fonctionnalité « Gérer les notifications »
14.1 En tant que prestataire, je peux avoir Réaliser les diagrammes des cas d’utilisation, de séquences
14.1A
des statistiques à propos les interactions et de classe de la fonctionnalité « Visualiser statistique »
des utilisateurs avec la plateforme. 14.1B Développer la fonctionnalité « Visualiser statistique »
14.1C Tester la fonctionnalité « Visualiser statistique »
14.2 En tant qu’influenceur, je peux Réaliser les diagrammes des cas d’utilisation, de séquences
14.2A
des statistiques à propos les interactions et de classe de la fonctionnalité « Visualiser statistique »
des utilisateurs avec la plateforme. 14.2B Développer la fonctionnalité « Visualiser statistique »
14.2C Tester la fonctionnalité « Visualiser statistique »
15.1 Réaliser les diagrammes des cas d’utilisation, de séquences
En tant qu’administrateur, je peux donner ou lever 15.1A
et de classe de la fonctionnalité « Gérer les rôles »
des accès pour les droits pour un rôle spécifique.
15.1B Développer la fonctionnalité « Gérer les rôles »
15.1C Tester la fonctionnalité « Gérer les rôles »
16.1 En tant qu’administrateur, je peux supprimer Réaliser les diagrammes des cas d’utilisation, de séquences
16.1A
les utilisateurs ou leurs commentaires et de classe de la fonctionnalité « Contrôler les utilisateurs »
(à propos la plateforme ou les utilisateurs). 16.1B Développer la fonctionnalité « Contrôler les utilisateurs »
16.1C Tester la fonctionnalité « Contrôler les utilisateurs »

71
CHAPITRE 5. SPRINT 3

17.1 Réaliser les diagrammes des cas d’utilisation, de séquences


En tant qu’administrateur, je peux ajouter, 17.1A
et de classe de la fonctionnalité « Gérer l’accueil »
modifier ou supprimer le contenu de la page d’accueil.
17.1B Développer la fonctionnalité « Gérer l’accueil »
17.1C Tester la fonctionnalité « Gérer l’accueil »

Table 5.1 – Backlog du Sprint 3

5.2 Spécifications fonctionnelles :


5.2.1 Classification des cas d’utilisation par acteur :
La figure suivant justifier une affectation de toutes les fonctionnalités par acteur :

Acteur Cas d’utilisation

Gérer les rôles.


Administrateur Contrôler les utilisateurs.
Gérer l’accueil.
Ajouter compte.
Interagir avec la plateforme.
Influenceur
Gérer les notifications.
Visualiser statistique.

Ajouter compte.
Interagir avec la plateforme.
Prestataire
Gérer les notifications.
Visualiser statistique.

Table 5.2 – Spécifications des fonctionnalités du Sprint 3

72
CHAPITRE 5. SPRINT 3

5.2.2 Diagramme de cas d’utilisation :

Figure 5.1 – Diagramme de cas d’utilisation Global du Sprint 3 1

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».

5.2.3 Description textuelle des cas d’utilisation :


Dans cette partie, nous avons énoncé une description plus détaillé sur les différents scénarios
possibles des cas d’utilisations.

73
CHAPITRE 5. SPRINT 3

5.2.3.1 Le cas d’utilisation « Ajouter compte » :


Ce premier diagramme signifiait le cas d’utilisation « Ajouter compte » :

Figure 5.2 – Diagramme de cas d’utilisation « Ajouter compte » 2

Description textuelle du cas d’utilisation « Ajouter compte » : Nous détaillons à


travers le tableau ci-dessous le cas d’utilisation « Ajouter compte » :

Cas d’utilisation Ajouter compte


Acteurs Utilisateurs ( Prestataires et Influenceurs).
Pré-condition L’utilisateur doit s’authentifier.
Post-condition L’utilisateur s’inscrit sur l’application.
01 : L’utilisateur demande l’interface d’ajout de compte.
02 : Le système renvoi la page d’authentification sur Instagram ou Twitter.
Scénario principal 03 : Notre utilisateur choisi la plateforme convenable et saisit son nom
d’utilisateur et mot de passe.
04 : Le système lui informe le succès de connexion.
Le système affiche un message d’erreur
Scénario alternatif
si les données saisies par l’utilisateur incorrectes.

Table 5.3 – Description textuelle du cas d’utilisation « Ajouter compte »

74
CHAPITRE 5. SPRINT 3

5.2.3.2 Le cas d’utilisation « Interagir avec la plateforme » :


Cette figure énonçait le diagramme de cas d’utilisation « Interagir avec la plateforme » :

Figure 5.3 – Diagramme de cas d’utilisation « Interagir avec la plateforme » 3

Description textuelle du cas d’utilisation « Interagir avec la plateforme » : Nous


exposons à travers ce tableau le cas d’utilisation « Interagir avec la plateforme » :

Cas d’utilisation Interagir avec la plateforme


Acteurs Utilisateurs ( Prestataires et Influenceurs).
Pré-condition L’utilisateur doit s’authentifier.
Post-condition L’utilisateur s’inscrit sur l’application.
01 : L’utilisateur demande l’interface d’avis.
02 : Le système renvoi la page demandée.
03 : Notre utilisateur choisi la plateforme ou donne le nom
Scénario principal
d’utilisateur à propos qu’il parle, saisit son commentaire et le valide
avec en cliquant le bouton ‘Envoyer’.
04 : Notre système affiche un message d’enregistrement avec succès.
Le système affiche un message d’erreur
Scénario alternatif
si le nom d’utilisateur mentionnée n’existe pas.

Table 5.4 – Description textuelle du cas d’utilisation « Interagir avec la plateforme »

75
CHAPITRE 5. SPRINT 3

5.2.3.3 Le cas d’utilisation « Gérer les notifications » :


Ce diagramme montre le cas d’utilisation « Gérer les notifications » :

Figure 5.4 – Diagramme de cas d’utilisation « Gérer les notifications » 4

Description textuelle du cas d’utilisation « Gérer les notifications » : Nous précisons


à travers le tableau ci-dessous le cas d’utilisation « Gérer les notifications » :

Cas d’utilisation Gérer les notifications


Acteurs Utilisateurs ( Prestataires et Influenceurs).
Pré-condition L’utilisateur doit s’authentifier.
Post-condition L’utilisateur s’inscrit sur l’application.
01 : L’utilisateur demande l’interface d’ajout de compte.
02 : Le système renvoi la page d’authentification sur Instagram ou Twitter.
Scénario principal 03 : Notre utilisateur choisi la plateforme convenable et saisit son nom
d’utilisateur et mot de passe.
04 : Le système lui informe le succès de connexion.
Le système affiche un message d’erreur
Scénario alternatif
si les données saisies par l’utilisateur incorrectes.

Table 5.5 – Description textuelle du cas d’utilisation « Gérer les notifications »

76
CHAPITRE 5. SPRINT 3

5.2.3.4 Le cas d’utilisation « Visualiser statistique » :


Le diagramme suivant montre le cas d’utilisation « Visualiser statistique» :

Figure 5.5 – Diagramme de cas d’utilisation « Visualiser statistique » 5

Description textuelle du cas d’utilisation « Visualiser statistique » : Le tableau ci-


dessous nous donnes plus de détails à propos le cas d’utilisation « Visualiser statistique » :

Cas d’utilisation Visualiser statistique


Internaute, Administrateur et Utilisateurs
Acteurs
(prestataires et influenceur).
Pré-condition
Post-condition
01 : Le visiteur demande la page d’accueil.
Scénario principal 02 : Le système renvoi l’interface demandée dont
des analyses, statistiques, articles,influenceur le plus recherché, etc.
Scénario alternatif

Table 5.6 – Description textuelle du cas d’utilisation « Visualiser statistique »

77
CHAPITRE 5. SPRINT 3

5.2.3.5 Le cas d’utilisation « Gérer les rôles » :


Ce diagramme montre le cas d’utilisation « Gérer les rôles » :

Figure 5.6 – Diagramme de cas d’utilisation « Gérer les rôles » 6

Description textuelle du cas d’utilisation « Gérer les rôles » : Le diagramme au dessous


nous montre le cas d’utilisation « Gérer les rôles » :

Cas d’utilisation Gérer les rôles


Acteurs Administrateur.
Pré-condition L’administrateur doit être authentifié.
Post-condition L’administrateur s’inscrit sur la plateforme.
01 : L’administrateur demande l’interface de gestion des rôles.
02 : Le système renvoi la page demandée.
03 : L’administrateur choisit le rôle ( prestataire ou influenceur )
qu’il veut modifier ses droits sur la plateforme et demande la liste
des droits.
04 : Le système affiche une liste contenant toutes les accès possibles
sur la plateforme.
Scénario principal 05 : L’administrateur coche le droit qu’il veut donner au rôle
ou décoche le droit qu’il veut l’enlever pour le rôle choisi et confirme
en cliquant sur le bouton ‘Valider’..
06 : Le système affiche une alerte demande la confirmation
du changement.
07 : L’administrateur confirme en cliquant le bouton ‘Confirmer’.
08 : Le système traite la requête donné et renvoi
une alerte de succès du changement.
Le système affiche un message d’erreur si l’utilisateur n’est pas
Scénario alternatif connecté en tant qu’administrateur.
Une alerte apparu si l’administrateur n’a changé aucun droit.

Table 5.7 – Description textuelle du cas d’utilisation « Gérer les rôles »

78
CHAPITRE 5. SPRINT 3

5.2.3.6 Le cas d’utilisation « Contrôler les utilisateurs » :


Ce diagramme montre le cas d’utilisation « Contrôler les utilisateurs » :

Figure 5.7 – Diagramme de cas d’utilisation « Contrôler les utilisateurs » 7

Description textuelle du cas d’utilisation « Contrôler les utilisateurs » : Ci dessous


on trouve le diagramme de cas d’utilisation illustrant le cas « Contrôler les utilisateurs » :

Cas d’utilisation Contrôler les utilisateurs


Acteurs Administrateur.
Pré-condition L’administrateur doit être authentifié.
Post-condition L’administrateur s’inscrit sur la plateforme.
01 : L’administrateur demande l’interface de contrôle des utilisateurs.
02 : Le système renvoi la page de contrôle.
03 : L’administrateur choisit l’action qu’il veut faire
(supprimer compte d’utilisateur, supprimer avis d’utilisateur à propos
un autre utilisateur, supprimer l’avis autours de la plateforme).
03.1 : Si l’administrateur choisir de supprimer un compte d’utilisateur :
03.1.1 : Le système affiche une interface contenant une liste
de tous les utilisateurs avec un bouton ‘supprimer’ devant chaque utilisateur
et un champs ou il peut cherché un utilisateur précis.
03.1.2 : L’administrateur clique sur le bouton de suppression.
03.1.3 : Le système affiche une alerte demande la confirmation
de suppression.
Scénario principal 03.1.4 L’administrateur valide son action en cliquant le bouton ‘Confirmer’.
03.1.5 : Le système supprime et notifie l’actionneur avec une alerte de succès.
03.2 : Le système traite la requête donné et renvoi
une alerte de succès du changement.
03.2.1 : Le système affiche une interface contenant une liste
de tous les avis et leur écrivains avec un bouton ‘supprimer’ devant chaque
commentaire et un champs ou il peut chercher un utilisateur précis
ou une mot dans un commentaire.
03.2.2 : L’administrateur clique sur le bouton de suppression.
03.2.3 : Le système affiche une alerte demande la confirmation
de suppression.
03.2.4 L’administrateur valide son action en cliquant le bouton ‘Confirmer’.
03.2.5 : Le système supprime et notifie l’actionneur avec une alerte de succès.

79
CHAPITRE 5. SPRINT 3

Le système affiche un message d’erreur si l’utilisateur n’est pas connecté


Scénario alternatif
en tant qu’administrateur.

Table 5.8 – Description textuelle du cas d’utilisation « Contrôler les utilisateurs »

5.2.3.7 Le cas d’utilisation « Gérer l’accueil » :


Ci dessous on trouve le diagramme de cas d’utilisation « Gérer l’accueil » :

Figure 5.8 – Diagramme de cas d’utilisation « Gérer l’accueil » 8

Description textuelle du cas d’utilisation « Gérer l’accueil » : Le tableau suivant


explique plus le cas d’utilisation « Gérer l’accueil » :

Cas d’utilisation Gérer l’accueil


Acteurs Administrateur.
Pré-condition L’administrateur doit être authentifié.
Post-condition L’administrateur s’inscrit sur la plateforme.
01 : L’administrateur demande l’interface de gestion d’accueil.
02 : Le système renvoi la page demandée avec le contenu actuel
du page d’accueil ( article, statistique, influenceur le plus recherché, etc ).
03 : L’administrateur change le contenu qu’il veut le mettre à jour
ou supprimer et confirmer en cliquant sur le bouton ‘confirmer’.
Scénario principal
04 : Le système affiche une alerte demande la confirmation
de modification.
05 : L’administrateur valide son action en cliquant le bouton ‘Confirmer’.
06 : Le système modifie et notifie l’actionneur avec une alerte
qui valide la modification avec succès.
Le système affiche un message d’erreur si l’utilisateur n’est pas connecté
en tant qu’administrateur.
Scénario alternatif
Une alerte apparue si l’administrateur n’a changé aucun champ pour
le mettre à jour.

Table 5.9 – Description textuelle du cas d’utilisation « Gérer l’accueil »

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.

5.3.1 Diagramme de séquences système détaillé :


5.3.1.1 Diagramme de séquences système du cas «Ajouter compte» :
Le premier diagramme de séquences décrire le cas d’utilisation d’ajouter un compte. La figure
ci-dessous expose le diagramme de séquences «Ajouter compte» :

Figure 5.9 – Diagramme de séquences système du cas «Ajouter compte» 9

81
CHAPITRE 5. SPRINT 3

5.3.1.2 Diagramme de séquences système du cas «Interagir avec la plateforme» :


Chaque utilisateur peut donner leur avis à propos la plateforme, ou les influenceurs. Donc dans
cette partie nous exprimons le diagramme de séquence pour le cas d’utilisation «Interagir avec la
plateforme». Cette figure décrit le diagramme de séquences «Interagir avec la plateforme» :

Figure 5.10 – Diagramme de séquences système du cas «Interagir avec la plateforme» 10

82
CHAPITRE 5. SPRINT 3

5.3.1.3 Diagramme de séquences système du cas «Gérer les notifications» :


Ce diagramme de séquence explique le diagramme du cas d’utilisation «Gérer les notifications».
La figure ci-dessous expose le diagramme de cette tâche :

Figure 5.11 – Diagramme de séquences système du cas «Gérer les notifications» 11

5.3.1.4 Diagramme de séquences système du cas «Visualiser statistique» :


Chaque utilisateur peut avoir des statistiques à propos les interactions des utilisateurs avec la
plateforme. Dans cette partie nous représentons le diagramme de séquences pour le cas d’utilisation
«Visualiser statistique».

Figure 5.12 – Diagramme de séquences système du cas «Visualiser statistique» 12

83
CHAPITRE 5. SPRINT 3

5.3.1.5 Diagramme de séquences système du cas «Gérer les rôles» :


Après l’authentification, l’administrateur peut modifier les droits pour un rôle spécifique des
utilisateurs de l’application.
Cette figure détaille le diagramme de séquences «Gérer les rôles».

Figure 5.13 – Diagramme de séquences système du cas «Gérer les rôles» 13

84
CHAPITRE 5. SPRINT 3

5.3.1.6 Diagramme de séquences système du cas «Contrôler les utilisateurs» :


L’administrateur peut supprimer les utilisateurs et leurs avis à propos leurs interactions avec
la plateforme ou les influenceurs. Cette figure illustre le diagramme de séquences «Contrôler les
utilisateurs» :

85
CHAPITRE 5. SPRINT 3

86
CHAPITRE 5. SPRINT 3

Figure 5.14 – Diagramme de séquences système du cas «Contrôler les utilisateurs» 14

87
CHAPITRE 5. SPRINT 3

5.3.1.7 Diagramme de séquences système du cas «Gérer l’accueil» :


L’administrateur peut modifier ou supprimer le contenu de la page d’accueil . La figure ci-
dessous précisée diagramme de séquences système «Gérer l’accueil» :

Figure 5.15 – Diagramme de séquences système du cas «Gérer l’accueil» 15

88
CHAPITRE 5. SPRINT 3

5.3.2 Diagramme de classe global du troisième sprint :


La figure ci-dessous expose le diagramme de classe global du troisième sprint :

Figure 5.16 – Diagramme de class du Sprint 3 16

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

Attribut Type Contrainte


UtilisateurID INT Primary Key
Username Varchar(50) Not Null
Commentaire Varchar(400) Not Null

Table 5.10 – Table Avis plateforme

Table : Avis influenceur

Attribut Type Contrainte


UtilisateurID INT Primary Key
Username Varchar(50) Not Null
Commentaire Varchar(400) Not Null
NomInfluenc Varchar(50) Not Null

Table 5.11 – Table Avis influenceur

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 :

Figure 5.17 – Interface Ajouter compte 17

91
CHAPITRE 5. SPRINT 3

5.5.2 L’interface d’interaction avec la plateforme :


Chaque utilisateur peut donner son avis à propos l’application ou bien les influenceurs existants.
Ces figures représentent l’interface d’interaction avec l’application ainsi que les influenceurs.

Figure 5.18 – Interface Interagir avec la plateforme 1 18

Figure 5.19 – Interface Interagir avec la plateforme 2 19

92
CHAPITRE 5. SPRINT 3

Figure 5.20 – Interface Interagir avec la plateforme 3 20

93
CHAPITRE 5. SPRINT 3

5.5.3 L’interface de visualisation statistique :


Chaque utilisateur peut avoir des statistiques sur la page d’accueil de notre application. La
figure ci-dessous présente l’interface de la visualisation statistique.

Figure 5.21 – Interface de visualisation statistique 1 21

Figure 5.22 – Interface de visualisation statistique 2 22

94
CHAPITRE 5. SPRINT 3

5.5.4 L’interface de contrôle des utilisateurs :


Après l’authentification, l’administrateur peut supprimer les utilisateurs ou leurs avis. Ces
figures détaillent l’interface permettant d’assurer cette tâche.

Figure 5.23 – Interface Contrôler les utilisateurs 1 23

Figure 5.24 – Interface Contrôler les utilisateurs 2 24

95
CHAPITRE 5. SPRINT 3

Figure 5.25 – Interface Contrôler les utilisateurs 3 25

5.5.5 L’interface de gestion d’accueil :


Après l’authentification, l’administrateur peut modifier ou supprimer le contenu de la page
d’accueil. Cette figure montre l’interface de la gestion l’accueil.

Figure 5.26 – Interface Gérer Accueil 26

96
CHAPITRE 5. SPRINT 3

5.5.6 L’interface de gestion des rôles :


Après l’authentification, l’administrateur peut modifier les privilèges d’accès pour un rôle spé-
cifique. Les figures ci-dessous décrivent les différentes interfaces de la gestion des rôles :

Figure 5.27 – Interface Gérer les rôles 1 27

Figure 5.28 – Interface Gérer les rôles 2 28

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.

6.1 Environnement de développement :


Dans cette partie, nous allons annoncer l’environnement matériel, l’environnement logiciel, et
les différents technologies que nous avons utilisé pour la réalisation de notre projet.

6.1.1 Environnement matériel :


Le tableau ci-dessous montre les caractéristiques techniques des machines que nous avons uti-
lisées :

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

Table 6.1 – Caractéristique technique des machines

6.1.2 Environnement logiciel :

Figure 6.1 – Logo Visual Studio Code


Visual Studio Code est un éditeur de code multiplateforme édité par Microsoft. Cet outil permet
aux développeurs d’utiliser plusieurs langages de programmation comme le HTML, C++, PHP,
Javascript, Typescript, CSS, etc.[3] Cet éditeur donne la possibilité d’implémenter des plugins pour
compléter une bonne expérience de développement.

99
CHAPITRE 6. LA PHASE DE CLOTURE

Figure 6.2 – Logo Visual Paradigm Online


Visual Paradigm Online c’est un logiciel de diagramme libre , basé sur le cloud pour nous
permettre de stocker nos conceptions en ligne.

Figure 6.3 – Logo OverLeaf


OverLeaf est un éditeur du langage LaTeX basé sur le cloud. Cet éditeur nous a donné la possi-
bilité de partager le projet (rapport) et de donner un accès choisit, lire seulement ou modifier avec
le propriétaire du projet.[4]

Figure 6.4 – Logo LaTex


LaTeX est un langage de description libre et gratuit, contrairement à un traitement de texte
comme Word, LaTeX nous permet de concentrer sur le contenu de notre document. Tout le reste
est généré Automatiquement et il est aussi c’est facile à utiliser.

Figure 6.5 – Logo Adobe Illustrator


Adobe Illustrator l’un des éditeurs graphiques les plus connus et utilisés dans ce domaine, ce
logiciel avancé dans le graphique est basé sur les graphiques vectorielles (l’image est illustrée comme
des vecteurs et non pas une matrice) est donc la qualité de l’image crée par cet application est très
claire, on a l’utiliser pour créer l’identité graphique de notre plateforme.

100
CHAPITRE 6. LA PHASE DE CLOTURE

Figure 6.6 – Logo Adobe Photoshop


Adobe Photoshop Ce logiciel est basé sur les graphiques matricielles avec une bonne utilisation.
On peut avoir des images de très bonne qualité, Nous avons utilisé Adobe Photoshop pour faire
des retouches sur quelques figures utilisées dans notre Rapport.

Figure 6.7 – Logo Postman


Postman est une interface graphique utilisée par de nombreux développeurs, facile d’utilisation,
qui permet de formuler des requêtes (GET (obtenir), PUT (mettre), POST (publier), et DELETE
(supprimer),..)pour utiliser et tester des API.

Figure 6.8 – Logo Google Docs


Google Docs un logiciel de traitement de texte en ligne, il a les mêmes fonctionnalités que Word,
il nous permet de créer et de mettre en forme des documents texte, mais aussi de collaborer en
temps réel.

Figure 6.9 – Logo GitHub


GitHub est une plateforme open source a été lancée en 2008. C’est un outil de communication
et de collaboration entre plusieurs développeurs. Elle repose sur Git (un système de gestion de
code).[5]

101
CHAPITRE 6. LA PHASE DE CLOTURE

Figure 6.10 – Logo Google Drive


Google Drive est un service de stockage et de partage de fichiers dans le cloud lancé par la société
Google. Nous avons l’utiliser pour stocker les versions de notre projet.

Figure 6.11 – Logo Ngrok


Ngrok est un outil gratuit qui établit des tunnels sécurisés à partir d’un point de terminaison
public tel qu’Internet vers un service réseau fonctionnant localement tout en capturant tout le
trafic pour une inspection détaillée et une relecture. Aussi ngrok nous a donner la possibilité de
sécuriser nos tunnel avec un mot de passe et d’utiliser des sous-domaines personnalisés.

Figure 6.12 – Logo Google Agenda


Google Agenda est un service de calendrier de gestion du temps et de planification, nous avons
utilisé cette outil pour planifier nos tâches et nos réunion en utilisant Google Hangouts implémenté
dans cette agenda pour se réunir en ligne.

102
CHAPITRE 6. LA PHASE DE CLOTURE

6.1.3 Technologies et langages utilisées :

Figure 6.13 – Logo Angular


Angular est une plateforme de développement qui nous permet de créer des applications web.
C’est un Framework côté client, open source, basé sur TypeScript. Dans notre projet nous avons
utilisé la version 8 du Angular.[6]

Figure 6.14 – Logo Node.js


Node.js n’est pas un framework, c’est un environnement côté serveur qui nous permet d’interpréter
du code JavaScript pour générer des pages web. Et il utilise le moteur d’exécution ultrarapide V8
de Google Chrome.[7]

Figure 6.15 – Logo TypeScript


TypeScript c’est un langage Open Source édité par Microsoft en 2012, il nous permet d’améliorer
la production de code JavaScript de manière sécurisée .

Figure 6.16 – Logo JavaScript


JavaScript c’est un langage de programmation, et plus précisément un langage de script orienté
objet, principalement employé dans les pages web interactives mais aussi pour les serveurs (par
exemple Node.js).[8]

103
CHAPITRE 6. LA PHASE DE CLOTURE

Figure 6.17 – Logo HTML 5


HTML est un langage de balisage hypertexte, qui est utilisé pour mettre du contenu sur une page.
Il permet l’inclusion d’éléments tels que du texte, des images, des liens et même des vidéos.

Figure 6.18 – Logo CSS 3


CSS est une feuille de styles en cascade, utilisé pour styler le contenu qui a été inséré en HTML,
il nous permettrait de modifier la forme, la taille, la couleur, le style du bouton, etc.

Figure 6.19 – Logo Python


Python est un langage de programmation interprété, multi-paradigme et multiplateformes , il est
puissant, à la fois facile à apprendre et riche en possibilités.[9][10]

Figure 6.20 – Logo Flask


Flask est un micro framework web, c’est un module Python qui vous permet de développer faci-
lement des applications web. Il a un noyau petit et facile à étendre.[11][12]

104
CHAPITRE 6. LA PHASE DE CLOTURE

Figure 6.21 – Logo Bootstrap


Bootstrap est un framework très populaire, il nous permet de créer des sites et d’applications
web. C’est un ensemble qui contient des codes HTML, CSS, JavaScript et des formulaires, boutons,
etc.

Figure 6.22 – Logo Express.js


Express.js est un Framework, qui facilite la création et la gestion des serveurs Node. Une appli-
cation Express est fondamentalement une série de fonctions appelées middleware, chaque élément
de middleware reçoit les objets request et response en tant que arguments. Le middleware Express
reçoit également la méthode next(), qui permet à chaque middleware de passer l’exécution au
middleware suivant.[6]
Commande pour installer Express : npm install –save express

6.1.4 Logiciel de la base de données :

Figure 6.23 – Logo MongoDb


MongoDb est une base de données NoSQL, elle enregistre les données sous forme de documents,
et elle permet de manipuler des objets structurés au format JSON. De plus elle est très rapide
pour certaines opérations.

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.

Finalement, l’application proposée reste extensible et constitue un prototype ambitieux pour


un futur grand projet permettant d’analyser des données en temps réel avec les nouvelles tendances
de Big Data, de sciences de données et de l’intelligence artificielle.

107
Netographie
NETOGRAPHIE

[1] Michel Volle. L’analyse des données. https://www.persee.fr/doc/estat_0336-1454_1978_


num_96_1_3094. [En ligne ; consulté le 16 février 2020].
[2] Gabriel Dabi-Schwebel. Dataviz – visualisation de données. https://www.1min30.com/
dictionnaire-du-web/dataviz, 2014.
[3] Microsoft. Visual studio code. https://www.01net.com/telecharger/windows/
Programmation/creation/fiches/130819.html.
[4] Noël-Arnaud. Rédigez des documents de qualité avec latex. https://openclassrooms.com/
fr/courses/1617396-redigez-des-documents-de-qualite-avec-latex.
[5] Margaret Rouse. Github. https://www.lemagit.fr/definition/GitHub.
[6] Will Alexander. Passez au full stack avec node.js, ex-
press et mongodb. https://openclassrooms.com/fr/courses/
6390246-passez-au-full-stack-avec-node-js-express-et-mongodb/
6521356-tirez-le-maximum-de-ce-cours.
[7] JohnTaieb. Qu’est-ce que node.js ? pourquoi l’apprendre ? https://apprendre-a-coder.
com/apprendre-node-js/.
[8] Laura M.l. A quoi sert javascript et pourquoi devriez-vous l’apprendre ? https://fr.
bitdegree.org/tutos/a-quoi-sert-javascript/.
[9] R vs python : What’s the difference ? https://www.guru99.com/r-vs-python.html. [En
ligne ; consulté le 26 février 2020].
[10] Bruno Krebs. Using python, flask, and angular to build modern web apps - part 1. https://
auth0.com/blog/using-python-flask-and-angular-to-build-modern-apps-part-1/.
[En ligne ; consulté le 7 avril 2020].
[11] Flask documentation. https://flask.palletsprojects.com/en/1.1.x/. [En ligne ;
consulté le 21 mars 2020].
[12] Girish Sharma. Django rest framework vs flask. https://stackshare.io/stackups/
django-rest-framework-vs-flask. [En ligne ; consulté le 3 mars 2020].

109
NETOGRAPHIE

110

Vous aimerez peut-être aussi