Vous êtes sur la page 1sur 79

UNIVERSITE ABDELMALEK ESSAADI

FACULTE DES SCIENCES ET TECHNIQUES


DE TANGER
Département Génie Informatique

Mémoire de Projet de Fin d’Études

MASTER SCIENCES ET TECHNIQUES


EN
SYSTEMES INFORMATIQUES ET MOBILES

Développement d’une application mobile My Mobilosoft


pour la gestion des avis des clients.

 RÉALISÉ PAR : CHLIAH JAAFARI Younes

Membres du Jury :

Pr. ABDELHAKIM BOUDHIR Anouar Président


Pr. EL AMRANI Chaker Examinateur
Pr. BOUHORMA Mohammed Encadrant Pédagogique
M. AZOUAGH Noureddine Encadrant Entreprise

Soutenu le : 06/07/2021

Année Universitaire 2020/2021


« Les batailles de la vie ne sont pas gagnées par les
plus forts, ni par les plus rapides, mais par ceux qui
n'abandonnent jamais. »
Dédicaces

Je dédie ce projet :

A ma très chère mère

Quoi que je fasse ou que je dise, je ne saurai point te remercier comme il se doit. Ton
affection me couvre, ta bienveillance me guide et ta présence à mes côtés a toujours été ma
source de force pour affronter les différents obstacles.

A mon cher père

Qui je souhaite une bonne santé, aucune dédicace ne saurait exprimer l’amour, l’estime, le
dévouement et le respect que j’ai toujours eu pour vous.

Rien au monde ne vaut les efforts fournis jour et nuit pour mon éducation et mon bien- être.

Ce travail est le fruit de tes sacrifices que tu as consentis pour mon éducation et ma
formation.

1
Remerciements

Dieu

On remercie dieu le tout puissant de nous avoir donné la santé et la volonté d’entamer et de
terminer ce projet.

Mr Mohammed BOUHORMA

Tout d’abord, ce travail ne serait pas aussi riche et n’aurait pas pu avoir le jour sans l’aide
et l’encadrement de Monsieur Mohamed BOUHORMA, on le remercie pour la qualité de
son encadrement exceptionnel, pour sa patience, sa rigueur et sa disponibilité durant notre
préparation de ce projet.

Noureddine AZOUAGH

Nous tenons aussi à adresser nos profonds remerciements à nos encadrants techniques de
Stage Noureddine AZOUAGH pour ses précieux conseils, la qualité́ de ses suivis durant
toute la période de notre projet et la confiance qu’il nous a témoignés a été́ déterminants dans
la réalisation de notre travail.

2
Résumé
Ce travail s’inscrit dans le cadre du projet de fin d’études réalisé suite à notre stage au
sein de l’entreprise VirtuoCode depuis la fin du février 2021, pour l’obtention du
diplôme de master en systèmes informatiques et mobiles à l’université Abdelmalek
Essaadi et plus précisément à la faculté́ de sciences et techniques de Tanger durant
l’année universitaire 2020/2021.

Durant toute la période de notre stage au sein de VirtuoCode, notre mission principale
c’était le Développement d’une application mobile « My Mobilosoft » permettant de
gérer les avis des clients.

Cette application consiste à̀ fournir plusieurs services à la fois :

 Un utilisateur peut se connecter à l’application et il peut visualiser les reviews


des magasins qui gèrent.
 Chaque utilisateur il peut voir ou répondre aux les reviews des magasins qui
génèrent.
 Chaque utilisateur il peut voire passe les reviews des magasins qui génèrent.
 Un utilisateur peut filtrer les reviews par statut [Répondu - Ignoré - Non
répondu - Attribuez-moi].
 Un utilisateur peut filtrer les reviews par le nom de magasine ou par zip code
aussi il peut filtrer par les étoiles [rating] ou par canal [Facebook – Google –
Google alerte].
 Un utilisateur peut répondre un avis avec une réponse prédéfinie
 En cas de réponse déjà fait en peut faire mise à jour
 Chaque manager de magasine peut répondre aux reviews de ses magasins.
 Chaque utilisateur a la possibilité de basculer entre les sites qui y ont accès.
 Chaque utilisateur peut ajouter un avis en tant que favori puis il peut y accéder
plus tard pour répondre.

3
 Chaque utilisateur peut gérer sa propre liste de favoris en supprimant un avis du
favori ou en effectuant une recherche par le nom d'un magasin, il peut
également aller à l'examen pour répondre.
 Chaque utilisateur a un profil pour voir ses propres détails.
 Chaque utilisateur a une zone de notifications pour voir les nouveaux avis à
venir il existe deux types de notification le premier lorsque l'application est
ouverte automatiquement les avis à venir seront ajoutés à la zone de notification
et le second si l'application est fermée une notification push apparaîtra.
 Chaque utilisateur peut voir toutes les réponses plus anciennes qui ont été
ajoutées à un avis et a la possibilité de mettre à jour chacune d'entre elles
 Chaque utilisateur dispose d'une zone de paramètres pour contrôler l'application
à sa guise.
 Chaque utilisateur peut voir tous les avis auxquels il a répondu sous forme de
graphique contenant le pourcentage des avis non répondus et la réponse
répondue

Abstract
This report is an illustration of the work carried out within the company VirtuoCode as part

of my final year project in the field of Computer Systems.

During the entire period of our internship at VirtuoCode, our main mission was the

Development of a "My Mobilosoft" mobile application to manage customer reviews.

This application consists of providing several services at the same time:

 A user can log into the application and he can view the reviews of the stores

that manage it.

 Each user can respond to the reviews of the stores that has the access to them.

 Each user can skip the reviews of the stores that belongs to him.

4
 A user can filter the reviews by status [Replied – Skipped – Not Replied –

Assign to me].

 Each user can filter reviews by magazine name or zip code, also they can

filter by stars [rating] or by channel [Facebook - Google - Google Alert].

 A user can respond to a review with a predefined response.

 In case of response already exist, he can do an (updated) update

 Each store manager can respond to the reviews of his stores, which means the

stores that has the access to them.

 Each user has the ability to switch between the sites that belongs to him.

 Each user can to add a review as a favorite to access to them later

 Each user has own favorite list of reviews and he can to filter them by the

store name also he can to jump to reply on that review.

 Each user has a profile that hold his personnel info.

 Each user has a notification area depend by the site to see the new coming

review.

 Each user can see all the answer on a review also he can update the older

answers.

 Each user has setting area to control the application as he wants.

 Each user can see a chart as a statistic of the review that he replied them.

5
Nom et Prénom de l’Etudiant Stagiaire :
CHLIAH JAAFARI Younes

Intitulé du sujet :
Développement d’une application mobile My
Mobilosoft permettant de gérer les avis des clients.

Etablissement d’accueil :
La société VirtuoCode

Encadrant Pédagogique :
Prof. Mohammed BOUHORMA
Avant-propos
Encadrant Technique de Stage :
Mr. Noureddine AZOUAGH

Période de projet :
Du 15 février 2021 au 15 août 2021

Cadre du Stage :
Projet de Fin d’Etudes présenté en vue de
l’obtention du master systèmes informatiques et
mobiles (SIM).

Filière :
Master en Sciences et Techniques – Système
Informatiques et Mobiles (MST-SIM)

6
Table des abréviations

Abréviation Désignation

API Application Programming Interface

GMB Google My Business

JSON JavaScript Object Notation

SQL Structured Query Language

UML Unified Modeling Language

URI Uniform Resource Identifier

URL Uniform Resource Locator (adresse web)

REST REpresentational State Transfer

SASS Software as a Service

Swagger Swagger is an Interface Description Language for


describing RESTful APIs

7
Table de figures
Figure 1 Ecosystème du groupe Virtuology International ............................................................................. 16
Figure 2 fonctionnement du méthode scrum ...................................................................................................... 20
Figure 3 Aperçu d’Asana .............................................................................................................................................. 24
Figure 4 Aperçu d’application de Skype ................................................................................................................ 26
Figure 5 Aperçu de Google Meet ............................................................................................................................... 27
Figure 6 Exemple de scrum......................................................................................................................................... 29
Figure 7 diagramme de gantt ..................................................................................................................................... 30
Figure 8 Logo Flutter framework ............................................................................................................................. 39
Figure 9 Logo Intilijj...................................................................................................................................................... 40
Figure 10 Logo Spring .................................................................................................................................................. 40
Figure 11 Logo Dart langage ..................................................................................................................................... 41
Figure 12 Logo Maven................................................................................................................................................... 41
Figure 13 Logo Hibernate ............................................................................................................................................ 41
Figure 14 Logo Google My Business ........................................................................................................................ 42
Figure 15 Logo Facebook Graph API ....................................................................................................................... 42
Figure 16 Logo Google Cloud SQL ........................................................................................................................... 43
Figure 17 Logo Git........................................................................................................................................................... 43
Figure 18 Logo StarUML .............................................................................................................................................. 44
Figure 19 Logo GanttProject....................................................................................................................................... 44
Figure 20 Logo java ........................................................................................................................................................ 44
Figure 21 Logo Java EE ................................................................................................................................................. 45
Figure 22 Logo spring boot ......................................................................................................................................... 45
Figure 23 Logo Firebase ............................................................................................................................................... 46
Figure 24 Logo mongoDB ............................................................................................................................................ 47
Figure 25 Logo PostgresSQL....................................................................................................................................... 47
Figure 26 Logo SQLite ................................................................................................................................................... 48
Figure 27 Use case diagram ........................................................................................................................................ 51
Figure 28 Class diagram ............................................................................................................................................... 52
Figure 29 Sequence diagram ...................................................................................................................................... 54
Figure 30 Welcome screen .......................................................................................................................................... 56
Figure 31 Authentication screen .............................................................................................................................. 56
Figure 32 Home screen ................................................................................................................................................. 57
Figure 33 Switch between site .................................................................................................................................. 57
Figure 34 Filter area ...................................................................................................................................................... 58
Figure 35 Filter by status ............................................................................................................................................ 58
Figure 36 Filter by date ................................................................................................................................................ 59
Figure 37 Other filter options .................................................................................................................................... 59
Figure 38 Options area ................................................................................................................................................. 60
Figure 39 Navigation drawer options..................................................................................................................... 60
Figure 40 Profile screen ............................................................................................................................................... 61
Figure 41 Page de sites ................................................................................................................................................. 61
Figure 42 Favourite page ............................................................................................................................................. 62
Figure 43 Notifications page ...................................................................................................................................... 62

