Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
N° d’ordre :
En vue de l’obtention
Réalisé par :
IKHARMEJ Abderrazaq
Encadré par :
Pr. MOUSSAID Ahmed (ENSA Al-Hoceima)
M. AZOUAGH Noureddine (VirtuoCode)
À mon très cher père, celui qui m’a toujours indiqué la bonne voie, en signe d’amour, de
gratitude pour tous les soutiens et les sacrifices dont il a fait preuve à mon égard,
Nul mot ne saurait exprimer à sa juste valeur le dévouement et le profond respect que je
porte envers vous. Que DIEU vous préserve et vous accorde, santé, bonheur et prospérité
À mon cher frère, qui est toujours là pour moi et à mes côtés, disposés à me tendre la
main et à me soutenir dans tout ce que j’entreprendrai.
À toute ma famille,
Abderrazaq IKHARMEJ
MOUSSAID Ahmed qui m’a encadré, soutenu, accompagné durant cette période
encouragements, ainsi que pour le temps qu’il m’a consacré tout au long de cette
période de stage.
toutes les connaissances nécessaires durant mes cinq années d’études, et ce dans
The objective of the internship was to actively participate in the design and
implementation of the new hub "Campaign Beta" which is a new hub that will be added to the
existing hubs in the platform MyMobilosoft, it has as objective to publish organic campaigns
on three channels (Facebook, store Locator, Google My Business cards) and paid on google
AdWords . Campaign Beta is composed of two parts: The first is dedicated to organic
campaigns, and the second dedicated to paid campaigns.
The implementation of this project took place with new technologies mainly Spring
Boot, Javascript, Template engine thymeleaf and relying on several APIs including Google
AdWords API, Google My Business API, Facebook Graph API, YouTube API, Cloudinary.
This document represents a complete synthesis of the work development, detailing all
the processes put in place to make this project happen.
HQ headquarters
MVC Modèle-vue-contrôleur
ABSTRACT ............................................................................................................................. V
CHAPITRE 1 : ......................................................................................................................... 3
INTRODUCTION ........................................................................................................................ 4
1. PRÉSENTATION DE L’ORGANISME D’ACCUEIL ...................................................................... 4
1.1. Présentation du groupe Virtuology International ......................................................... 4
1.1.1. L’écosystème ........................................................................................................ 4
1.1.2. Les valeurs........................................................................................................... 5
1.2. Présentation de la société VirtuoCode ......................................................................... 6
2. PRÉSENTATION DU PROJET ................................................................................................... 7
2.1. Contexte du projet ........................................................................................................ 7
3. PROBLÉMATIQUE ............................................................................................................... 10
4. PILOTAGE ET CONDUITE DE PROJET .................................................................................... 10
4.1. Choix de la méthode .................................................................................................. 11
4.1.1 Aperçu de la méthodologie SCRUM ................................................................... 11
4.1.2 Les rôles de la méthodologie SCRUM ................................................................. 12
4.1.3. Fonctionnement de SCRUM ............................................................................... 12
4.2. Communication entre les membres d’équipe ............................................................. 14
4.2.1 Outil Asana ........................................................................................................... 15
4.2.2 Outil Skype ........................................................................................................... 16
4.2.3 Google Meet ......................................................................................................... 17
4.3. Planning du projet ...................................................................................................... 17
CONCLUSION ......................................................................................................................... 22
ETUDE TECHNIQUE........................................................................................................... 53
INTRODUCTION ...................................................................................................................... 54
1. ARCHITECTURE DU PROJET ................................................................................................ 54
1.1 Architecture MVC ...................................................................................................... 54
1.2. Architecture multi-tier ............................................................................................... 55
2. LES CHOIX TECHNOLOGIQUES ET FRAMEWORKS UTILISÉS ................................................. 56
2.1. Environnements de développement ........................................................................... 57
2.1.1. IntelliJ IDEA ....................................................................................................... 57
2.1.2. Spring .................................................................................................................. 57
2.1.3. Maven .................................................................................................................. 58
2.2. Frameworks, Bibliothèques et APIs .......................................................................... 59
2.2.1. Spring Boot ......................................................................................................... 59
2.2.2. Spring Data .......................................................................................................... 59
2.2.3. Hibernate ............................................................................................................ 60
2.2.4. MyBatis ............................................................................................................... 60
2.2.5. Google My Business API ................................................................................... 61
2.2.6. Facebook graph API ........................................................................................... 61
2.2.7. Google Ads ......................................................................................................... 62
2.2.8. Google Ads API .................................................................................................. 64
2.2.9. Cloudinary API .................................................................................................. 64
2.2.10. Youtube Api ..................................................................................................... 65
2.2.11. Stripe ................................................................................................................ 65
2.2.12. AJAX/jQuery ................................................................................................... 65
2.3. Bases de données ....................................................................................................... 66
2.3.1. Google Cloud SQL pour PostgreSQL ................................................................. 66
2.4. Système de gestion de code ....................................................................................... 66
2.4.1. Git & GitHub ...................................................................................................... 66
2.5. Modélisation et gestion de projet ............................................................................... 67
2.5.1. Lucid................................................................................................................... 67
2.5.2. GanttProject ........................................................................................................ 67
CONCLUSION ......................................................................................................................... 68
CHAPITRE 4 : ....................................................................................................................... 69
INTRODUCTION ...................................................................................................................... 70
1. PRÉSENTATION DU MODULE CAMPAGNE............................................................................ 70
1.1. aperçu des campagnes organiques et payantes .......................................................... 70
1.2. Gestion bibliothèque d’images .................................................................................. 71
1.2.1. Aperçu ................................................................................................................. 71
1.2.2. flux de création .................................................................................................... 71
1.3. Gestion des thèmes .................................................................................................... 75
1.3.1. Aperçu ................................................................................................................. 75
1.3.2. Création d’un nouveau thème ............................................................................. 75
1.3.3. Modification d’un thème: .................................................................................... 76
1.4. Gestion des Templates ............................................................................................... 78
1.4.1. Aperçu ................................................................................................................. 78
1.5. Gestion des campagnes organiques : ......................................................................... 83
1.5.1. Processus de création : ............................................................................................ 83
1.6. Booste des campagnes ............................................................................................... 87
1.6.1. Création d’une campagne payante ...................................................................... 87
1.7. Gestion de porte-monnaie .......................................................................................... 94
1.8. statistique des campagnes .......................................................................................... 97
CONCLUSION ......................................................................................................................... 98
Introduction générale
La publicité désigne l’ensemble des actions mises en œuvre par une entreprise
artisanale, commerciale ou industrielle pour se faire connaître et communiquer sur ses produits
et/ou prestations afin d’en promouvoir la vente. Le but suggéré étant d’inciter à la
consommation et d’influencer le choix du public ou des clients. L’objet consommable peut être
matériel (bien, produit), immatériel (service, événement) ou même institutionnel (la marque
elle-même). La communication est nécessaire pour les entreprises, car elle permet de maintenir
le lien avec les clients et promouvoir leurs marques. Afin de continuer dans cette tendance, et
malgré l’apparition du Covid19 qui a choqué le monde et a fait tourner les économies, puisque
La pandémie a affecté chaque partie de notre vie ; des endroits où nous pouvons aller, la façon
dont nous passons notre temps, les priorités que nous avons et à la façon dont nous dépensons
notre argent. Ce qui cause bien sûr de vastes ramifications sur le marketing, la publicité et le
commerce électronique. Les entreprises ont dû s’adapter en s’appuyant sur de nouveaux canaux
de communication.
Le marketing digital a, en effet, pris une grande place au sein de la stratégie des
annonceurs. Cette stratégie des marques a fait une croissance de demande des services et
solution qui offre et assure des canaux de publicité. Cette augmentation de demande a fait
augmenter la concurrence entre les entreprises qui offrent un tel service.
Dans un tel contexte, rester compétitif n’est pas une tâche aisée. Ce qui pousse les entreprises
à engager des processus pour faciliter et améliorer leur service et apporter de la nouveauté allant
bien au-delà des fonctionnalités liées aux nouveaux besoins.
Par ailleurs, il est essentiel que ces entreprises choisissent toute une gamme de méthodes
de traitement pour garantir ces changements et rester concurrentielles. On y retrouve les
campagnes gratuites et payantes, qui permettent aux entreprises de fournir à leurs clients
potentiels les informations dont ils ont besoin pour choisir quand et comment se rendre dans
leurs magasins.
Dans ce sens s’inscrit mon projet de fin d’étude qui porte sur le développement d’un
module de gestion des campagnes publicitaires organiques et payantes au sein de l’entreprise
VirtuoCode.
Dans un deuxième temps, on fera une étude préliminaire, qui met l’accent sur les notions
de base de mon projet. Il définit et explique les besoins fonctionnels et opérationnels du projet.
Tout projet informatique doit être soumis à une phase d’analyse et modélisation avant
sa réalisation, et le chapitre deux détaille cette étape pas à pas.
L’avant dernier chapitre, soit le troisième, est une étude technique du projet, qui
explique le fonctionnement technique de mon travail, ainsi que les technologies outils qu’on a
exploitées et le traitement des campagnes gratuites et payantes. Pour ce dernier, on y retrouve
la solution choisie, et le pourquoi de ce choix.
Par définition modulaire et formée à la coopération, chaque société a dans son ADN une
facilité à collaborer avec des équipes externes. Le groupe met à disposition ses méthodologies
et ses outils pour rendre les projets harmonieux et efficaces lorsque plusieurs compétences
renforcent un même projet.
Ce groupe englobe environ Vingt-six Startups, toutes actives dans le marketing digital.
Ces valeurs sont le ciment qui permet de construire, progresser et traverser les moments
difficiles sans dévier de la trajectoire. Elles permettent de construire un lien qui va au-delà de
la simple collaboration, elles permettent de donner un sens à la stratégie de l’entreprise et
permettent à chacun de se l’approprier.
a) Intégrité et transparence
L’intégrité est la base de la confiance. Le management et les collaborateurs doivent être
transparents dans les décisions qu’ils prennent et respecter le cadre juridique, éthique et moral
en toutes circonstances. Ce précepte ne doit connaitre aucune exception, ni pour les petites
décisions ni pour les grandes.
b) Excellence
L’excellence ne doit pas être vécue comme une contrainte mais plutôt comme une fierté
de donner le meilleur de nous-mêmes dans toutes nos actions. Elle s’exprime tant dans le savoir-
faire métier que dans le savoir-être personnel.
c) Solidarité
La solidarité crée un cadre de soutien mutuel et permet à chacun de s’appuyer sur les
autres afin d’être plus forts ensembles. La solidarité est la capacité d’aider ceux qui nous
entourent, mais également de demander de l’aide lorsque nous en avons besoin.
d) Respect
Le respect est une valeur cardinale qui connaît plusieurs facettes : que ce soit le respect
de la parole donnée en interne, à nos clients ou à nos partenaires, le respect dans les relations
humaines, ou encore le respect de notre environnement. Nous voulons en tout point être dignes
de la confiance qui nous est faite.
e) Joie
Structure de l’entreprise :
2. Présentation du projet
Mon projet s’inscrit dans le cadre des projets réalisés pour la société Mobilosoft,
notamment le projet « MyMobilosoft » afin de développer un module de gestion des campagnes
publicitaires organiques et payantes
Avant d’entamer la partie contexte du projet, il faut tout d’abord en avoir un aperçu sur
MyMobilosoft, qui est une société spécialisée dans le marketing digital. Elle offre des solutions
web-to-store qui sont un pont du marketing digital dont l’objectif est de répondre à des
nouveaux modes de consommation en offrant aux entreprises des outils leur permettant
d’utiliser Internet pour générer du trafic en point de vente physique (restaurants, magasins,
bureaux). Grâce à ses produits, Mobilosoft aide ses clients à gérer leurs données afin qu'elles
puissent proposer des informations vérifiées dans les résultats de recherche.
• Location
Le premier produit est dédié à la gestion de la localisation des points de vente, ce produit
s’occupe de la création et de la gestion du contenu des pages locales optimisées pour la
recherche.
Ce produit consiste à gérer le contenu et les informations des magasins des clients sur Google,
Facebook et sur les sites internet des magasins.
Ci-dessous un exemple d’une fiche Google gérée par la plateforme MyMobilosoft pour un
magasin Carrefour :
- Les informations générales : le nom du magasin, le numéro de téléphone, le lien du site web
du magasin…
- Les services.
2- Optimiser le référencement naturel des pages web des magasins sur les
moteurs de recherche web.
• Campaign
Ces contenus vont être diffusés sous la forme de « Posts » (publications) gratuites sur
les pages magasins (Store Locator, Google et Facebook). Ils prennent le format de publication
d’images, de textes et/ou de vidéos.
• Inbox
Le troisième permet la gestion des avis clients. Ce produit permet aux clients de récupérer
les avis déposés par les consommateurs sur les pages points de ventes dans Google et Facebook,
de les présenter dans une interface web et d’y répondre en toute simplicité. Le bénéfice de cette
gestion est l’amélioration de la réputation des magasins en ligne. Une bonne gestion des avis
d’un magasin est en effet prise en compte par les moteurs de recherche web pour le
référencement des pages de ces magasins. Cette gestion aide aussi les magasins à fidéliser la
clientèle et ainsi à améliorer l’expérience de ses clients dans ces magasins par le biais de
rapports mis à disposition des magasins.
• Customer
Le dernier produit est connu communément dans Mobilosoft sous le nom « Customer »
ou des projets des clients à la demande, ce produit englobe tous les services et les prestations
que Mobilosoft offre à ses clients et qui ne font pas partie des produits cités précédemment.
- Des adaptations particulières des trois premiers produits cités précédemment pour les
clients qui désirent sortir du standard des produits de Mobilosoft.
- Support et accompagnement des clients dans des projets de mise en place des stratégies
de marketing.
3. Problématique
Acquérir de nouveaux clients demeure indispensable. L’entreprise doit donc offrir des
solutions pour leurs besoins avec une expérience utilisateur optimale et de nouvelles
fonctionnalités pour regrouper leurs attentes dans le côté marketing digital.
Alors le projet myMobilosoft contient plusieurs Hub comme on vient de le voir, mais le
Hub le plus demandé dans cette période et surtout après les changements causés par Covid 19
est le Hub campagne qui offre seulement une solution pour les campagnes organiques, alors
que les clients cherchent à augmenter leurs présences par des campagnes payantes.
Sans omettre, l’expérience utilisateur qui connait une faible satisfaction d’après les
commentaires des clients potentiels de Mymobilosoft qui trouvent des difficultés sur le flux
existant, ainsi que les droits d’utilisateurs qui sont inclus dans cette version et qui génèrent
beaucoup de problèmes au niveau de publication des campagnes.
Tout cela prend place dans notre problématique ; qui va être fragmentée en deux parties,
la première est de chercher à faire une nouvelle version au Hub campagne organique quant à la
deuxième partie va être consacrée aux campagnes payantes pour répondre bien aux attentes de
ses nombreux clients.
Le but est d’offrir des solutions aux clients pour qu’ils minimisent leur temps et
augmentent leurs présences, à titre d’exemple Carrefour Belgique a plus de 800 magasins alors
par une seule clique il peut faire une action en groupe pour publier une campagne que ça soit
organique ou payante.
Ainsi, au lieu de fixer les objectifs lointains, le mieux serait de procéder par étapes,
c’est-à-dire fixer des objectifs à court terme et de commencer le développement sans perdre de
temps. Chaque fois que cet objectif est atteint, nous passons au suivant et ainsi de suite jusqu’à
ce que le but ultime soit atteint.
Ceci nous a permis de construire une certaine agilité au niveau de notre projet, et aussi
la mise en place de certaines valeurs agiles comme :
● Favoriser les individus et les interactions plutôt que les processus et les outils.
Pour toutes les raisons citées précédemment « Scrum » y répond et nous a permis aussi
d’avoir une bonne réactivité et une flexibilité aux changements des exigences.
La méthode agile Scrum consiste à focaliser les efforts d'une équipe sur des
fonctionnalités définies. Ceci afin de livrer un logiciel partiellement fonctionnel et enrichi au
fur et à mesure.
Le point fort de cette méthode est que le client est impliqué dans toutes les phases du
développement pour que le produit soit en final ce qu'il espérait. Chaque fonctionnalité est
divisée en plusieurs tâches, tout en prenant soin de bien s'assurer que la même fonctionnalité
ne devra pas être modifiée après suite à l'ajout d'une autre.
- Product Owner : Il représente généralement le client, qui porte la vision du produit à réaliser,
dans notre cas c’est M. AZOUAGH Noureddine.
- Scrum Master : Sa mission est de tout mettre en œuvre pour que l'équipe travaille dans de
bonnes conditions et se concentre sur l'objectif du projet, dans le cadre de notre projet c’est M.
Amine Hamri
- L’équipe SCRUM : Une équipe regroupant tous les rôles traditionnels : développeur, testeur,
administrateur, etc. Cette équipe est responsable de développer le produit.
L’utilisation des méthodes agiles est une solution efficace pour modifier les pratiques de travail
et apporter de la souplesse et de la réactivité dans les organisations. Scrum, l’une des méthodes
les plus populaires, s’adapte parfaitement à la gestion de projet.
Toutes les activités (Sprint, réunion de planning, revues, rétrospective et mêlée) décrites dans
la méthode Scrum sont effectuées lors des boîtes de temps.
● Le sprint : Le sprint est une période d'un mois au maximum, au bout de laquelle l'équipe
délivre un incrément du produit, potentiellement livrable. La durée du sprint reste constante
pendant toute la durée du développement. Un nouveau sprint démarre dès la fin du précédent.
Chaque sprint possède un but et on lui associe une liste d'éléments et de fonctionnalités à
réaliser.
● Réunion quotidienne : Chaque journée de travail commence par une réunion de 15 minutes
maximum appelée Daily Scrum ou StandUp.
Dans ce type de réunion le Scrum Master pose 3 questions à chaque équipier, à tour de rôle :
Ce qui nous a permis de ne pas laisser traîner ni un gros souci, ni un point de blocage, mais de
le résoudre assez rapidement, car en répondant à ces questions, on identifie les obstacles qui
freinent notre avancement au projet.
Parmi les outils qu’on a utilisés pour bien établir cette communication, on note:
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.
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.
É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 l'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 taches 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.
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.
Google Meet est un service de vidéocommunication développé par Google. Il est l’une
des deux applications qui constituent la nouvelle version de Google Hangouts, Google Meet été
un produit premium, mais maintenant il peut être utilisé gratuitement par des groupes, des
équipes, des entreprises, des organisations, des écoles et des établissements d’enseignement
supérieur.
- Lorsque les activités se chevauchent avec d'autres activités et dans quelle mesure.
1.1. Définitions
Avant de commencer à détailler les grandes lignes du projet, une définition de quelques termes
utilisés dans ce qui suit s’avère nécessaire.
● Campagnes organiques : est un contenu diffusé sous forme de “Post” (publication) gratuit
sur les pages magasins (Store Locator, Google et Facebook).
● Campagnes Locales :
▪ Les campagnes locales permettent aux store managers d'utiliser MyMobilosoft pour
publier des campagnes publicitaires au niveau local sur les points de vente liés aux pages
Facebook, Google My Business ou Store Locator. Ils pourront par exemple publier des
informations à propos de nouveaux produits, de promotions disponibles ou encore
d'événements organisés dans leurs points de vente.
▪ Les médias disponibles peuvent varier en fonction des enseignes, de l'existence de ces
pages locales sur chacun des médias et d'un lien de ces pages à Mobilosoft.
● Campagnes Nationale :
Les campagnes nationales permettent aux HQ managers (Responsable de siège)
● Template : est un modèle de campagne créé par le siège et partagé sur des magasins. Il peut
être utilisé par les utilisateurs ayant les mêmes magasins que ce dernier.
Notre choix a été le langage UML comme langage de modélisation, car la notation UML
est la plus appropriée pour des projets orientés objet. Ce choix peut être justifié également par
plusieurs raisons :
● UML est aujourd’hui un standard, adopté par les grands constructeurs de logiciels du
marché, etc.
Les interfaces doivent être faciles à utiliser. Ceci permettra à une personne lambda n’ayant pas
un background informatique de pouvoir exploiter notre solution aisément.
Le système doit être conforme à une architecture standard et claire permettant sa maintenance
et sa réutilisation.
● Scalabilité :
Le travail doit être extensible, c’est-à-dire qu’il maintient ses fonctionnalités et ses
performances en cas de changement, aussi bien qu’il pourra y avoir une possibilité d’ajouter ou
de modifier de nouvelles fonctionnalités à tout moment.
● Sécurité :
Notre solution doit respecter la confidentialité des données personnelles des clients.
• Scénario nominal : C’est le scénario qui est censé être observé lors de l’exécution du cas
d’utilisation.
Acteurs HQ
Enchaînement
Scénario nominale
▪ L’acteur fait glisser une ou plusieurs images pour les télécharger ou les sélectionner
directement depuis son ordinateur
▪ le système affiche la deuxième étape pour donner la possibilité à l’acteur de Modifier les
métadonnées des images
▪Le système affiche la troisième étape où l’acteur peut partager ces images avec les points de
ventes qu’ils gèrent.
● Scénario « partager une image » le partage avec les magasins que l’acteur gère
▪ Le système affiche la liste des magasins que l’acteur gère avec les données du rappel
Scénario Alternatif
Acteurs HQ
Enchaînement
Scénario nominale
▪ Le système affiche la deuxième étape pour que l’acteur saisit la disponibilité du template
▪ Le système affiche la troisième étape où l’acteur peut partager template avec les points de
ventes qu’ils gèrent.
● Scénario « partager un template » le partage avec les magasins que l’acteur gère
▪ Le système affiche la liste des magasins que l’acteur gère avec les données du rappel
Scénario Alternatif
● Gestion Campagne :
Acteurs HQ ou Franchisé
Enchaînement
Scénario nominale
▪ Le système affiche la deuxième étape pour que l’acteur choisit la forme de la campagne
▪ Le système affiche la quatrième étape où l’acteur peut partager campagne avec les points de
ventes qu’ils gèrent.
▪ Le système enregistrer les données et donne la possibilité soit de revenir à la page d'accueil
ou de booster cette campagne
▪ L’acteur fait son choix
Dans ce scénario on deux possibilités soit l’acteur va faire booster la campagne juste après la
création car on lui propose de la booster, sinon il peut la booster en choisissant une campagne
de puis la liste des campagnes organiques ; dans les deux cas il va passer par le même
processus qui passe en 5 étapes. Donc prenant par exemple ce cas :
▪ L’acteur choisit campagne à booster
Dans cette étape, l’utilisateur doit choisir sur quelle channel il veut booster la campagne. Les
channels proposées sont de type payant (Google Ads, Facebook Boost).
▪Le système affiche la deuxième étape, cette étape est dédiée pour remplir les éléments
publicitaires (Assets). Elle propose un formulaire prérempli par les données de la campagne
organique.
▪Le système affiche la troisième étape qui a comme objectif de définir le budget / le montant
prêt à être dépensé chaque jour, pour chaque magasin
▪L’acteur remplit ses choix pour le montant qu'il veut dépenser sur cette campagne.
▪L’acteur remplit le formulaire par les informations de sa carte bancaire pour faire le paiement
▪Le système enregistre les données possibles et si tout se passe bien, on retrouve la campagne
Google Ads dans le tableau de bord et on peut vérifier dans l’interface de google ADs on
trouve toutes les données saisies par utilisateur. En plus, le système envoie un mail à
l'utilisateur contenant la facture.
Scénarios d’erreur :
▪si on a une erreur lors du boost de campagne le système fait toujours enregistré les
mouvements afin d’avoir une historique des paiements et même si on a une erreur et le boost
soit erroné le montant dépensé va être dans une porte-monnaie avec cet monnaie utilisateur
peut booster encore une fois sans avoir l’obligation de payer du coup l’utilisateur va jamais
perdu son argent à cause d’une erreur quel que soit sa source .
Scénario Alternatif
4. Diagramme de séquence
La description textuelle seule ne suffit pas puisqu’il est difficile d’y montrer comment les
enchaînements se succèdent. De plus, la maintenance des évolutions s’avère souvent
fastidieuse. C’est pour cette raison qu’il est recommandé de compléter les diagrammes des cas
d’utilisation par des diagrammes de séquences. Ces derniers représentent les échanges de
messages entre objets, dans le cadre d’un fonctionnement particulier du système.
Dans les deux diagrammes suivants, nous présentons le scénario relatif au cas
d’utilisation « suppression d’une campagne organique ».
Dans les deux diagrammes suivants, nous présentons le scénario relatif au cas
d’utilisation « Statistiques des campagnes » et « Aperçu des campagnes ».
1. Architecture du projet
1.1 Architecture MVC
Avant d'entamer l'architecture de la plateforme, il faut passer tout d’abord par
l'architecture de base qui est le MVC qui est un motif d'architecture logicielle destiné aux
interfaces graphiques et très populaire pour les applications web. Le motif est composé de trois
types de modules ayant trois responsabilités différentes : les modèles, les vues et les contrôleurs.
Lorsqu’un utilisateur interagit avec l’application : cette action est prise en charge par le
Contrôleur, qui fait alors appel au Modèle. Celui-ci va réaliser l'action fonctionnelle et
éventuellement interagir avec une base de données, après une fois le travail du Modèle terminé,
le Contrôleur met à jour la Vue qui est renvoyée à l'utilisateur.
● Les tiers (Modules) partagent les mêmes couches métier, persistance et modèle.
● La possibilité de développer et tester les couches séparément en mettant en place des
interfaces.
● Une seule commande est nécessaire pour construire tous les projets, y compris les
sous-modules.
Dans notre cas, on arrive à matérialiser ce genre de découpage grâce à des modules Maven
sous forme des sous-projets, chacun fournissant ses livrables avec la possibilité de créer des
dépendances entre eux
Une analyse profonde avant tout choix final d’une technologie est nécessaire car un
mauvais choix va dévaloriser mon travail. C’est la raison pour laquelle on a consacré plus de
temps et d’effort en travaillant là-dessus.
Après l’étude des fonctionnalités des différentes technologies, j’ai opté pour une liste
des technologies les plus sophistiquées qu’on va développer dans le paragraphe ci-dessous.
IntelliJ IDEA est un IDE Java intelligent qui fournit une combinaison robuste d’outils de
développement. Ses fonctionnalités clés incluent :
● De nombreuses factorisations
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.
2.1.2. Spring
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.
2.1.3. Maven
Il est aujourd’hui difficile d’étudier une architecture de micro services en Java sans
parler de Spring Boot. Certes il existe d’autres Framework (Dropwizard, Spark Java) mais la
souplesse d’utilisation de Spring Boot et son intégration à l’écosystème Spring font de son
utilisation une évidence, ce qui justifie le fait que le choix de la société pour le développement
de la plateforme MyMobilosoft se soit porté sur Spring Boot, bien qu’il en existe des dizaines
d’autres.
Spring Boot est considéré comme une enveloppe de Spring crée pour répondre aux
besoins de redéfinir la même configuration à plusieurs endroits du code donc c’est un
Framework conçu pour simplifier le démarrage et le développement de nouvelles applications
Spring.
Spring Data est un projet supplémentaire de Spring créé pour répondre aux besoins
d’écrire plus simplement l’accès aux données. Il s’interface avec plusieurs sources de données
parmi lesquelles JPA, REST, MongoDB et quelques autres.
Hibernate est une solution open source de type ORM qui facilite le développement de
la couche persistance de l’application.
2.2.4. MyBatis
La différence majeure entre JPA et MyBatis, c’est que le premier opère un mapping des
objets sur des tables (les entités), alors que le second ne travaille qu’avec des requêtes.
JPA crée un couplage entre la base de données et le modèle objet par le biais d’annotations (ou
en XML) là où MyBatis offre beaucoup de souplesse pour le mapping.
Il est même possible de mapper les résultats sur des classes qu’on ne peut pas modifier
(classes issues de bibliothèques tierces ou développées par une autre équipe par exemple).
● Personnalisation du mapping
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 .
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.
Google Ads, anciennement appelé Google AdWords, est un système de publicité par
liens sponsorisés, qui appartient à Google. Il a été créé en vue d'optimiser les résultats de
recherche de ses utilisateurs. En effet, le logiciel affiche des bannières publicitaires en fonction
des mots-clefs recherchés par l'utilisateur. Cet outil joue un rôle important pour le marketing et
la publicité des sites Internet commerciaux. Les publicités réalisées à partir de Google Ads se
retrouvent en haut de la page des résultats des recherches.
Dans ce cas, elles sont reconnaissables par le terme « Annonce » indiqué en gras avant l'intitulé
du site.
La création d’une campagne publicitaire Google Ads par une entreprise permet de faire
apparaître les annonces créées dans les premiers résultats de recherche ou sur un large réseau
de sites. Grâce à ce système, Google Ads est un accélérateur de visibilité d’une entreprise sur
le web.
Google Ads propose plusieurs types de campagnes, on peut citer par exemple :
● Campagnes Discovery : Permettre de toucher jusqu'à 2,9 milliards de clients dans les
flux de Google pour vous aider à atteindre vos objectifs de performances dans Google
Ads. Grâce aux signaux d'intention (audience et clients) de Google, ce type de campagne
vous permet de proposer des expériences publicitaires personnalisées visuellement
attrayantes à des internautes prêts à découvrir votre marque et à s'engager avec celle-ci,
à l'aide d'une seule campagne Google Ads.
● Campagnes locales : Permettre aux entreprises de fournir à leurs clients potentiels les
informations dont ils ont besoin pour choisir quand et comment se rendre dans leurs
● Campagnes Hôtel : Permettre de définir une enchère pour les annonces qui s'affichent
lorsqu'un voyageur recherche un hôtel sur Google ou sur Maps. Ces annonces
apparaissent dans un module de réservation d'hôtel qui peut afficher des photos de
l'hôtel, les services proposés, les prix et un lien permettant d'effectuer une réservation.
Pour notre cas l’objectif est de générer du trafic humain vers les magasins physiques
donc la plus adapté à notre besoin est les campagnes publicitaires locales puisqu’elles
permettent d'attirer des clients dans vos magasins et établissements physiques. Les annonces
sont automatiquement optimisées pour s'afficher sur le Réseau de Recherche, le Réseau
Display, Google Maps et YouTube.
De plus, elles ont plusieurs avantages tel que le premier avantage est le coût. A l’inverse
des publicités classiques, l’établissement n’est facturé que si l’internaute le contacte, ainsi, il
paye au lead réellement apporté et non au nombre de vues ou de clics !
Lorsque on veut créer une campagne locale, il suffit de définir les adresses des
magasins dont on souhaite faire la promotion.
Pour ce faire, on peut associer notre compte Google My Business ou sélectionner des lieux
L'objectif est de maximiser nos valeurs en magasin (d'après les visites en magasin, les
clics générant des appels et/ou les clics permettant d'obtenir un itinéraire), et de promouvoir nos
établissements sur les propriétés et réseaux Google.
Les campagnes locales utilisent également un ciblage par rayon pour les
établissements Google My Business et ceux associés à des extensions de lieux affiliés.
Ce rayon peut varier en fonction des zones ciblées et de la préférence de l'utilisateur
concernant la distance à parcourir. Il dépend également d'autres facteurs comme le secteur
d'activité, la densité de la population et la présence de concurrents.
Cloudinary est un service cloud qui offre une solution à l'ensemble du pipeline de
gestion d'images d'une application Web.
L'API de données YouTube permet d'intégrer des fonctions normalement exécutées sur
le site Web YouTube dans notre propre site Web ou application.
L'API prend en charge des méthodes pour insérer, mettre à jour ou supprimer un grand
nombre de ces ressources.il donne également la possibilité pour faire la recherche des vidéos
correspondant à des termes de recherche, des sujets, des lieux, des dates de publication et bien
plus encore.
2.2.11. Stripe
2.2.12. AJAX/jQuery
Ajax est une méthode utilisant différentes technologies ajoutées aux navigateurs web
entre 1995 et 2005, et dont la particularité est de permettre d'effectuer des requêtes au serveur
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.
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.
C’est un site web de modélisation UML (Unified Modeling Language) open source qui
peut remplacer dans bien des situations des logiciels commerciaux et coûteux. Étant simple
d’utilisation, supportant le travail en équipe , nécessitant peu de ressources système, et
supportant UML 2.5 .Ce site constitue une excellente option pour une familiarisation à la
modélisation.
2.5.2. GanttProject
Conclusion
Ce chapitre avait comme finalité d’expliquer le côté technique du projet. On a donc
commencé par la schématisation du fonctionnement global, et ensuite de lister les technologies
qu’on a employées.
2. le graphe des statistiques qui montre l'évolution de mes campagnes tel que l'utilisateur
peut faire plusieurs filtres soit par date ,nature , channel etc ...
3. la table des dix dernières campagnes créer selon le type d’utilisateur (HQ ou Franchisé)
Cette page présente une vue globale sur la bibliothèque d’image telle que l’utilisateur
(HQ) peut gérer les images. Par la suite on va voir le flux de création et les actions possibles.
Après avoir cliqué sur ajouter une image , utilisateur va passer au flux de création qui
se constituer par les étapes suivante:
Dans cette étape utilisateur peut modifier les informations de l’image(titre) et il peut les
tagger aussi. Ensuite il va cliquer sur confirmer pour continuer.
Dans cette étape utilisateur partage l’image insérer avec les locations qui gère .Ensuite
il va cliquer sur confirmer pour continuer .
Maintenant puisque image est bien ajouter on peut l’avoir dans la page de la liste des
images tel que comme la figure ci dessous affiche on peut faire les actions suivantes:
1. Le premier choix (Show) : cette option permet de voir l’image dans un nouvel angle.
2. Le deuxième choix pour faire la modification tel que comme mentionné dans la partie
des scénarios la modification va faire passer par le flux de création avec les données
déjà inserer.
3. L’option du partage permet à l'utilisateur de partager l’image avec plus de points de
ventes qu’ils gèrent .
4. La dernière option permet de supprimer l'image.
La liste des thèmes présente toutes les thèmes existantes dans le système, avec la
possibilité de Modifier et supprimer les thèmes, l’utilisateur peut aussi de visualiser la
description et le planning d’un thème .
Maintenant puisque le thème est bien ajouter on peut le modifier par le clique au bouton
Éditer comme la figure ci-dessous affiche :
Cette page présente une vue globale sur la liste des template telle que l’utilisateur (HQ)
peut gérer les template. Par la suite on va voir le flux de création et les actions possibles.
● A partir des channels du site proposé, sélectionner au moins une dans lequel
- Depuis l’ordinateur.
- Depuis la bibliothèque des images ; A noter bien, que seules les images
Dans cette étape utilisateur partage la template avec les locations qui gère .Ensuite il va
cliquer sur confirmer pour continuer .
La dernière étape est une page qui résume la totalité des choix d’utilisateurs donc après
sa confirmation la template va être bien ajoutée .
Maintenant puisque la Template est bien ajouter on peut l’avoir dans la page de la liste
des Template tel que comme la figure ci-dessous affiche on peut faire les actions suivantes:
1. Le premier choix pour faire la modification tel que comme mentionné dans la partie des
scénarios la modification va faire passer par le flux de création avec les données déjà
insérer.
- L’objectif de la campagne.
Dans cette étape, on affiche l’ensemble des templates créées pour le thème, et le
planning choisis auparavant. L’utilisateur peut donc créer sa campagne depuis l’une de ces
templates, ou “from scratch”.
Si l'utilisateur a choisi dans l'étape 2 de créer une campagne depuis une template, le
formulaire dans cette étape sera donc prérempli avec les données de la template (titres,
Si l'utilisateur a choisi de créer une campagne from Scratch, tous les champs du formulaire
seront vides. L’utilisateur doit le remplir à zéro. Les champs à renseigner seront comme l'étape
3 de la création des templates.
La dernière étape est une page qui résume la totalité des choix d’utilisateurs donc après
sa confirmation la template va être bien ajoutée .
Cette étape est dédiée pour remplir les éléments publicitaires (Assets). Elle propose un
formulaire pré-rempli par les données du campagne organique.
- Les titres : pré-remplis par les 30 premiers caractères des titres ajoutés pour la
campagne organique. Le premier titre est un champ obligatoire. Il ne doit pas être
vide. L’utilisateur peut modifier ces titres sans dépasser la limite de 30 caractères
chacun.
- Logo : l’utilisateur doit ajouter une image LOGO au format ratio 1.1 (carré)
(voir tableau ci-dessous).
Pour définir le budget (le montant) prêt à être dépensé chaque jour, pour chaque magasin, on
propose 2 modes :
- Mode Expert :
Ici, l’utilisateur saisit le montant à dépenser par jour (en euro), et la durée du boost pour chaque
magasin.
- La tranche de date sur laquelle on promouvoit la campagne. La date début et fin sont
prédéfinies du planning de la campagne organique.
A Travers cette interface, l’utilisateur peut consulter le solde disponible sur son propre
porte-monnaie et l’ensemble des transactions effectuées au moment de publication des
campagnes payantes et aussi de récupérer les factures de paiement.
Pour la réalisation de ce projet, nous avons commencé par une étude fonctionnelle des
besoins spécifiques, ainsi que l’environnement de déploiement tout en respectant les exigences
techniques. Ensuite nous avons abordé la phase de la conception détaillée de la plateforme que
nous avons implémentée par la suite dans le cadre de notre projet.
L’expérience que nous avons vécu durant ce stage a été enrichissante. Sur le plan
technique, nous avons approfondi nos compétences en ce qui concerne les technologies et
outils. Au niveau relationnel, nous avons compris que l’esprit d’initiative, le sens de la
responsabilité et l’aptitude à communiquer sont des éléments capitaux pour la réussite de tout
projet informatique. Enfin, sur le plan personnel, nous avons développé notre aptitude
d’autonomie, de patience et persévérance. Ce stage nous a permis de consolider nos
connaissances acquises pendant notre formation.
En termes de perspectives, le projet dans sa version actuelle n’est pas encore achevé,
nous sommes actuellement dans la phase de stabilisation et traitement des retours de l'équipe
qualité et l'équipe CS qui a va présenter les nouvelles fonctionnalités aux clients ces derniers
vont donner des retours, donc cette phase serait très importante pour arriver à stabiliser la
version et gagner la satisfaction des clients.
2 : https://www.thymeleaf.org/
3 : https://cloud.google.com/sql/docs/postgres
4 : https://support.google.com/google-ads/answer/9118422?hl=fr
5 : https://support.google.com/google-ads/answer/9118358
6 : https://developers.google.com/google-ads/api/docs/reporting/example
7 : https://blog.zenika.com/2012/03/28/presentation-de-mybatis/
8 : https://support.google.com/google-ads#topic=3119122
9: https://stripe.com/fr/payments/payment-methods-guide
10 : https://developers.google.com/chart/interactive/docs/datatables_dataviews
11 : https://developers.google.com/youtube/v3/
12 :https://www.mobilosoft.com/fr/
13 :https://docs.mobilosoft.com/fr/collections/386261-support-mobilosoft
14 :https://www.virtuology.com/
15:https://openclassrooms.com/fr/courses/4503526-organisez-et-packagez-une-application-
java-avec-apache-maven/4609181-decoupez-votre-projet-en-couches-applicatives
16 :https://asana.com/fr/resources/benefits-project-management
17 : https://agiliste.fr/guide-de-demarrage-scrum/?nab=1