8
Figure 44 Settings page ................................................................................................................................................ 63
Figure 45 Fingerprint popup...................................................................................................................................... 63
Figure 46 Statistics page .............................................................................................................................................. 64
Figure 47 Who we are page ........................................................................................................................................ 64
Figure 48 Privacy policy page .................................................................................................................................... 65
Figure 49 Contact us page ........................................................................................................................................... 65
Figure 50 reply page ...................................................................................................................................................... 66
Figure 51 Older answers .............................................................................................................................................. 66
Figure 52 Update answer bottom sheet ................................................................................................................ 67
Figure 53 Canned reply page...................................................................................................................................... 67

9
Table des matières
Dédicaces ................................................................................................................................... 1

Remerciements ......................................................................................................................... 2

Résumé ...................................................................................................................................... 3

Abstract ..................................................................................................................................... 4

Table des abréviations ............................................................................................................. 7

Table de figures ........................................................................................................................ 8

Table des matières .................................................................................................................. 10

Introduction générale ............................................................................................................. 13

Chapitre I : Contexte général du projet ............................................................................... 15

I- Introduction .................................................................................................................... 15
I.1 Présentation de l’organisme d’accueil ..................................................................... 15
II- Les Méthodes Agiles : la Méthode SCRUM ................................................................ 16
II.1 Les Méthodologies Agiles.................................................................................... 16
II.1.1 SCRUM ......................................................................................................... 17
II.1.1.1 La méthode SCRUM (pourquoi choisir SCRUM) ............................... 17
II.1.1.2 Implémentation dans notre projet .................................................... 20
II.1.2 Communication entre les membres d’équipe ............................................................. 23
a. Outil Asana ................................................................................................................. 23
b. Outil Skype .............................................................................................................. 26
c. Google Meet ............................................................................................................... 26
II.1.3 Artefacts ...................................................................................................................... 27
II.1.4 Planification du projet ................................................................................................ 30
III- Conclusion .................................................................................................................. 31

Chapitre II : L’étude du marché .......................................................................................... 32

I - Introduction ...................................................................................................................... 33
I.1 Les applications mobiles en ligne de gestion des reviews ............................................. 33
I.1.1 LocalClarity .............................................................................................................. 33
I.1.2 Réputation Studio .................................................................................................... 34
I.1.3 Cloutly ....................................................................................................................... 34
10
II. La problématique ............................................................................................................. 35
III. Solution propose ............................................................................................................. 36
III.1 Recueil des besoins du système .................................................................................... 36
III.1.1 Les besoins techniques ......................................................................................... 36
III.1.2 Les besoins fonctionnels ...................................................................................... 36
IV- Conclusion .................................................................................................................. 37

Chapitre III : Les outils utilisés pour la réalisation du projet ........................................... 39

I. Introduction .................................................................................................................... 39
I.1 Les langages de programmation et les logiciels, Framework ..................................... 39
I.1.1 Flutter ........................................................................................................................... 39
I.1.2 IntelliJ IDEA ................................................................................................................. 40
I.1.3 Spring............................................................................................................................ 40
I.1.4 Dart ............................................................................................................................... 41
I.1.5 Maven ........................................................................................................................... 41
I.1.6 Hibernate ...................................................................................................................... 41
I.1.7 Google My Business API .............................................................................................. 42
I.1.8 Facebook Developers API ............................................................................................ 42
I.1.9 Google Cloud SQL pour PostgreSQL .......................................................................... 43
I.1.10 Git & Github ............................................................................................................... 43
I.1.11 Star UML .................................................................................................................... 44
I.1.12 Gantt Project .............................................................................................................. 44
I.1.14 Java ............................................................................................................................. 44
I.1.15 Spring boot ................................................................................................................. 45
I.1.16 Firebase ...................................................................................................................... 46
I.1.17 MongoDB.................................................................................................................... 47
I.1.19 SQLite ......................................................................................................................... 48
III. Conclusion .................................................................................................................. 48

Chapitre IV : Analyse et conception du projet .................................................................... 50

4 .1 Définition et l’utilité du l’uml ........................................................................................ 50


4.2 Les différents diagrammes de modélisation.................................................................. 50
4.2.1 Diagramme de cas d'utilisation .................................................................................. 50
4.2.1.1 Définition ............................................................................................................... 50
4.2.1.2 Les acteurs du système ...................................................................................... 51
4.2.1.3 Diagramme ........................................................................................................... 51
4.2.2 Diagramme de classe .................................................................................................. 52
4.2.2.1 Définition .............................................................................................................. 52
11
4.2.2.2 Diagramme ........................................................................................................... 52
4.2.3 Diagramme de séquence ............................................................................................. 53
4.2.3.1 Définition ....................................................................................................... 53
4.2.3.2 Diagramme ........................................................................................................... 53

Chapitre V : Réalisation ........................................................................................................ 55

I- Introduction .................................................................................................................... 56
II- Réalisation de l’application Mobile............................................................................ 56
III- Réalisation des APIs ................................................................................................... 68
III.1 Authentification d'utilisateur......................................................................................... 68
III.2 Obtenir les détails de l'utilisateur après authentification ............................................. 69
III.3 Modifier la réponse ....................................................................................................... 69
III.4 Charger les avis ............................................................................................................ 70
III.5 Charger plus des avis.................................................................................................... 70
III.6 Charger les réponses précédentes sur un avis .............................................................. 71
III.7 Charger les réponses prédéfinies.................................................................................. 71
III.8 Mettre à jour le statut d'une notification ...................................................................... 72
III.9 Charger les notifications............................................................................................... 72
III.10 Répondre à un avis...................................................................................................... 73
III.11 Passe à un avis ............................................................................................................ 73
III.12 Envoyer la notification push à l'appareil de l'utilisateur ........................................... 74
III.13 Ajouter des balises à un avis ....................................................................................... 74
III.14 Supprimer des balises à un avis .................................................................................. 75
IV. Conclusion .................................................................................................................. 75

Conclusion générale et perspectives ..................................................................................... 76

Webographie ........................................................................................................................... 77

12
Introduction générale
Dans le cadre de notre projet de fin d’étude lors de notre deuxième année master en systèmes
informatique et mobiles, on a passé́ une période de stage de 6 mois au sein de l’entreprise
VirtuoCode, où on a pu entamer une expérience pratique et professionnelle dans le monde
informatique en gérant un projet qui se dirige dans le contexte du développement d’une
application mobile.

En gérant l’évolution qui cannait le monde actuellement on remarque l’apparition de plusieurs


besoins qui vient de se créer lors de cette avancement, My Mobilosoft est une application
mobile de gestion des avis et commentaires clients visant à améliorer la réputation et
le rendement des entreprises.

Une entreprise qui gère sa réputation en ligne aura systématiquement plus d’impact et
de visibilité pour la simple et bonne raison que son positionnement sera meilleur qu’une
entreprise qui néglige son image. Elle s’assure donc d’attirer des nouveaux clients et
laisse moins, voire parfois plus du tout, de marge à la concurrence.

Le contexte de notre projet est de proposer une solution mobile permettant de créer un espace
numérique qui assure la rencontre de deux demandeurs de service : le manager du store qui
peut consulter et voir les reviews des clients, et le client qui peut profiter d’exprimer à son
tour de son point du vue à propos du magasin et faire un review et un commentaire par des
pages Facebook ou Google.

Ce rapport a l’utilité́ de décrire le prototype, et les différentes étapes de la réalisation du projet


dès la conception arrivant au fonctionnement de l’application.

13
Chapitre I

Contexte général du projet


Ce chapitre introduit le contexte général du projet. On présente
l’organisme d’accueil tout au long de la durée du stage, sa société
mère et ses valeurs.
Pour retrouver par la suite, le contexte du projet, la problématique, et
la solution proposée.

14
Chapitre I : Contexte général du projet
I- Introduction
Tout projet se situe dans un cadre et un contexte bien précis, et le but de cette partie est de
situer le lecteur dans le contexte général de mon stage. Et pour ce faire, on va commencer tout
d’abord par une présentation générale de l’organisme d’accueil. On abordera par la suite la
présentation du projet où on décrira la problématique à traiter et la solution proposée, alors
que, la fin de ce chapitre portera sur la planification et la conduite du projet, ainsi que le
planning de travail adopté.

I.1 Présentation de l’organisme d’accueil

VirtuoCode est une Société de services et d'ingénierie en


informatique, filiale de l’entreprise Virtuology international.

La société est experte dans le domaine des nouvelles technologies et de


l'informatique. Elle englobe plusieurs métiers (conseil, conception et
réalisation d'outils, maintenance ou encore formation) et a pour objectif
principal d'accompagner ses clients dans la réalisation des projets
informatiques.

Virtuology International est un groupe d'agences spécialisées en


Marketing Digital. Son objectif est de réunir des experts de tous les
grands domaines du marketing digital sous une même bannière, mais
chaque société du groupe est indépendante et aspire à être leader dans
son domaine de compétence.

Les entreprises sont par définition modulaires et habiles dans la coopération, avec un ADN
orienté vers une collaboration aisée avec des équipes extérieures. Le groupe met à disposition
ses méthodologies et ses outils pour faciliter une progression fluide et efficace lorsque
plusieurs talents accompagnent un même projet.

15
Figure 1 Ecosystème du groupe Virtuology International

II- Les Méthodes Agiles : la Méthode SCRUM


Méthodologies de gestion de projet dites méthodes agiles ont toutes un point commun :
elles sont directement inspirées du Manifeste Agile édité en 2001 par des développeurs de
logiciels bien décidés à améliorer leur processus et à réduire leur taux d’échec. De là sont
donc nées progressivement diverses méthodes unies par une nouvelle manière d’aborder le
développement de produit en replaçant, notamment, le client au cœur de l’action et en prônant
l’adaptation des procédés de création au fil de l’évolution du projet. Elles se sont depuis
imposées comme des standards sur le terrain du développement d'application.

II.1 Les Méthodologies Agiles

Une méthodologie agile, quelle qu’elle soit, prévoit le fractionnement des étapes de
développement logiciel. Contrairement à la méthode traditionnelle qui prévoit la planification
totale du projet avant même son développement, le Manifeste Agile préconise plutôt la
fixation d’objectifs à court terme. Le projet est ainsi fragmenté en plusieurs sous-parties que
l’équipe qui en a la charge se doit d’atteindre progressivement en réajustant si nécessaire les
objectifs pour répondre le plus possible aux attentes du client. Les méthodes agiles mettent un
point d’honneur à renforcer les relations entre les membres de l’équipe projet, mais également
entre l’équipe et le client. C’est pour cette raison que la flexibilité́ et la souplesse dans
l’organisation sont deux piliers fondamentaux des méthodes agiles.

16
Une fois qu’une organisation décide d’adopter une gestion de développement Agile, il reste
encore à choisir la méthodologie la plus adaptée à son projet. En effet, les méthodes Agiles
disponibles sont nombreuses et peuvent être source de confusion. , c’est pour cette raison que
le bon choix du processus de développement logiciel conduit à la bonne réalisation du projet,
c’est pour cette raison nous avons fait référence à une étude généraliste sur les principaux
processus de développement, pour pouvoir choisir le meilleur processus correspondant à notre
cas.

II.1.1 SCRUM

La méthode agile Scrum particulièrement destinée à la gestion de projets


informatiques tient son nom du monde du rugby. Le principe de Scrum est de pouvoir
modifier la direction prise par le projet au fur et à mesure de son avancement. C’est
exactement ce qui se passe lors d’un match de rugby, lors d’une mêlée (« scrum » en anglais).

La mêlée est donc une phase essentielle au rugby comme dans la gestion de projet. Si les
conditions de réussite ne sont pas remplies, alors il faut réorienter le projet pour repartir sur de
meilleures bases. Le client est étroitement impliqué grâce à la livraison régulière de
prototypes opérationnels permettant de valider les développements. Cette gestion dynamique
permet de s’assurer de la correspondance entre le besoin exprimé et le produit livré, et de
réorienter au besoin les futurs développements.

II.1.1.1 La méthode SCRUM (pourquoi choisir SCRUM)

Comme pour toutes les fabrications, il est important d’avoir un procèdé de


fabrication du logiciel bien défini et explicitement décrit et documenté. Les modèles du
processus de développement du logiciel décrivent à un niveau très abstrait et idéalisé les
différentes manières d’organiser la production. Les étapes, leur ordonnancement, et parfois les
critères pour passer d’une étape à une autre.

On propose maintenant de zoomer sur l’une des méthodes Agile existantes afin de vous
montrer plus concrètement le fonctionnement.

Pourquoi traiter de Scrum en particulier ? Tout simplement parce que Scrum est de très loin la
méthodologie la plus utilisée parmi les méthodes Agile existantes. Elle est donc la plus
éprouvée, documentée et supportée. Livres, blogs, formations, vidéos, associations,
conférences traitant de Scrum ne manquent pas et bon nombre de ces ressources sont

17
accessibles gratuitement. On pourrait pratiquement parler d’un standard Agile. Un autre atout
important : Scrum est simple à comprendre. Sa maitrise est en revanche difficile. Les experts
de Scrum, même ses fondateurs, le décrivent comme un « cadre de travail permettant de
répondre à des problèmes complexes et changeants tout en livrant de manière productive et
créative des produits de la plus grande valeur possible », Scrum propose un modèle de
contrôle de processus basé sur l'empirisme. Il s'appuie sur trois piliers :

La transparence : Scrum met l'accent sur le fait d'avoir un langage commun entre l'équipe et
le management, qui doit permettre à tout observateur d'obtenir rapidement une bonne
compréhension du projet.

L'inspection : Scrum propose de faire le point sur les différents artéfacts produits à
intervalle régulier, afin de détecter toute variation indésirable.

L'adaptation : Si une dérive est constatée pendant l'inspection, le processus doit alors être
adapté. Scrum fournit des rituels, durant lesquels cette adaptation est possible. Il s'agit de
sprint planning, de quotidienne Scrum et de sprint review qu’on va détailler dans la section
suivante :

 Identifier les rôles clés et constituer l’équipe :

 L'équipe Scrum : équipe comportant au maximum 10 personnes. L'équipe


est auto-organisée et chacun doit être capable de reprendre les tâches d'un
autre membre.

 Le product owner (propriétaire du produit) : correspondant métier, il gère la


" priorisation " et l'évolution du product backlog (carnet de produit). Il
répond aux questions de l'équipe Scrum.
 Le Scrum master : coach, chargé de projet, développeur, animateur... Il doit
faire respecter le cérémonial Scrum à son équipe.
 Définir la vision du produit à réaliser.

 Produire le backlog initial du produit (c'est le product owner qui en est


responsable), en identifiant les premières stories qui vont le composer.
 Produire une première planification de la séquence des sprints à venir
(le release), avec une vision du contenu prévu (les éléments de backlog de
produit) de chacun de ces sprints.

18
 Planifier le sprint afin de :
 Permettre au product owner d'indiquer à l'équipe les items prioritaires.
 Définir la capacité de l'équipe à réaliser ces items (en mesurant sa vélocité).
 Choisir les items à intégrer dans le sprint.
 Animer un " Scrum " (mêlée) quotidien.
 Mesurer l'avancement des tâches qui étaient prévues lors de la mêlée
précédente :
 Permettre l'engagement de chaque équipier devant ses pairs, sur le travail
qu'il va réaliser dans la journée.

 Identifier et lever les obstacles qui freinent l'avancement du projet.

 Permettre à l'équipe de se synchroniser sur les objectifs du sprint, et sur


sa capacité à les atteindre.

 Animer une revue de sprint afin de :


 Valider avec l'ensemble des parties prenantes l'incrément de solution (et la
solution globale qui en découle !) qui a été produit pendant le sprint.
 Connaître l'état d'un projet, afin de décider des actions à mettre en œuvre
pour sa poursuite.

 Ajuster le product backlog et le plan de release.


 Animer une rétrospective de sprint, afin de permettre à l'équipe de réfléchir aux
moyens de devenir plus efficace, et d'ajuster sa manière de travailler en
conséquence.

19
Figure 2 fonctionnement du méthode scrum

Le choix du processus de développement :

En faisant liaison entre l’étude généraliste précédente et notre projet, le choix de Scrum
comme une méthodologie de pilotage pour ce projet s’est basé sur les atouts de ce dernier.

Il se résumé comme suit :

 Plus de souplesse et de réactivité́ .

 La grande capacité́ d’adaptation au changement grâce à̀ des itérations courtes.

 La chose la plus importante, c’est que Scrum rassemble les deux côtes théorique et
pratique et se rapproche beaucoup de la réalité́ .

 La nature de cette méthode qui est bien organisé et permet de tester et valider chaque
partie du projet avant de passer à une autre.

 L’utilisateur qui sera impliqué́ dans le développement (Product owner)

II.1.1.2 Implémentation dans notre projet

a. Rôles Scrum et intitulés de poste

Les trois rôles scrum décrivent les principales responsabilités des membres de l'équipe Scrum.
Il ne s'agit pas d'intitulés de poste. N'importe quel intitulé de poste, même existant, peut
remplir l'un des rôles. Parce que l'empirisme, l'auto-organisation et l'amélioration continue
sont au cœur de Scrum, les trois rôles donnent une définition minimale des responsabilités

20
pour permettre aux équipes de travailler efficacement. Les équipes peuvent ainsi assumer la
responsabilité de leur organisation et continuer à s'améliorer.

Dans notre projet, nous pouvons distinguer les rôles suivants :

VirtuoCode

Noureddine AZOUAGH CHLIAH JAAFARI Younes

b. Les Evènements (cérémonies)

Toutes les activités (sprint, réunions de planning, revues, rétrospectives et


mêlées) décrites dans le Framework Scrum sont effectuées lors de boites de temps.

Le sprint : est une période (constante) d'un mois au maximum, au bout de laquelle
l'équipe délivre un incrément du produit, potentiellement livrable. Un nouveau sprint

21
démarre dès la fin du précédent. Chaque sprint est associé à une liste d'éléments du
backlog du produit à réaliser durant ce sprint.

Dans notre projet le déroulement et la planification des sprints a été́ découpé́ en 5 principaux
comme le montre dans ce ci-dessous :

Sprint 1  Formation technique et installation


d’environnement de développement.

Sprint 2
 Conception ET modélisation

Sprint 3  Design d’application

 Développement des pages hautement


prioritaires et liées à l'API backend Sprint 4
(comme connexion page, lecture des avis,
réponse, mise à jour de la réponse, lecture
des notifications, lecture des réponses
prédéfinies).
 Développement des pages supplémentaires
Sprint 5
(telles que page de favoris, profil, statistiques,
paramètres), j'ai également amélioré le code et
j'ai ajouté les animations sur nos pages pour
apparaître plus facilement.

Réunion quotidienne : C’est une réunion de planification qui dure 15 minutes et permet aux
développeurs de faire un point de coordination sur les taches en cours et sur les difficultés
rencontrées, dans le cas de notre projet tous nos Daily Scrum été́ fait en ligne à cause des
conditions exigées par l’épidémie du COVID-19 et qui nous a obligé́ de passer toutes nos
réunions en ligne sans un rencontre corporel.

22
Sprint planning Meeting : Toute l'équipe Scrum est présente à cette réunion, qui ne dure plus de
2 heures, dans notre cas pour planifier les user stories du backlog du produit qu'elle a décidé́
de traiter pendant la prochaine itération et comment elle s'organisera pour y parvenir.

Sprint review : À la fin du sprint, l'équipe Scrum et les parties-prenantes invitées se réunissent
pour effectuer la revue de sprint, qui dure au maximum 1 heure, qui a pour objectif de valider
le logiciel qui a été́ produit pendant le sprint. L'équipe fait une démonstration du logiciel
produit, dans le cas de notre projet tous nos Sprint review on été fait aussi en ligne à cause des
conditions exigées par l’épidémie du COVID-19 et virus et qui nous a obligé́ de passer toutes nos
réunions en ligne sans une présence corporelle.

II.1.2 Communication entre les membres d’équipe

Dans cette section on va évoquer l’un des piliers essentiels de la bonne conduite
de projet, qui est la communication. Cette dernière représente l'ensemble des
interactions et des échanges verbaux ou écrites avec les membres d’équipe afin de
transmettre l’information, et de s’assurer qu’on suit la bonne voie lors la réalisation du
projet, Parmi les outils qu’on a utilisés pour bien établir cette communication, on note

a. Outil Asana

Asana est un gestionnaire de communication d'équipe. Le produit prend en


charge de nombreuses fonctionnalités, notamment les espaces de travail, des projets,
des tâches, des étiquettes, des notes, des commentaires et une boîte de réception qui
organise les mises à jour des informations en temps réel. Il est conçu pour permettre
aux individus et aux équipes de planifier et gérer leurs projets et les tâches sans email.
Chaque équipe reçoit un espace de travail. Les espaces de travail contiennent des
projets, et les projets contiennent des tâches.

23
Figure 3 Aperçu d’Asana

Parmi les fonctionnalités offertes par l’outil Asana, on peut citer :

 Gestion du travail, des tâches et des projets

 Projets : organiser le travail en projets partagés sous forme de listes ou de


tableaux Kanban pour toutes initiatives, réunions et programmes.

 Tâches : décomposer le travail en tâches faciles à gérer par les membres de


l’équipe.

 Sous-tâches : diviser les tâches en plusieurs éléments plus petits ou indiquer les
étapes nécessaires pour les terminer.

 Responsables de tâches : attribuer chaque tâche pour en désigner la personne


responsable.

 Sections et colonnes : regrouper les tâches en sections ou colonnes dans les


projets en vue Liste ou Tableau (respectivement) pour garder les tâches organisées.

24
 Échéances : les échéances permettent de veiller à ce que chaque tâche soit
achevée à temps. On peut afficher les tâches dans un calendrier Asana ou même
dans un calendrier professionnel.

 Pièces jointes : ajouter des fichiers à tout type de tâche ou discussion depuis
ordinateur, Google Drive, OneDrive, Dropbox ou Box.

 Dépendances : les dépendances de tâches indiquent clairement quelles tâches sont


prêtes à être commencées et lesquelles sont en attente d’autres tâches.

 Communication

 Commentaires sur les tâches : commenter directement une tâche pour préciser le
travail à faire et mentionnez des collègues ou d’autres tâches et projets pour tout
connecter.

 Révision : laisser des commentaires précis directement sur les images et fichiers
PDF. Ils se transforment en tâches pour un suivi efficace.

 Révision d’image : laisser des commentaires précis sur des images pour que les
créatifs comprennent exactement le travail à effectuer.

 Gestion d’équipe

 Équipes : créer des équipes pour organiser les projets, et les relier aux collègues
les uns aux autres grâce à un calendrier et des discussions partagés.

 Collaborateurs : ajouter des collègues en tant que collaborateurs pour qu’ils


puissent suivre l’avancement de la tâche et reçoivent des notifications en cas de
mise à jour.

 Permissions : limiter l’accès aux projets, créer des équipes masquées pour les
informations sensibles ou rendre publics les équipes et projets auxquels toute
l’organisation doit accéder.

25
b. Outil Skype

Skype est un moyen simple, rapide et populaire pour les équipes distantes de rester en
contact et de collaborer. Il permet de passer des appels audio ou vidéo via Internet, ainsi
que le partage d'écran. La messagerie instantanée, le transfert de fichiers et la visioconférence
sont des fonctionnalités que Skype offre pour tous les utilisateurs.

Ce qui est utile pour organiser des réunions, et de joindre tous les membres de l’équipe, là où
ils se trouvent dans le monde.

Figure 4 Aperçu d’application de Skype

c. Google Meet

Google Meet est un service de vidéo-communication développé par Google. Il est


l’une des deux applications qui constituent la nouvelle version de Google Hangouts, Google
Meet a été un produit premium, mains maintenant il peut être utilisé gratuitement par des
groupes, des équipes, des entreprises, des organisations, des écoles et des établissements
d’enseignement supérieur. On a surtout utilisé cet outil pour les réunions quotidiennes (Daily
standup).

26
Figure 5 Aperçu de Google Meet

II.1.3 Artefacts
Les artefacts sont des informations qu'une équipe Scrum et les parties
prenantes utilisent pour détailler le produit en cours de développement, les actions pour le
produire et les actions effectuées au cours du projet. ... Pourtant, dans le développement de
logiciels, le terme artefact fait référence aux informations clés nécessaires lors du
développement d'un produit, scrum définit trois artefacts :

Product Backlog : L’approche Scrum propose de commencer par lister les exigences du client
afin de produire le Product Backlog sous forme de liste d’item ou User Story, cette liste
contient tout ce qui pourrait être requis dans le produit et est l'unique source des besoins pour
tous les changements à effectuer sur le produit.

Pour le cas de notre projet le backlog produit de notre application contient 17 environs User
Stories comme illustre le tableau suivant :

En tant qu’utilisateur

27
Le backlog est sous la responsabilité́ du product owner. Chacun peut contribuer à
collecté des éléments, mais c'est le product owner qui les accepte finalement et c'est lui qui
définit les priorités.

Sprint Backlog : En début de sprint, un but est décidé́ . Pour atteindre cet objectif, l'équipe de
développement choisit lors de la réunion de planification de sprint quels éléments du Product
Backlog seront réalisés. Ces éléments sont alors groupes dans un backlog dite Sprint Backlog.

28
Outils Scrum :

Le Taskboard est une table de 4 colonnes, dans la première on met toutes fiches représentant les
User Stories du Sprint courant. Les trois autres colonnes représentent les états par lequel chaque
tache doit passer, chaque ligne représente un ensemble de tache associée à une User Story ou
dans certains cas les bugs à corriger.

Figure 6 Exemple de scrum

BurndownChart :

C’est également durant la réunion de Daily Scrum que l’équipe met à jour le BurndownChart, qui
est une courbe qui permet de visualiser l’avancement de l’équipe sur le sprint.

29
La différence entre la ligne qui est en bleu foncé et celle qui est en rouge peut être analysée pour
en soutirer des informations précieuses.
Si la ligne rouge est supérieure à la ligne bleu, cela veut dire que l’effort estimé au
début du travail et inferieur à l’effort actuelle, Contrarient si la ligne rouge est inferieur à la ligne
bleu foncé.

II.1.4 Planification du projet


Avant de se lancer dans la réalisation du projet, il est nécessaire de prendre le temps de
découper celui-ci en tâches, afin de planifier leur exécution et le temps à allouer pour chacune d’elles.

Et pour se faire, on a utilisé le diagramme de Gantt qui est l’un des moyens les plus populaires
et les plus utiles d’afficher les activités (tâches ou événements) en fonction du temps. À gauche du
tableau, on trouve une liste des activités et, à droite, une échelle de temps appropriée. Chaque activité
est représentée par une barre ; la position et la longueur de la barre reflètent la date de début, la durée
et la date de fin de l'activité. Ceci permet donc de voir en un coup d'œil :

 Quelles sont les différentes activités.


 Quand chaque activité commence et se termine.
 Combien de temps chaque activité est pré0vue pour durer.
 Lorsque les activités se chevauchent avec d'autres activités et dans quelle mesure.
 La date de début et de fin de l'ensemble du projet.

Figure 7 diagramme de gantt

30
III- Conclusion
Dans ce chapitre, nous avons présenté l'organisation hôte, VirtuoCode, et sa société mère,
Virtuology International. Ensuite, nous avons trouvé une présentation de mon projet, qui
comprend

Le contexte général, les méthodes utilisées pour développer cette solution et le temps que
je vais consacré au développement incluent la recherche et la préparation de l'environnement et
enfin nous avons parlé de la méthode que nous avons utilisée pour communiquer entre les
membres de l'équipe.

31
Chapitre II

L’étude du marché
Dans ce chapitre, nous allons parler sur des applications qui sont déjà dans le
marché et elles font la même chose que nous voulons faire est de gérer les avis

32
Chapitre II : L’étude du marché
I - Introduction
Dans ce chapitre, je vais parler d'une application qui existe déjà et cela fait la même chose
que nous allons construire dans notre projet et nous faisons une comparaison pour voir si notre
idée existe ou est unique.

I.1 Les applications mobiles en ligne de gestion des reviews


I.1.1 LocalClarity

LocalClarity collabore avec les entreprises implantées sur plusieurs sites, à travers de
nombreux secteurs. Elle leur permet d'augmenter leur clientèle ainsi que le trafic web vers leur
site Internet, par le biais d'outils de gestion des avis client et de la réputation.

Offrant un rapport qualité-prix plus intéressant que n'importe quelle autre plateforme,
LocalClarity aide les entreprises et les agences à obtenir des informations sur les tendances
associées à l'opinion des clients, à développer des relations en répondant directement aux avis des
clients, à recueillir des informations à travers plusieurs sites ou encore à augmenter le trafic web
local. Gérer les avis de dizaines de sources dans une seule boîte de réception. Programmes
disponibles pour les entreprises de 10 à 10 000 sites et agences de toute taille.

33
I.1.2 Réputation Studio

Pour les grandes marques qui reçoivent des quantités massives d'avis clients, Reputation
Studio est la solution ORM (Mapping objet-relationnel) qui exploite l'IA pour automatiser le
processus encombrant de gestion des avis.

Automatisez la gestion de votre réputation sur n'importe quelle plateforme mondiale


(marchés, sites commerciaux locaux, plateformes d'avis, boutiques d'applications, réseaux
sociaux, etc.). Répondez aux avis et aux questions sur les sites qui le permettent. Recevez des
alertes en temps réel et utilisez les workflows, acheminez les cas et hiérarchisez les priorités pour
effectuer le travail efficacement. Facilitez l'écoute, interagissez avec les clients et collectez des
informations exploitables pour augmenter les notes et optimiser les taux de conversation.

I.1.3 Cloutly

34
Les spécialistes du marketing multisites, les franchises et les entreprises dans des
environnements concurrentiels utilisent Cloutly pour centraliser et amplifier l'impact des avis
clients sur des dizaines de sites d'avis et d'applications.

Cloutly aide à consulter, gérer et suivre les avis client ainsi qu'à y répondre via une
plateforme unique, qu'ils proviennent de Google, Facebook, TrustPilot ou de nombreux autres
sites d'avis.

Personnaliser et envoyer des invitations à laisser des avis personnalisés aux clients par e-
mail et SMS, en leur demandant de noter en ligne sur le site de votre choix. Monter dans le
référencement lors des recherches des utilisateurs en améliorant vos avis Google locaux et
affichez les avis en direct sur votre site grâce à des widgets.

II. La problématique
Selon une étude IFOP réalisée pour le compte de l’entreprise Réputation VIP, 88% des
internautes consultent des avis clients sur des blogs, forums, ou sites web spécialisés, avant
d’effectuer un achat sur un site e-commerce.

L’avis des consommateurs apparaît ainsi comme un élément clé du processus d’achat, à ne
surtout pas négliger.

En effet, si la majorité des avis sont négatifs, ou s’ils sont trop imprécis, 66% de ces
internautes vont choisir de repousser l’acte d’achat pour y réfléchir davantage, alors que 30%
vont décider directement d’aller voir ailleurs.
Autant dire que ne pas intégrer les avis clients à son site e-commerce représente un gros manque
à gagner.

Dans notre cas l’entreprise dispose déjà d'une plateforme pour gérer l'avis des clients mais le
problème est que chaque utilisateur devrait ouvrir son ordinateur et se rendre sur le site web my
Mobilosoft, puis passer à la zone de la boîte de réception pour voir les nouvelles reviews et
devrait faire le filtre pour voir toutes les reviews n'a pas répondu avant, mais si il voulait répondre
à un avis plus tard, il ne peut pas le faire à chaque fois, il devrait aller dans la boîte de réception et
faire des filtres pour obtenir les avis qu'il veut, donc le client a besoin de quelque chose pour

35
l'aider à voir les nouveaux avis à venir et à être capable d'avoir la capacité d'un contrôle total sur
les avis.

III. Solution propose


comme solution, nous avons développé une application mobile pour gérer tous les avis et
montrer au client tous les avis non répondus également avec un système de push notification
lorsqu'un nouvel avis est ajouté sur un magasin et pour permettre au client de mettre en favori
n'importe quel avis qu'il veut et il peut revenir plus tard pour y répondre ou l'ignorer.

III.1 Recueil des besoins du système

III.1.1 Les besoins techniques

Notre application doit pouvoir offrir les différentes fonctions ou services suivant :
 Un utilisateur peut se connecter à l’application et il peut visualiser
et répondre aux reviews des magasins qui gèrent.
 Chaque utilisateur il peut voir ou répondre aux les reviews des magasins qui
génèrent.
 Un utilisateur peut filtrer les reviews par statut.
 Un utilisateur peut répondre un review avec une réponse prédéfinie.
 En cas de réponse déjà fait en peut faire (update) mise à jour
 Chaque store manager peut répondre aux reviews de ses magasins.

III.1.2 Les besoins fonctionnels

Ce sont des exigences qui ne concernent pas spécifiquement le comportement du


système mais plutôt ils identifient des contraintes internes et externes du système. Les
principaux besoins non fonctionnels de notre application sont les suivants :
 Sécurité : Les comptes des utilisateurs sont sécurisés par un mot de passe (longueur, code
système, expiration de sessions, etc.), et que personne n’a la possibilité d’accéder à une
page de l’application sans passer par la page d’authentification.
 Fiabilité : Bon fonctionnement de l’application sans détection de défaillance.
 Performance : L’application répond à toutes les exigences des utilisateurs d’une manière
optimale.
 Convivialité : Un design graphique clair et simple pour faciliter l’utilisation à l’utilisateur

36
IV- Conclusion
Dans ce chapitre, nous avons parlé des applications qui nous permettent de gérer des
revues et du problème en général, nous avons également parlé de la solution proposée et pourquoi
nous avons besoin de cette solution dès que possible et nous avons divisé l'exigence en deux
options : besoin technique et besoin fonctionnel.

37
Chapitre III

Les outils et les environnements utilisés pour la


réalisation du projet

Dans ce chapitre on va présenter les langages de programmation pour la


création d’application mobile et les APIs.

38
Chapitre III : Les outils utilisés pour la
réalisation du projet

I. Introduction
Dans ce chapitre, je vais énumérer tous les outils et le framework, l'éditeur de
développement intégré (IDE), que j'ai utilisé pour créer l'application, avec une brève description
et comment j'ai utilisé tous ces outils dans l'application.

I.1 Les langages de programmation et les logiciels, Framework

I.1.1 Flutter

Figure 8 Logo Flutter framework

Flutter est un framework de développement d’applications multiplateforme ( android ,


IOS,web), conçu par Google, dont la première version a été publiée sous forme de projet open
source à la fin de l’année 2018. Flutter met à disposition une grande variété de bibliothèques
d’éléments d’IU standard pour Android et iOS.

Il reste cependant aussi adapté au développement d’applications web de bureau classiques. Les
applications développées avec Flutter prennent l’aspect d’applications typiques des systèmes
correspondants et se comportent également de manière similaire, sans que le programmeur, c’est-
à-dire vous, n’ait besoin de prêter attention à ces caractéristiques.

Le Flutter SDK se base sur le langage de programmation Dart également développé par Google.
Il se veut le successeur moderne du langage JavaScript classique et, tout comme ce dernier, il
s’exécute directement sur les navigateurs, sous forme d’application web. Les programmes Dart
peuvent aussi être exécutés directement sur un serveur.

Dans le navigateur, ils sont employés avec le trans-compilateur Dart2js dans JavaScript. Les
applications de la nouvelle plateforme Fuchsia de Google sont directement développées avec
Dart, dont la structure s’apparente à celle de langages de programmation orientés objet tels
que Java ou C# ou PHP ….

39
Dans mon application, j'ai utilisé Flutter comme framework pour créer l'interface utilisateur
fluide et comme compilateur de langage Dart. Je n'ai donc qu'à écrire un code de base et le
framework Flutter générera une version multiplateforme de l'application (android, ios …).

I.1.2 IntelliJ IDEA

Figure 9 Logo Intilijj

IntelliJ IDEA est un IDE Java intelligent qui fournit une combinaison robuste d’outils de
développement. Ses fonctionnalités clés incluent :

 Une assistance au codage intelligent

 Une navigation et une recherche intelligentes

 De nombreuses factorisations

 Une analyse des codes

 Une assistance au développement Web et d'entreprise

 Des tests unitaires, une couverture de code et la facilitation du travail en équipe.

Les fonctionnalités de IntelliJ IDEA sont continuellement étendues par les utilisateurs et
les tiers via des plugins. IntelliJ IDEA prend en charge Java EE, Spring / Hibernate et
d’autres piles technologiques.

C'est l'éditeur de développement intégré que j'ai utilisé pour écrire l'API via le langage de
démarrage Spring.

I.1.3 Spring

Figure 10 Logo Spring

40
Spring est un Framework libre pour construire et définir l'infrastructure des applications
java, dont il facilite le développement et les tests. Le Framework Spring a tout d’abord été écrit
par Rod Johnson et réalisé sous la licence Apache 2.0 en 2003.

I.1.4 Dart

Figure 11 Logo Dart langage

Dart est un langage de programmation conçu pour le développement client, par exemple pour le
Web et les applications mobiles. Il est développé par Google et peut également être utilisé pour
construire des applications serveur et bureautique. Dart est un langage orienté objet, basé sur des
classes et ramassé avec une syntaxe de style C.

C'est le langage de programmation que j'ai utilisé pour développer l'application mobile.

I.1.5 Maven

Figure 12 Logo Maven

Maven, un mot yiddish signifiant accumulateur de connaissances, a été initialement lancé


comme une tentative de simplifier les processus de construction dans le projet Jakarta Turbine.
C’est un outil de construction de projets open source développé par la fondation Apache. Il
permet notamment :

▪ D’automatiser certaines tâches : compilation, tests unitaires et déploiement des


applications qui composent le projet

▪ De gérer des dépendances vis-à-vis des bibliothèques nécessaires au projet

▪ De générer des documentations concernant le projet.

I.1.6 Hibernate

Figure 13 Logo Hibernate

41
Hibernate une solution open source de type ORM qui facilite le développement de la
couche persistance de l’application.

Hibernate permet de masquer la logique relationnelle aux développeurs objets et/ou


d’interconnecter facilement des objets avec une base de données existante. Il répond au besoin
dans les langages objets ; les données étant le plus souvent stockées dans des bases de données.

Hibernate permet d’assurer la rapidité, l’évolutivité et la maintenabilité du


développement, comme étant un Framework de mapping Objet/Relationnel. Il possède une
architecture parfaitement adaptable à tout type de développements et le support de la majorité des
bases de données du marché.

I.1.7 Google My Business API

Figure 14 Logo Google My Business

C’est une interface de programmation d’applications pour automatiser plusieurs tâches sur
Google My Business. Cela permet de gérer plusieurs emplacements et d'utiliser des
fonctionnalités telles que les publications, les réponses aux avis, les photos à grande échelle etc.

A savoir que, Google My Business est un service de référencement destiné aux propriétaires
d'entreprise et exploité par Google. GMB a pour but de donner aux propriétaires d'entreprise
davantage de contrôle sur ce qui apparaît dans les résultats de recherche. Google permet aux
propriétaires d'entreprise de vérifier les données concernant leur établissement en créant une
nouvelle fiche ou en revendiquant une fiche existante

J'ai utilisé Google Api pour lire et écrire les avis des utilisateurs qui ont évalué.

I.1.8 Facebook Developers API

Figure 15 Logo Facebook Graph API

L’API Graph est l’interface principale par laquelle les applications peuvent lire et écrire
sur le graphe social de Facebook. Accéder aux pages, aux publications, aux groupes, aux
évènements et à d’autres sections

42
J'ai utilisé Facebook Api pour lire et écrire les avis des utilisateurs qui ont évalué.

I.1.9 Google Cloud SQL pour PostgreSQL

Figure 16 Logo Google Cloud SQL

La plateforme sur laquelle on travaille utilise Google Cloud SQL pour PostgreSQL
comme service de gestion de base de données relationnelle. Il facilite la configuration, la gestion
et l'administration des bases de données. Ce cas d'utilisation est un composant fondamental d'une
architecture de micro-services reposant sur un service de stockage indépendant, ce qui permet la
décentralisation de la gestion des données et assure l'évolutivité indépendante de chaque service.

Notre base de données est hébergée sur Google cloud.

I.1.10 Git & Github

Figure 17 Logo Git

GitHub est une plateforme open source de gestion de versions et de collaboration destinée
aux développeurs de logiciels. Livrée en tant que logiciel à la demande (SaaS, Software as a
Service), la solution GitHub a été lancée en 2008. Elle repose sur Git, un système de gestion de
code open source a pour but d'accélérer le développement logiciel.
Git permet de stocker le code source d'un projet et de suivre l'historique complet de toutes
les modifications apportées à ce code. Grâce aux outils qu'elle fournit pour gérer les conflits
éventuels résultant des changements apportés par plusieurs développeurs, il est possible de
collaborer efficacement sur un même projet. GitHub facilite la programmation collaborative en
mettant une interface Web à disposition du référentiel de code de Git, ainsi que des outils
d'administration favorisant la collaboration.
GitHub fait penser à un site de réseau social sérieux sur lequel se retrouvent les
développeurs de logiciels. Ses membres peuvent suivre les activités et évaluer le travail de
chacun, recevoir des mises à jour pour des projets spécifiques et communiquer de manière
publique ou privée.

43
I.1.11 Star UML

Figure 18 Logo StarUML

C’est un logiciel de modélisation UML (Unified Modeling Language) est construit


comme un outil modulaire et ouvert. Il fournit des cadres pour étendre les fonctionnalités de
l'outil. Il est conçu pour permettre l'accès à toutes les fonctions du modèle/méta-modèle et de
l'outil via COM Automation, et il fournit une extension des éléments de menu et d'option.

I.1.12 Gantt Project

Figure 19 Logo GanttProject

GanttProject est un logiciel libre de gestion de projet écrit en Java, qui permet d'éditer
un diagramme de Gantt. Parmi les fonctionnalités principales de ce projet :

 Description de la structure de découpage du projet (en anglais "Work Breakdown


Structure"). C'est une décomposition hiérarchique, axée sur les tâches, du travail que
l’équipe de projet doit exécuter pour atteindre les objectifs du projet et produire les
livrables voulus.

 Liens multiples de précédences entre les tâches (prédécesseurs/successeurs).

 Visualisation du chemin critique.

I.1.14 Java

Figure 20 Logo java

La technologie Java définit à la fois un langage de programmation orienté objet et une plateforme
informatique. Créée par l'entreprise Sun Microsystems (souvent juste appelée "Sun") en 1995, et reprise
depuis par la société Oracle en 2009, la technologie Java est indissociable du domaine de l'informatique
et du Web. On la retrouve donc sur les ordinateurs, mais aussi sur les téléphones mobiles, les consoles
de jeux, etc. L'avènement du smartphone et la puissance croissante des ordinateurs, ont entraîné un
regain d'intérêt pour ce langage de programmation.
Java est orienté objet, ce qui implique, entre autres caractéristiques, qu'un objet tire parti de son
appartenance à une classe d'objets pour hériter du code commun à cette classe. Les objets sont

44
considérés comme des « noms » auxquels un utilisateur peut se rapporter, plutôt qu'à des « verbes
» traditionnellement utilisés dans les procédures. Ainsi, une méthode peut être considérée comme
l'une des fonctionnalités ou l'un des comportements de l'objet La machine virtuelle Java
comprend un compilateur JIT (Just-In-Time), ou compilateur à la volée qui compile
dynamiquement le code source en code exécutable au lieu de l'interpréter instruction par
instruction.
dans notre cas, j'ai utilisé JAVA Enterprise Edition (EE) est un SE Java plus quelques classes et
fonctionnalités pour permettre à Java de devenir un langage de serveur pour nous permettre
d'exécuter un serveur et de communiquer avec lui, est une application structurée avec un couches
client, métier et entreprise. Il est principalement utilisé pour développer des API pour des
applications de bureau telles que des logiciels antivirus, des jeux, etc. Il est principalement utilisé
pour développer des applications Web.

Figure 21 Logo Java EE

C'est le langage que j'ai utilisé pour construire l'API.

I.1.15 Spring boot

Figure 22 Logo spring boot

Spring Boot est un framework de développement JAVA. C'est une déclinaison du framework
classique de Spring qui permet essentiellement de réaliser des micro services (ce sont la majeure
partie du temps des services web qui sont regroupés en API).
Le principal avantage de Spring Boot est qu'il permet d'être extraordinairement productif dans la
construction de son API : il se concentre sur la partie métier de son application en laissant de côté
toute la complexité de la création d'une API. Spring se basant sur JAVA comme langage de
développement, vous êtes toujours libre de réaliser n'importe quel type de développement et
n'êtes pas bloqué dans un type de développement spécifique.
Chaque projet SpringBoot est composé de librairies dont votre projet à besoin... et de rien d'autre
! Ainsi, chaque projet Spring Boot embarque uniquement le strict nécessaire. De manière
générale, le framework propose en standard tout ce qui est nécessaire pour :

 Se connecter à toute base de données

45
 Sécuriser son API

 Créer des services web performants

 Distribuer la configuration entre les microservices

 Utiliser MVC pattern ( Model , view , controller )

 etc.

c'est le framework que j'ai utilisé pour construire l'api.

I.1.16 Firebase

Figure 23 Logo Firebase

Firebase est le nom d’une plateforme mobile de Google qui facilite la création de back-end à la
fois scalable et performant. En d’autres termes, il s’agit d’une plateforme qui permet de
développer rapidement des applications pour mobile et pour le web.
L’objectif de la création de Firebase.google.com en 2011 par James TAMPLIN et Andrew LEE
est d’éviter aux professionnels et aux particuliers de s’engager dans un processus complexe de
création et de maintenance d’une architecture serveur.
De plus, la plateforme peut être exploitée par plusieurs utilisateurs en même temps sans connaître
un quelconque bug. La praticité est également au rendez-vous grâce à ses fonctionnalités
intuitives. Depuis le rachat de la plateforme par Google en 2014, Firebase SDKs a connu de
nombreuses améliorations et n’a de cesse de satisfaire ses utilisateurs

Firebase met à votre disposition différents services pouvant être répartis en deux catégories :
➤ Les outils de développement et de test de son application ;

➤ Les outils permettant d’augmenter et d’engager ses cibles.

Cette plate-forme fournit de nombreuses fonctionnalités, mais j'ai utilisé uniquement la


fonction de messagerie Google pour permettre au responsable du magasin d'obtenir les
notifications push.

46
I.1.17 MongoDB

Figure 24 Logo mongoDB

MONGODB est la 1ère base de données NoSQL OpenSource, elle adopte un modèle de données
de type document qui lui confère une grande souplesse d’utilisation et une vraie évolutivité.
Avec MongoDB les données sont modélisées sous forme de documents JSON, le système permet
de faire évoluer le schéma de la base de données à la volée et de s’abstraire de l’utilisation d’un
ORM.
FONCTIONNALITÉS PRINCIPALES DE MONGODB

 La réplication permet de dupliquer les serveurs de base de données pour répondre à une
monté en charge ou une tolérance de panne.

 Le Sharding permet de répartir les données sur plusieurs serveurs soit pour simplement
augmenter les performances ou pour répartir les données géographiquement.

 GridFS permet de stocker simplement des fichiers en base de données.

 SIG ou Système d’information géographique permet de manipuler simplement des


positions sur un plan ou sur le globe terrestre.

 Fonction de recherche : MongoDB intègre un système de recherche optimisé en fonction


de la langue utilisée.

Il s'agit de la deuxième base de données que nous avons utilisée pour stocker les avis des
utilisateurs ainsi que les détails d'un magasin et lorsque vous surfez sur le site Web de
votre magasin, nous lisons les détails de cette base de données uniquement pour
augmenter la vitesse de lecture et d'écriture.

3.1.18 PostgreSQL

Figure 25 Logo PostgresSQL

PostgreSQL (prononcer « post-gress-Q-L ») est un système de gestion de base de données


relationnelle (SGBDR) open source développé par une équipe internationale constituée de
47
bénévoles. PostgreSQL n'est détenu par aucune entreprise ni autre entité privée, et son code
source est accessible librement et gratuitement.

PostgreSQL gère les transactions, les sous-sélections, les déclencheurs, les vues, et
l'intégrité référentielle de clé étrangère, ainsi que le verrouillage évolué. Il s'exécute sur de
nombreuses plateformes dont Linux, la majorité des offres UNIX, Mac OS-X, Solaris,
Tru64 et Windows. Il gère le texte, les images, le son et la vidéo, et inclut des interfaces de
programmation pour C / C++, Java, Perl, Python, Ruby, Tcl et ODBC (Open DataBase
Connectivity).
C'est la base de données dans laquelle nous stockons tous les avis des utilisateurs.

I.1.19 SQLite

Figure 26 Logo SQLite

SQLite est un système de gestion de base de données relationnelle contenu dans une bibliothèque
C. Contrairement à de nombreux autres systèmes de gestion de bases de données, SQLite n'est
pas un moteur de base de données client-serveur. Au contraire, il est intégré dans le programme
final. SQLite suit généralement la syntaxe PostgreSQL.

Il s'agit d'une base de données locale que j'ai utilisée pour stocker le favori d'un responsable de
magasin et pour gérer ses statistiques.

III. Conclusion

Ce chapitre décrit tous les outils et les Framework que nous avons utilisés pour créer notre
projet ainsi que les logiciels qui nous aident à gérer et publier ce projet.

48
Chapitre IV

Analyse et conception du projet


Ce chapitre est une synthèse globale de l’analyse et la modélisation de
mon projet. On y retrouve les diagrammes de cas d’utilisation, le
workflow des opérations et le diagramme d’entité-association.

49
Chapitre IV : Analyse et conception du projet

4 .1 Définition et l’utilité du l’uml


Langage de modélisation unifié « Unified Modeling Language» est un langage de modélisation
graphique à base de pictogrammes. Il est apparu dans le monde du génie logiciel, dans le cadre de
la «conception orientée objet». Couramment utilisé dans les projets logiciels, il peut être appliqué
à toutes sortes de systèmes ne se limitant pas au domaine informatique.

4.2 Les différents diagrammes de modélisation

4.2.1 Diagramme de cas d'utilisation


4.2.1.1 Définition
Le cas d'utilisation permet de structurer les besoins des utilisateurs et les objectifs correspondants
d'un système. Ils centrent l'expression des exigences du système sur ses utilisateurs : ils partent du
principe que les objectifs du système sont tous motivés. La détermination et la compréhension
des besoins sont souvent difficiles car les intervenants sont noyés sous de trop grandes quantités
d'informations : il faut clarifier et organiser les besoins des clients (les modéliser). Pour cela, les
cas d’utilisation identifient les utilisateurs du système (acteurs) et leurs interactions avec le
système. Ils permettent de classer les acteurs et structurer les objectifs du système.

 Éléments de modélisation des cas d'utilisation :

 Un acteur est un type stéréotypé représentant une abstraction qui réside juste en dehors du
système à modéliser.

 Le cas d’utilisation :

 Le cas d’utilisation (ou use case) correspond à un objectif du système, motivé par
un besoin d’un ou plusieurs acteurs. L'ensemble des use cases décrit les objectifs
(le but) du système.

 La relation :

 Elle exprime l’interaction existant entre un acteur et un cas d’utilisation.


 Formalisme :

 L'ensemble des cas d'utilisation décrit les objectifs (le but) du système.

50
4.2.1.2 Les acteurs du système

Un acteur représente un rôle joué par une entité externe (utilisateur humain, dispositif matériel ou
autre système) qui interagit directement avec le système étudié. Il peut consulter et/ou modifier
directement l’état du système. Le seul acteur qui interagisse avec l’application à concevoir est :

 Store manager (administrateur)

4.2.1.3 Diagramme

Figure 27 Use case diagram

51
4.2.2 Diagramme de classe
4.2.2.1 Définition

Le diagramme de classe exprime la structure statique du système en termes de classes et de


relations entre ces classes. L’intérêt du diagramme de classe est de modéliser les entités du
système d’information. Le diagramme de classe permet de représenter l’ensemble des
informations finalisées qui sont gérées par le domaine. Ces informations sont structurées, c’est-à-
dire qu’elles ont regroupées dans des classes. Le diagramme met en évidence d’éventuelles
relations entre ces classes.

 Le diagramme de classes comporte 6 concepts :

 Classe

 Attribut

 identifiant

4.2.2.2 Diagramme

52

Figure 28 Class diagram


4.2.3 Diagramme de séquence
4.2.3.1 Définition

Le diagramme de séquence est une variante du diagramme de collaboration.


Par opposition aux diagrammes de collaboration, les diagrammes de séquence possèdent
Intrinsèquement une dimension temporelle mais ne représente pas explicitement les
liens entre les Objets. Ils privilégient ainsi la représentation temporelle à la
représentation spatiale et sont plus aptes à modéliser les aspects dynamiques du
système.
En revanche, ils ne rendent pas compte du contexte des objets de manière explicite,
comme les diagrammes de collaboration.
Le diagramme de séquence permet de visualiser les messages par une lecture de haut en
bas. L’axe vertical représente le temps, l’axe horizontal les objets qui collaborent. Une
ligne verticale en pointillé est attachée à chaque objet et représente sa durée de vie.

4.2.3.2 Diagramme

53
Figure 29 Sequence diagram

Conclusion
Dans ce chapitre, nous avons décrit le comportement de notre système à Développer. C’est-
à-dire que nous avons effectué une modélisation via les diagrammes de cas d'utilisation et les
diagrammes de séquence et enfin via le diagramme de classes qui mettent en évidence
l'enchaînement des opérations et les relations possibles entre les services. Et à la fin, comme je l'ai
mentionné précédemment via le diagramme de classes, nous effectuons le mappage entre les entités
du système déférent.

54
Chapitre V

Réalisation
Dans ce dernier chapitre, on retrouve les différentes tâches qu’on a intégrées
pour la réalisation et la mise en œuvre de ce projet, en fonction d’une
approche itérative et incrémentale.

55
Chapitre V : Réalisation

I- Introduction
Après avoir mené à bien les phases de la conception des fonctionnalités de l’application, et
nos besoins, nous présentons dans ce chapitre la phase de la réalisation de notre application
mobile et la partie de back-end APIs.

II- Réalisation de l’application Mobile

 Écran de bienvenue, c'est le premier écran qui


apparaîtra lorsque vous ouvrez l'application et
que vous ne vous êtes pas encore connecté.

Figure 30 Welcome screen

 La page d'authentification.

56 Figure 31 Authentication screen


 Dans cette page, l'utilisateur peut afficher toutes les
critiques filtrées par site et il peut basculer entre le site
a également la nouvelle critique à venir comme
notification et il a la possibilité de voir la critique
complète ou de l'ajouter à ses favoris, il peut filtrer les
avis par statut d'avis (répondu - ignoré - m'attribuer -
pas de réponse) il existe d'autres options pour filtrer par
date ou rechercher par critères ou par étoiles et enfin
par canal.

Figure 32 Home screen

 Basculer entre les sites.

57

Figure 33 Switch between site


 Zone d'options de filtrage.

Figure 34 Filter area

 Filtrer par option de statut.

58

Figure 35 Filter by status


 Filtrer par date.

Figure 36 Filter by date

 Filtrer par canal (Facebook, Google) ou par Critères ou par


des étoiles.

Figure 37 Other filter options


59
 Après un appui long sur un avis, une fenêtre contextuelle
apparaîtra avec ces options :
 ajouter un avis à la zone favorite.
 aller à l'écran de réponse.
 afficher le nom du propriétaire de l'avis.

Figure 38 Options area

 Lorsque l'utilisateur fait glisser l'écran de gauche à droite ou s'il


vient de cliquer automatiquement sur l'icône de menu, il verra une
zone de navigation et il pourra sélectionner n'importe quelle option
comme afficher le profil ou passer à l'écran favori ou également
aller à la page de notification et il pourra modifier les paramètres de
l'application ou afficher des statistiques et enfin s'il veut nous
contacter ou voir notre politique de confidentialité et même s'il a
besoin de savoir qui nous sommes il lui suffit de choisir l'une de ces
options ci-dessous.

Figure 39 Navigation drawer options


60
 Cette page est un écran de profil et contient toutes les
informations sur l'utilisateur en tant que nom, s'abonne à des
sites ou s'il souhaite se déconnecter comme vous le voyez sur
l'image à côté de cette description.

Figure 40 Profile screen

 Lorsque l'utilisateur clique sur s'abonner à des sites, un autre écran


apparaît contenant tous les sites.

61
Figure 41 Page de sites
 Il s'agit de la page des favoris ici. L'utilisateur peut
regarder toutes les critiques préférées. Il peut également
supprimer toute critique qu'il souhaite ou peut-il accéder
à la page de réponse ou même rechercher s'il y a
beaucoup de favoris.

Figure 42 Favourite page

 Il s'agit de la page des notifications où l'utilisateur peut regarder


toutes les notifications qui n'ont jamais été traitées, ce qui
signifie que si un avis n'est pas consulté par l'utilisateur, il
apparaîtra ici et s'il souhaite répondre à l'un d'entre eux, il lui
suffit de cliquer sur cet avis .

62 Figure 43 Notifications page


 Ici l'utilisateur peut paramétrer l'application il a
deux options :

 le premier concerne les notifications par défaut il
recevra les notifications push et il peut
désactiver cette option.

 la deuxième option permet à .l'utilisateur


d'activer l'empreinte digitale comme
authentification à chaque fois qu'il ouvre
l'application. Cette option, si elle est active,
devrait avoir besoin d'utiliser son empreinte
digitale pour entrer dans l'application juste pour
sécuriser l'application.

Figure 44 Settings page

 Cette fenêtre contextuelle apparaîtra lorsque vous aurez besoin


d'activer ou de désactiver l'option d'empreinte digitale.

63
Figure 45 Fingerprint popup
 C'est la page des statistiques ici l'utilisateur peut voir un
graphique contenant le nombre d'avis qu'il a traités par
mois et ces détails seront modifiables chaque mois, par
défaut il regardera les données du mois en cours.

Figure 46 Statistics page

 C’est la page qui nous sommes si l'utilisateur veut nous


connaître.

64
Figure 47 Who we are page

 Notre page de politique de confidentialité contient tout
ce qui concerne notre politique.

Figure 48 Privacy policy page

 Ceci est la page nous contacter si vous rencontrez un problème


avec l'application.

65 Figure 49 Contact us page


 I ci, l'utilisateur peut regarder le message de révision et il
peut répondre par un message. Il a également la possibilité
de choisir parmi les messages déjà définis appelés réponse
standardisée ou s'il veut voir la réponse plus ancienne, il
peut simplement cliquer sur la flèche ci-dessous pour
accéder à la page des réponses ou il a la possibilité
d'ignorer cet examen, il suffit de cliquer sur le bouton
ignorer (SKIP) au-dessus de l'écran.

Figure 50 reply page

 Ici, un utilisateur peut regarder toutes les réponses plus anciennes


sur un avis.

66
Figure 51 Older answers
 Ici, l'utilisateur peut appuyer longuement sur une réponse
pour la mettre à jour, car il peut également choisir parmi
une réponse prédéfinie ou ajouter son propre message et
cliquer sur Envoyer pour mettre à jour l'ancienne réponse.

Figure 52 Update answer bottom sheet

 Cette page contient toutes les réponses standardisées.

67
Figure 53 Canned reply page
III- Réalisation des APIs
Pour l'API, j'ai utilisé Spring Boot pour les écrire, nos points de terminaison nous
permettent d'accéder aux données et de communiquer avec la base de données dans mon back-
end. J'ai 14 points de terminaison, tous les ont utilisés pour gérer les actions de l'utilisateur, je
vais donc les énumérer ci-dessous :

III.1 Authentification d'utilisateur

 Dans ce point final, je dois envoyer les informations d'identification de l'utilisateur


pour l'authentifier, puis renvoyer les détails de l'utilisateur s'il a des informations
d'identification correctes, sinon je renvoie un message d'erreur, j'envoie également
avec les informations d'identification de l'utilisateur quelque chose appelé jeton
firebase pour laisser l'utilisateur en cas d'informations correctes la possibilité
obtenir les notifications en utilisant le SDK d'administration firebase.

Swagger : Authentification End point

68
III.2 Obtenir les détails de l'utilisateur après authentification

 Ici, après qu'un utilisateur se soit déjà connecté à l'application, j'ai utilisé ce point
de terminaison pour valider le jeton (Token) de l'utilisateur s'il est modifié, je dois
le chasser de l'application, sinon je lui donnerai l'accès pour surfer sur l'application.
Swagger : obtenir les détails de l'utilisateur

III.3 Modifier la réponse

 Dans ce point final, je peux mettre à jour la réponse qui a été ajoutée auparavant
lors d'un examen.
Swagger : modifier la réponse

69
III.4 Charger les avis

 Ici, nous demandons au point de terminaison d'obtenir les avis d'un site.
Swagger : obtenir les avis

III.5 Charger plus des avis

 Pour réduire le temps de réponse, nous chargeons 10 avis à la fois.


Swagger : Charger plus des avis

70
III.6 Charger les réponses précédentes sur un avis

 Nous utilisons ce point de terminaison pour charger les réponses précédentes sur un
avis.
Swagger : Charger les réponses précédentes

III.7 Charger les réponses prédéfinies

 Ici, nous chargeons les réponses standardisées pour les utiliser comme réponse à un
avis.
Swagger : Charger les réponses prédéfinies

71
III.8 Mettre à jour le statut d'une notification

 Lorsqu'un utilisateur clique sur une notification, nous mettons à jour ce statut de
notification de non visible par l'utilisateur à visible, juste pour le supprimer de la
zone de notification plus tard.
Swagger : Mettre à jour le statut d'une notification

III.9 Charger les notifications

 Chargez toutes les notifications, ce qui signifie que les avis n'ont pas été traités par
l'utilisateur.
Swagger : Charger les notifications

72
III.10 Répondre à un avis

 Ce point final utilisé pour répondre à un avis par votre propre message ou choisir
une réponse standardisée.
Swagger : Répondre à un avis

III.11 Passe à un avis

 Ce point final utilisé pour passe à un avis.


Swagger : Passe à un avis

73
III.12 Envoyer la notification push à l'appareil de l'utilisateur

 Ce point de terminaison utilisé par notre back-end pour envoyer la notification en


temps réel aux utilisateurs lorsque la nouvelle critique arrive, nous avons juste
besoin du jeton utilisateur pour l'utiliser par firebase pour lui envoyer la nouvelle
notification.
Swagger : Notification push api

III.13 Ajouter des balises à un avis

 Nous avons utilisé ce point final pour ajouter les balises à une critique, puis plus
tard, nous pouvons utiliser ces balises pour filtrer nos critiques afin de trouver
rapidement ce que nous voulons.
Swagger : Ajouter des balises

74
III.14 Supprimer des balises à un avis

 Nous avons utilisé ce point de terminaison pour supprimer les balises d'un avis.

Swagger : supprimer des balises

IV. Conclusion
L'idée principale de ce dernier chapitre était de présenter le résultat de mon
projet, ce qui signifie que je dois extraire une description de la phase de mise en
œuvre du projet. Ensuite, j'ai expliqué les fonctionnalités de la solution faite avec
les images ci-dessus des interfaces d'application.

75
Conclusion générale et perspectives
Le projet de ma fin d'études, réalisé au sein de VirtuoCode, a consisté à
développer une application mobile appelée MyMobilosoft pour gérer les avis des
clients sur facebook et google depuis appareil mobile dans deux plateforme IOS et
Android Pour la réalisation de ce projet, j'ai commencé par une étude fonctionnelle
des besoins spécifiques, ainsi que de l'environnement de déploiement tout en
respectant les exigences techniques car le système back-end existe déjà.

La phase d'implémentation m'a permis de faire la communication entre


l'application et le
back-end via l'API.

L'expérience que j'ai eu lors de ce stage a été très riche j'ai appris beaucoup
de techniques et d'astuces. Côté technique,
J'ai approfondi mes compétences en technologie et outils. Au niveau relationnel,
j'ai compris que l'esprit d'initiative, le sens des responsabilités et la capacité à
communiquer sont essentiels à la réussite de tout projet informatique. Enfin, sur
Sur le plan personnel, j'ai développé mes capacités d'autonomie, de patience et de
persévérance.

Ce stage m'a permis de consolider mes connaissances acquises au cours de


ma formation.
Comme perspective d'avenir, il serait intéressant de déployer cette solution et
aussi de la développer pour qu'elle soit encore plus améliorée surtout si nous
ajoutons l'apprentissage automatique pour permettre au client de voir les avis sur
ses propres magasins s'ils sont positifs ou négatifs en utilisant l'algorithme
d'apprentissage automatique. Aussi pour faire plusieurs graphiques pour garder le
directeur du magasin très proche de son client pour voir les commentaires sous
forme de graphiques.

76
Webographie

 https://stackoverflow.com/
 https://flutter.dev/
 https://pub.dev/
 https://github.com/
 https://www.baeldung.com/
 https://spring.io/projects/spring-boot
 https://www.sqlite.org/index.html
 https://www.mongodb.com/
 https://www.postgresql.org/
 https://firebase.google.com/docs/firestore/quickstart

77

Vous aimerez peut-être aussi