Académique Documents
Professionnel Documents
Culture Documents
Par
M. Raed KCHAOU
M. Marwen CHNITI
Signature et cachet
Encadrant académique
Signature
i
Dédicaces
Je dédie ce travail à celles et ceux qui sont les plus chèr.e.s dans ce monde.
À la mémoire de ma grand-mère Chedliya et de mon grand-père Taoufik qui
reconnaissant.
À mes enseignants
Sincèrement, Raed
Remerciements
Mes sincères remerciements à Mr. Behjet BOUSSOFARA, Directeur Général de Talan Tunisie
Consulting, qui m’a permis d’entreprendre et de mener à bien mon travail au sein de son
établissement.
Ma profonde gratitude à Mr. Marwen CHINITI, à qui je tiens à exprimer toute ma gratitude,
pour l’aide qu’il m’a apportée durant ce stage. Sa disponibilité, sa modestie et sa gentillesse
n’ont d’égale que ses grandes qualités professionnelles. Qu’il soit assuré de l’expression de mes
remerciements les plus sincères.
Ce projet a pu être porté à terme grâce à l’aide et au soutien de Mme. Zouhour BEN DHIAF,
qui a accepté de le suivre en détail : qu’elle reçoive ici ma reconnaissance et ma gratitude pour
sa disponibilité, sa pédagogie et ses précieuses directives tout au long du projet.
Enfin, je voudrais, à cette occasion, exprimer à tous les membres du jury mes vifs remerciements.
iii
Table des matières
Introduction générale 1
1 Contexte du projet 3
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Talan Tunisie Consulting . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Organigramme de Talan . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Secteurs d’activités de Talan . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.4 Talan Salesforce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Contexte du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Choix de la méthodologie de développement . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Langage de modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
iv
2.4.2 Les langages de requêtes de Salesforce . . . . . . . . . . . . . . . . . . . . 18
2.4.3 Les workflows de Salesforce . . . . . . . . . . . . . . . . . . . . . . . . . 19
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Analyse 23
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1 Etude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Description de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.2 Critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.3 Identification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.1 Identification des besoins fonctionnels . . . . . . . . . . . . . . . . . . . . 27
3.2.2 Identification des besoins non fonctionnels . . . . . . . . . . . . . . . . . 27
3.2.3 Identfication des user stories et du backlog de produit . . . . . . . . . . . 28
3.3 Modélisation des besoins sous forme de diagramme de cas d’utilisation général . 30
3.4 Planification des sprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4 Conception 32
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1 Architecture du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.1 Architecture physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.2 Architecture logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Sprint 1 : Gérer les offres de travail . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.1 Backlog de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.2 Diagramme de cas d’utilisation du sprint . . . . . . . . . . . . . . . . . 35
4.2.3 Diagramme de classes du sprint . . . . . . . . . . . . . . . . . . . . . . 44
4.3 Sprint 2 : Gérer la première phase de recrutement . . . . . . . . . . . . . . . . . 45
4.3.1 Backlog de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.2 Diagramme de cas d’utilisation du sprint . . . . . . . . . . . . . . . . . 47
4.3.3 Diagrammes de séquences du sprint . . . . . . . . . . . . . . . . . . . . 55
4.3.4 Diagramme de classes du sprint . . . . . . . . . . . . . . . . . . . . . . 57
v
4.3.5 Diagramme d’activités du sprint . . . . . . . . . . . . . . . . . . . . . . 58
4.4 Sprint 3 : Gérer la deuxième phase du recrutement . . . . . . . . . . . . . . . . 60
4.4.1 Backlog de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.2 Diagramme de cas d’utilisation du sprint . . . . . . . . . . . . . . . . . 62
4.4.3 Diagramme de séquences du sprint . . . . . . . . . . . . . . . . . . . . 72
4.4.4 Diagramme de classes du sprint . . . . . . . . . . . . . . . . . . . . . . 73
4.4.5 Diagramme d’activités du sprint . . . . . . . . . . . . . . . . . . . . . . 74
4.5 Sprint 4 : Pilotage du reporting et tableau de bord / Gérer les utilisateurs et les
droits d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.5.1 Backlog de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.5.2 Diagramme de cas d’utilisation du sprint . . . . . . . . . . . . . . . . . 77
4.5.3 Diagramme de classe complet . . . . . . . . . . . . . . . . . . . . . . . . 79
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5 Réalisation 80
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1 Choix technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.1 Outils et langages de développement . . . . . . . . . . . . . . . . . . . . 80
5.1.2 Outils de modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.3 Outils d’intégration des données . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.4 Outils de gestion du projet . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 Description de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.1 Gestion des postes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.2 Première phase de recrutement . . . . . . . . . . . . . . . . . . . . . . . 84
5.2.3 Deuxième phase de recrutement . . . . . . . . . . . . . . . . . . . . . . 91
5.2.4 Les tableaux de bord . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.3 Planification du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Webographie 101
vi
Table des figures
vii
Table des figures
viii
5.17 Exemple d’un CV de candidat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.18 Etapes de candidature de la deuxième phase . . . . . . . . . . . . . . . . . . . . 91
5.19 Formulaire de création d’un entretien . . . . . . . . . . . . . . . . . . . . . . . . 91
5.20 Emails envoyés après l’entretien . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.21 Interface du feedback pour le candidat . . . . . . . . . . . . . . . . . . . . . . . 92
5.22 Interface de la liste des feedbacks . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.23 Contrat du candidat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.24 Email du contrat envoyé au candidat . . . . . . . . . . . . . . . . . . . . . . . . 94
5.25 Signature numérique du contrat . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.26 Email envoyé après la signature . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.27 Exportation des données Talend . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.28 Tableau de bord des candidats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.29 Tableau de bord des départements . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.30 Tableau de bord des tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.31 Tableau de bord des feedbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.32 Diagramme de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
ix
Liste des tableaux
x
4.23 Description détaillée du cas d’utilisation "Gérer la première phase du recrutement" 55
4.24 Description détaillée du cas d’utilisation "Afficher les détails d’un test" . . . . . 55
4.25 Backlog de sprint 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.26 Description détaillée du cas d’utilisation " Affecter des interviews " . . . . . . . 63
4.27 Description détaillée du cas d’utilisation "Ajouter interview" . . . . . . . . . . . 65
4.28 Description détaillée du cas d’utilisation " Afficher les données relatives à un
interview " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.29 Description détaillée du cas d’utilisation "Supprimer interview" . . . . . . . . . 66
4.30 Description détaillée du cas d’utilisation "Modifier interview" . . . . . . . . . . . 67
4.31 Description détaillée du cas d’utilisation "Noter un interview" . . . . . . . . . . 67
4.32 Description détaillée du cas d’utilisation " Afficher la liste des feedbacks " . . . . 68
4.33 Description détaillée du cas d’utilisation "Supprimer feedback" . . . . . . . . . . 69
4.34 Description détaillée du cas d’utilisation "Supprimer candidat à la deuxième phase" 70
4.35 Description détaillée du cas d’utilisation " Consulter liste des candidats à la
deuxième phase " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.36 Description détaillée du cas d’utilisation " Consulter les données relatives à un
candidat " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.37 Description détaillée du cas d’utilisation "Envoyer un feedback" . . . . . . . . . 72
4.38 Backlog du sprint 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
xi
Introduction générale
Dès le début du XXIème siècle, le monde évolue grâce à la digitalisation et aux technologies
modernes que l’être humain est en train de développer. Aujourd’hui, tout est digital, il devient
possible de réaliser des tâches, qui étaient très complexes auparavant, en seulement quelques
clics. La science de l’informatique facilite aujourd’hui tous les domaines, en fournissant des
services et des solutions confortables pour les utilisateurs et les clients. Ces services nécessitent
un capital humain important pour les maintenir et les développer, surtout que le besoin des
solutions et services dans le monde n’a jamais cessé d’augmenter. Pour cela, les entreprises
informatiques dans le monde ont toujours manifesté leur besoin de recruter de nouveaux talents
compétents pour dominer le marché, avoir plus de clients et plus de solutions fiables.
Cet avancement technologique a encouragé les étudiants dans le monde à suivre les
besoins du marché, en s’orientant vers les sciences de l’informatique. Cette évolution de l’offre et
de la demande dans le domaine de l’informatique nécessite la création d’un système performant
de recrutement et de gestion des ressources humaines, capable de supporter et de gérer un
nombre énorme de candidats. Ceci est désormais possible grâce aux applications de type CRM,
qui permettent de gérer un nombre énorme de clients et assurer un suivi de qualité.
Aujourd’hui, il existe plusieurs plateformes CRM, chacune a sa manière de gérer les
activités des clients et de centraliser les données. De tous ces CRM, Salesforce est considéré
comme le leader mondial des applications, grâce à son innovation, à sa capacité importante et à
sa flexibilité de s’adapter aux différents besoins de ses clients. Il offre une expérience hautement
supérieure par rapport aux autres plateformes CRM. Cet outil a révolutionné la gestion des
relations avec les clients dans le monde. Un nombre important d’entreprises l’utilise pour gérer
leurs différents services.
C’est dans ce contexte que s’inscrit notre projet de fin d’études au sein de l’équipe Talan
Salesforce, qui consiste à concevoir et développer une solution Salesforce qui permettra d’assurer
le bon déroulement et garantira la réussite du processus de recrutement.
Notre objectif consistera à personnaliser la plateforme de gestion des relations avec les
clients, en faisant l’analogie entre les clients et les candidats qui vont postuler pour rejoindre
l’équipe de Talan. Nous envisageons d’utiliser les fonctionnalités que Salesforce offre et nous
intégrerons nos propres fonctionnalités dans cette plateforme. Ceci ne sera possible qu’après
1
Introduction générale
— Le troisième chapitre intitulé "Analyse" sera consacré à l’analyse, dans lequel nous
présentons l’étude de l’existant et sa critique, les acteurs de l’application, le backlog
produit, les besoins fonctionnels et non fonctionnels, la modélisation des cas d’utilisation
ainsi que la planification des différents sprints.
2
Chapitre 1
Contexte du projet
Introduction
Ce chapitre a pour objectif de mettre le projet dans son cadre général. Nous commençons,
tout d’abord, par une présentation de l’organisme d’accueil, de son organigramme et de ses
domaines d’activités. Ensuite, nous définissons la problématique du projet et les objectifs
envisagés. Enfin, nous présentons la méthodologie utilisée pour développer la solution proposée.
Depuis sa création en 2002, Talan assiste les entreprises et les administrations à mettre
en œuvre leurs projets de développement en France et à l’international. Présent sur quatre
continents, le groupe, qui renferme près de 3000 collaborateurs, a atteint, fin 2017, un chiffre
d’affaires de 185 millions d’euros. Talan met l’innovation au centre de ses activités. Elle intervient
dans les domaines liés aux mutations technologiques des grands groupes, comme le Big Data,
l’IoT, la Blockchain, l’Intelligence Artificielle, etc.
Talan compte plus de 1500 consultants, implantés dans les différents pôles de développement
en France, au Luxembourg, au Royaume-Uni, à New York et à Hong Kong. Elle offre un cadre
novateur et motivant pour fidéliser et épanouir ses collaborateurs. Le centre de développement
"Nearshore" de Tunisie a été créé en 2008. Il regroupe actuellement plus de 100 ingénieurs .
Ses compétences sont réparties entre :
3
Chapitre 1. Contexte du projet
— Le secteur de finance : Dans ce secteur, Talan est leader sur le marché en France, elle
intervient sur la majorité des places financières mondiales. Elle assiste et accompagne les
principaux acteurs des marchés financiers ;
— Le secteur d’assurance : Talan s’appuie sur une solide connaissance des métiers de
l’assurance pour traiter les principales problématiques du secteur : évolutions réglementaires,
4
Chapitre 1. Contexte du projet
• Transformer les métiers en les rendant plus efficaces et en développant leur valeur
ajoutée.
• Favoriser la collaboration des équipes, quels que soient les métiers, départements
ou zones géographiques grâce à une vue unifiée à 360° des clients sur une plateforme
intégrée [1].
5
Chapitre 1. Contexte du projet
1.2.1 Problématique
De nos jours, la révolution digitale poursuit son expansion dans le monde. Par conséquent,
on constate un grand besoin de solutions informatiques sur le marché international. Talan, l’un
des leaders du domaine, doit s’adapter à ce changement en renforçant son capital humain pour
augmenter son quote-part de ce marché. Pour enrichir et diversifier son capital humain, Talan
doit disposer d’un système adéquat de recrutement. Un système qui permettra d’organiser ce
processus, de gérer les projets et les postes proposés, ainsi que le nombre important de candidats
pour chaque opportunité.
En général, il existe plusieurs processus de recrutement classiques. Ces approches non
optimisées ne sont pas vraiment la meilleure alternative. En effet, ces solutions exigent plus
de temps et de ressources surtout avec le nombre important de candidats. Ces solutions, qui
ne sont pas performantes, exigent un temps assez long pour traiter le nombre important de
candidats, qui ne cesse d’augmenter, avec des risques de non équité entre eux. Par conséquent,
certains candidats sont insatisfaits de la manière dont ont été traitées leurs demandes. En effet,
certains postulants ne reçoivent même pas un simple retour ( rejet, réception,..) et ne sont pas
tenus informés de l’état d’avancement du traitement de leurs dossiers.
Pour cela, les sociétés doivent centraliser et uniformiser l’ensemble des données sur les
candidats, afin d’avoir une vision dynamique à 360° et organiser leur processus de recrutement,
qui présente une étape primordiale pour le développement du capital humain de toute société.
1.2.2 Objectifs
6
Chapitre 1. Contexte du projet
1.3.1 Scrum
Scrum est la méthode AGILE la plus adéquate aujourd’hui. Elle se caractérise par
des répétitions courtes et réduites. Elle traduit et organise les projets de manière simple,
transparente et pragmatique. Nous avons choisi cette approche car elle nous permet de nous
adapter à l’évolution des besoins tout au long du processus de conception et de développement.
La méthode Scrum définit trois rôles distincts : Product Owner, Scrum Master et équipe
opérationnelle. Chacun des acteurs s’occupe uniquement de son domaine d’actions sans
empiéter sur celui des autres. Le cycle de vie de cette technique est présenté dans la figure
1.2.
7
Chapitre 1. Contexte du projet
8
Chapitre 1. Contexte du projet
Conclusion
Dans le premier chapitre, nous avons exposé le contexte général du travail, en présentant
l’hébergeur Talan, la problématique du projet, ainsi que les solutions proposées. De plus, nous
avons présenté la méthodologie et le formalisme adoptés pour la mise en place du projet. Nous
nous intéressons, dans le chapitre suivant, aux concepts de base de Salesforce.
9
Chapitre 2
Concepts fondamentaux de
Salesforce
Introduction
Nous avons intégré l’équipe Salesforce au sein de Talan, pour cela nous avons opté pour
l’utilisation de cette plateforme dans la mise en place de notre solution. Nous nous intéressons
donc, dans ce chapitre, aux concepts théoriques liés à Salesforce. Nous allons présenter cette
plateforme, son architecture, ses concepts clés, ses différents langages de programmation et ses
outils déclaratifs.
CRM sont les initiales de Customer Relationship Management, c’est-à-dire la gestion des
relations clients. Cette technologie permet de gérer les relations avec les clients et de suivre les
données associées à l’ensemble des interactions.
Elle permet également, aux équipes, de collaborer, en interne et en externe, de rassembler
des informations à partir des réseaux sociaux, de suivre les métriques importantes, et de
communiquer par e-mail, téléphone, via les réseaux sociaux, etc.
Elle est définie comme étant une stratégie de développement liée à la vente, au marketing et
aux services clients en permettant de créer des relations rentables et de long terme avec les
clients et aussi l’ensemble des parties prenantes de l’entreprise.
10
Chapitre 2. Concepts fondamentaux de Salesforce
2.1.2 Salesforce
Salesforce est une entreprise de software dont le siège est à San Francisco aux États-Unis.
Elle diffuse des logiciels de gestion sur Internet et des hébergements d’applications professionnelles.
La compagnie est surtout réputée au plan mondial pour ses solutions de management de la
relation client. Cette entreprise dispose d’un CRM qui porte le nom de Salesforce. Celui-ci offre
à toutes les équipes, notamment de marketing, de ventes, de commerce et services, une vue
partagée des clients grâce à une plateforme CRM intégrée.
Selon une étude effectuée par l’entreprise APPS RUN THE WORLD, qui est une société
d’études du marché technologique, Salesforce est en tête du classement et en tête du peloton,
avec une part du marché de 32,2 %, grâce à une augmentation de 14 % des revenus du CRM.
Adobe était numéro 2, suivi d’Oracle, SAP et Microsoft, comme le montre la figure 2.1. [4].
11
Chapitre 2. Concepts fondamentaux de Salesforce
Il est aussi intéressant de mentionner que Salesforce a été reconnu en 2021 en tant que
leader des CRM au niveau de l’engagement du client par Gartner pour la 13ème fois consécutive.
En fait, plus des deux tiers (68 %) des clients potentiels contactés par Gartner ont sélectionné
Salesforce Service Cloud comme leur premier, deuxième ou troisième choix de produit, comme
on le remarque dans la figure 2.3 [5].
12
Chapitre 2. Concepts fondamentaux de Salesforce
13
Chapitre 2. Concepts fondamentaux de Salesforce
14
Chapitre 2. Concepts fondamentaux de Salesforce
Pour standardiser les applications créées sur sa plateforme et offrir plus de fonctionnalités
pour ses utilisateurs, Salesforce fournit des objets standards. Le tableau 2.1 présente les principaux
objets ainsi que leurs descriptions.
A l’origine, les pistes sont des personnes qui montrent un intérêt pour les produits ou
services proposés par l’entreprise. L’entreprise doit essayer de convertir ces pistes en appliquant
son processus prévu. Les pistes seront converties selon l’un des deux scénarios suivants :
15
Chapitre 2. Concepts fondamentaux de Salesforce
Les informations disponibles dans l’enregistrement des pistes sont utilisées pour créer les
objets résultant de la conversion. La figure 2.5 illustre les deux types de conversion d’une piste.
de requêtes de Salesforce
La plateforme Salesforce n’offre pas uniquement un CRM standard, mais elle donne aussi
la possibilité de personnaliser le CRM et d’utiliser ses fonctionnalités et objets selon le besoin
de l’utilisateur. Cette plateforme fournit aux utilisateurs non seulement ses propres frameworks
et langages de programmation, mais aussi des outils puissants d’automatisation et des langages
de requêtes.
2.4.1.1 Apex
Apex est un langage de programmation orienté objet, fortement typé, qui permet aux
développeurs d’exécuter des instructions de contrôle de flux et de transactions sur le serveur
Lightning Platform, conjointement à des appels à l’API Lightning Platform.
À l’aide d’une syntaxe semblable à Java et qui agit de la même façon que des procédures
stockées dans une base de données, le code Apex permet aux développeurs d’ajouter une logique
métier à la plupart des événements système, notamment aux clics de bouton, aux mises à jour
d’enregistrements associés et aux pages Visualforce.
Le code Apex peut être initialisé par des demandes émanant de services Web et de déclencheurs
16
Chapitre 2. Concepts fondamentaux de Salesforce
d’objets. Apex peut être stocké sur la plate-forme sous deux formes :
-Une classe est un modèle ou plan directeur, à partir duquel les objets Apex sont créés. Les
classes sont constituées d’autres classes, de méthodes définies par l’utilisateur, de variables, de
types d’exception et d’un code d’initialisation statique.
-Un déclencheur est un Apex qui s’exécute avant ou après certains événements de langage de
manipulation de données (DML), par exemple avant l’insertion d’enregistrements d’objet dans
la base de données ou après la suppression d’enregistrements. Les déclencheurs sont stockés en
tant que métadonnées dans Salesforce [8].
2.4.1.2 VisualForce
Visualforce est une infrastructure de développement Web. Elle permet aux développeurs
d’élaborer des interfaces utilisateurs sophistiquées et personnalisées pour des applications mobiles
et de bureau, qui peuvent être hébergées sur Lightning Platform.
Visualforce permet aux développeurs d’étendre les fonctionnalités intégrées de Salesforce,
de les remplacer par de nouvelles fonctionnalités et d’élaborer de nouvelles applications.
Dans Visualforce, le développement d’applications est familier pour toutes les personnes
qui ont élaboré des applications Web. Les développeurs créent des pages Visualforce, en assemblant
des composants, des balises HTML et des éléments de style facultatifs. Visualforce peut intégrer
n’importe quelle technologie Web standard, ou infrastructure JavaScript, pour créer une interface
utilisateur, plus animée et plus riche. Chaque page est accessible via une URL unique. Lorsqu’une
personne accède à une page, le serveur exécute le traitement de données requis par la page,
restitue la page en HTML et renvoie les résultats au navigateur, qui les affiche. [9]
17
Chapitre 2. Concepts fondamentaux de Salesforce
Aura, mais sans éliminer la puissance des composants Lightning. Ces deux modèles permettent
aux développeurs de créer rapidement des applications performantes sécurisées et fournissant
une bonne convivialité. La figure ci-dessous présente l’architecture du composant Lightning liée
aux méthodes d’action Apex sur le PaaS de Salesforce [10]. La figure 2.6 présente l’architecture
du composant lightning et sa liaison avec Apex.
— Il existe une liaison entre les composants lightning et les classes Apex.
— Une API Javascript côté client, fournit un service pour gérer le transport de données,
pour un traitement côté serveur. [10].
Le traitement de données dans Salesforce est réalisé à partir des requêtes exécutées sur
les enregistrements. La plateforme Salesforce dispose de deux langages de requêtes : Salesforce
Object Query (SOQL) et Salesforce Object Search Language (SOSL) [11]. Le tableau
2.2 représente la différence entre les deux types de langage de requête.
18
Chapitre 2. Concepts fondamentaux de Salesforce
SOQL SOSL
Le mot clé ”SELECT” est utilisé pour Le mot clé ”FIND” est utilisé pour
récupérer les enregistrements. récupérer les enregistrements.
Il faut savoir dans quels objets ou champs Nous ne savons pas dans quels objets ou
les données résident champs les données résident
Il est possible de récupérer plusieurs
Il est possible de récupérer des données
objets et valeurs de champ lorsque les
à partir d’un seul objet ou de plusieurs
objets sont liés ou non liés les uns aux
objets liés
autres
Peut être utilisé dans les déclencheurs de Ne peut pas être utilisé dans les
classes déclencheurs de classes
Salesforce nous offre aussi la possibilité d’automatiser le processus métier, comme l’envoi
des e-mails aux pistes, précisant une mise à jour d’un candidat, ou par exemple notifier un
utilisateur lors de la création d’une nouvelle opportunité. Grâce aux outils workflow, Process
Builder, Flow Builder et Approval Process, Salesforce facilite la mise en œuvre de ces workflows.
2.4.3.1 Workflow
Afin de gagner du temps dans l’organisation, workflow est l’un des outils les plus puissants
disponibles dans le PaaS Salesforce. Il permet d’automatiser les processus internes standard. Les
instructions de workflow sont conditionnelles if/then. La partie if est un critère, il doit être vrai
pour que le workflow déclenche des actions associées. Par contre, la partie then correspond aux
actions qui doivent être exécutées quand le critère est vrai. Parmi les fonctions des workflows,
on cite :
19
Chapitre 2. Concepts fondamentaux de Salesforce
Process Builder est une extension de workflow contenant plus de fonctionnalités. Process
Builder peut mettre à jour n’importe quel champ de n’importe quel enregistrement associé,
alors que Workflow ne peut mettre à jour que certains champs d’un enregistrement. De plus,
Process Builder fournit aux administrateurs la possibilité de définir l’ordre exact des opérations,
tandis que Workflow n’offre pas cette possibilité. La figure 2.8 illustre un exemple de Process
Builder [12].
20
Chapitre 2. Concepts fondamentaux de Salesforce
Le processus démarre lorsqu’un champ d’un enregistrement de l’objet case est mis à
jour. Dans ce cas, le Flow Builder modifie un champ d’un enregitrement de l’objet account, qui
est en relation avec l’objet case. Ce processus est réalisé automatiquement à l’aide de Process
Builder. En plus de tout ce qu’un workflow peut faire, Process Builder est capable de :
- Créer un enregistrement ( non seulement des tâches).
- Mettre à jour les enregistrements.
- Appeler un code Apex.
- Appeler un autre processus existant.
Le flow Builder est l’outil le plus puissant dans les workflows de Salesforce. Il est utilisé
pour créer des flux qui nécessitent l’intervention des utilisateurs. A la différence des autres outils
qui s’exécutent en arrière- plan, Flow Builder prend en charge des écrans de flux, en utilisant
des composants Lightning, permettant la participation des utilisateurs.
La figure expose un exemple de Flow Builder [12].
21
Chapitre 2. Concepts fondamentaux de Salesforce
Le flux dans la figure permet de simplifier la mise à jour d’un Account à partir d’un
objet utilisateur.
Pour approuver des enregistrements, Salesforce fournit Approval Process. Il s’agit d’un
outil automatisé qui comprend un ensemble d’étapes, à approuver ou à rejeter, par un utilisateur
disposant d’une fonction bien déterminée dans l’organisation [12]. Dans Approval Process, il
faut définir :
— Les étapes nécessaires pour l’approbation d’un enregistrement et la personne qui est
chargée par la validation de chaque étape.
Conclusion
L’objectif de ce chapitre consiste à éclaircir les éléments de base aidant à bien comprendre
notre projet. Nous avons défini en détails les concepts clés de Salesforce. Dans le chapitre
suivant ”Analyse”, nous présentons une étude plus profonde des besoins, afin de garantir le bon
fonctionnement et la bonne gestion de l’application.
22
Chapitre 3
Analyse
Introduction
À ce niveau, nous entamons la phase d’analyse, afin de répondre à la question : Comment
fonctionne notre système ? Ce chapitre sera consacré à l’étude de l’existant et à sa critique.
Ainsi, nous allons identifier les acteurs, préciser les besoins fonctionnels et non fonctionnels que
notre solution doit satisfaire et présenter notre backlog produit. Par la suite, nous présentons le
diagramme de cas d’utilisation général, afin de cerner la relation entre nos acteurs et l’application.
Finalement, nous exposons la planification des sprints.
23
Chapitre 3. Analyse
Les principaux utilisateurs de cette application sont une équipe RPO qui peut visualiser
tous les candidats dans un espace consacré au recrutement, comme le montre la figure ci-dessus.
Chaque membre de l’équipe aura à traiter un certain nombre de candidats. Les tâches à réaliser
sont les suivantes :
— L’envoi d’un test préparé avec la plateforme “codingame” en s’appuyant sur les
informations trouvées dans le CV.
Ce processus n’est pas uniforme pour tous les candidats. A titre d’exemple, dans le cas des
projets de PFE, les CV ne seront pas analysés. Pour une première sélection, des tests préparés
par un outil externe contenant des questions générales sont envoyés par mail.
24
Chapitre 3. Analyse
ce qui facilite la gestion des postulants, mais ce n’est pas tout ce qu’on cherche dans un
recrutement. En fait, certaines fonctionnalités jugées importantes n’existent pas.
Tout d’abord, on remarque un manque d’automatisation. L’équipe RPO est amenée à gérer le
processus manuellement, ce qui peut être épuisant et nécessite beaucoup de temps, surtout avec
un nombre important de candidatures. On constate aussi l’absence de communication avec les
candidats dans certains cas, et notamment en cas de refus. De plus, les données fournies par les
candidats peuvent être mieux exploitées, dans des tableaux de bords, permettant une meilleure
analyse du processus.
Pour toutes ces raisons, Talan Tunisie Consulting a pensé à migrer vers une nouvelle application
de recrutement qui satisfait ses besoins et ses objectifs futurs.
Un acteur est une entité externe qui interagit avec le système (opérateur, centre distant,
autre système...). L’étude de l’existant nous a permis d’identifier les acteurs suivants :
25
Chapitre 3. Analyse
Acteur rôle
26
Chapitre 3. Analyse
En plus des exigences fonctionnelles, le système doit respecter aussi certaines conditions
pour garantir son bon fonctionnement. Notre application doit vérifier les contraintes suivantes :
• Sécurité : chaque acteur, dans le processus de recrutement, doit avoir son propre
profil et ses propres privilèges .
• Ergonomie : les différentes interfaces doivent être faciles à manipuler et offrir une
expérience fluide.
• Performance : le temps d’exécution d’une opération doit être réduit pour être
satisfaisant aux utilisateurs.
27
Chapitre 3. Analyse
Nous allons établir le backlog du produit, qui regroupe les user stories, formulées par le
product owner avant chaque Sprint.
Le backlog de produit est présenté dans le tableau 3.2 et comprend les colonnes suivantes :
— User Story : description simple d’une fonctionnalité ou d’une exigence définie par le
product owner.
28
Chapitre 3. Analyse
29
Chapitre 3. Analyse
30
Chapitre 3. Analyse
Conclusion
Ce chapitre a été consacré à l’analyse des besoins fonctionnels et non fonctionnels de
notre solution et du backlog produit. Nous avons décelé le cas d’utilisation général ainsi que
les différents acteurs qui y interviennent. Le chapitre suivant ”Conception” sera consacré à une
étude plus profonde des besoins, afin de garantir la bonne gestion et le bon fonctionnement de
notre solution.
31
Chapitre 4
Conception
Introduction
Dans ce chapitre, nous présentons la phase de conception, considérée comme une phase
primordiale pour la construction de toute application. L’élaboration de notre projet s’appuie,
en fait, sur les résultats de cette phase. Nous exposons, dans ce qui suit, l’architecture mise en
place et la conception détaillée contenant les diagrammes associés à chaque ”Sprint”.
L’architecture physique de Salesforce est l’ensemble des composants nécessaires pour que
notre système fonctionne correctement et fournit tous les besoins non fonctionnels demandés.
L’architecture physique de Salesforce présenté par la figure 4.1 se compose de :
• Un serveur d’application : c’est celui qui va gérer la couche service, c’est le cœur du
système.
32
Chapitre 4. Conception
Salesforce met toujours l’utilisateur au centre de ses intérêts. Ceci se manifeste dans son
architecture logicielle. Cette architecture VCCM (Vue-Contrôleur-Contrôleur-Modèle), illustrée
par la figure 4.2 est décomposée en couches dont l’objectif est de garantir la maintenabilité.
• La partie client qui contient son interface (Vue) avec un contrôleur Javascript.
33
Chapitre 4. Conception
• La deuxième partie est la partie serveur chargée du traitement des données en arrière-plan.
Elle contient un autre contrôleur Apex, qui joue le rôle d’intermédiaire avec la base de
données.
Les contrôleurs de notre système agissent donc comme une interface de liaison entre les composants
Modèle et Vue pour traiter toute la logique métier.
Le backlog du sprint expose les tâches identifiées par les membres de l’équipe Scrum et
qui devront être réalisées au cours de cette itération. Le backlog de ce sprint est présenté dans
le tableau 4.1. Nous notons que l’unité d’estimation du temps dans le Sprint Backlog est le
jour.
34
Chapitre 4. Conception
35
Chapitre 4. Conception
36
Chapitre 4. Conception
Département ajouté
Post-condition
37
Chapitre 4. Conception
Aucun.
Scénario d’exception
Tableau 4.3 : Description détaillée du cas d’utilisation "Consulter liste des départements"
Département modifié
Post-condition
Département supprimé
Post-condition
38
Chapitre 4. Conception
Gérer les stages comprend un certain nombre de scénarios à savoir : ajouter stage,
consulter la liste des stages afin de mettre à jour ou supprimer un stage. La figure 4.5 décrit
d’une manière détaillée le cas d’utilisation "Gérer les stages” suivi par les tableaux décrivant le
scénario de chaque cas d’utilisation.
39
Chapitre 4. Conception
Stage ajouté
Post-condition
Tableau 4.7 : Description détaillée du cas d’utilisation "Consulter liste des stages"
40
Chapitre 4. Conception
Stage modifié
Post-condition
Stage supprimé
Post-condition
41
Chapitre 4. Conception
Gérer les emplois comprend un certain nombre de scénarios à savoir : ajouter emploi et
consulter la liste des emplois afin de mettre à jour et supprimer un emploi. La figure 4.6 décrit
d’une manière détaillée le cas d’utilisation "Gérer les emplois”, suivie par les tableaux décrivant
le scénario de chaque cas d’utilisation.
Emploi ajouté
Post-condition
42
Chapitre 4. Conception
Tableau 4.11 : Description détaillée du cas d’utilisation "Consulter liste des emplois"
Emploi modifié
Post-condition
43
Chapitre 4. Conception
Emploi supprimé
Post-condition
Le diagramme de classes d’analyse est une manière statique de représenter les éléments
qui constituent un système et leurs relations. Le diagramme de classes correspondant au sprint
44
Chapitre 4. Conception
45
Chapitre 4. Conception
Le backlog de ce sprint est exposé dans le tableau 4.14. Nous notons que l’unité d’estimation
du temps dans le Sprint Backlog est le jour.
46
Chapitre 4. Conception
Le candidat postule pour un stage ou emploi puis passe un test. De l’autre côté, le
responsable RH interagit avec l’application, afin de gérer les candidats dans la première phase
et consulte les tests passés. Ces cas d’utilisation sont représentés dans le diagramme de cas
d’utilisation de la figure 4.8.
47
Chapitre 4. Conception
Aucun.
Scénario d’exception
Tableau 4.15 : Description détaillée du cas d’utilisation "Afficher la liste des stages et des
emplois"
48
Chapitre 4. Conception
Candidature acceptée
Post-condition
49
Chapitre 4. Conception
Candidatajouté
Post-condition
50
Chapitre 4. Conception
Tableau 4.18 : Description détaillée du cas d’utilisation " Consulter liste des candidats à
la phase une "
51
Chapitre 4. Conception
52
Chapitre 4. Conception
53
Chapitre 4. Conception
Test soumis.
Post-condition
54
Chapitre 4. Conception
Aucun.
Scénario d’exception
Tableau 4.24 : Description détaillée du cas d’utilisation "Afficher les détails d’un test"
Dans cette section, nous présentons les diagrammes de séquence, objet des cas d’utilisation
de ce sprint. De ce fait, les diagrammes de séquence objet sont la visualisation graphique des
55
Chapitre 4. Conception
56
Chapitre 4. Conception
57
Chapitre 4. Conception
Les diagrammes d’activités sont employés pour représenter les flux de travail au sein
d’un système, du niveau métier au niveau opérationnel. Ils permettent de décrire tout type
de processus tels que : les processus métier, les processus industriels, le déroulement d’un cas
d’utilisation, etc. Dans ce cadre, nous avons conçu un diagramme d’activité, présenté par la
figure 4.16, pour montrer le processus de recrutement dans sa première phase.
58
Chapitre 4. Conception
59
Chapitre 4. Conception
Le backlog pour ce sprint est illustré dans le tableau 4.25. Nous remarquons que l’unité
de mesure dans le Sprint Backlog est en jours.
60
Chapitre 4. Conception
61
Chapitre 4. Conception
62
Chapitre 4. Conception
Interviewer affecté.
Post-condition
Tableau 4.26 : Description détaillée du cas d’utilisation " Affecter des interviews "
63
Chapitre 4. Conception
Interview ajouté
Post-condition
64
Chapitre 4. Conception
Tableau 4.28 : Description détaillée du cas d’utilisation " Afficher les données relatives à
un interview "
Interview supprimé
Post-condition
65
Chapitre 4. Conception
66
Chapitre 4. Conception
Gérer les feedbacks comprend un certain nombre de scénarios, à savoir : afficher la liste
des feedbacks et supprimer un feedback. La figure ci-dessous décrit d’une manière détaillée le
cas d’utilisation "Gérer les feedbacks” présenté par la figure 4.20, suivie par deux tableaux
67
Chapitre 4. Conception
Tableau 4.32 : Description détaillée du cas d’utilisation " Afficher la liste des feedbacks "
Feedback supprimé
Post-condition
68
Chapitre 4. Conception
69
Chapitre 4. Conception
Tableau 4.35 : Description détaillée du cas d’utilisation " Consulter liste des candidats à
la deuxième phase "
70
Chapitre 4. Conception
Tableau 4.36 : Description détaillée du cas d’utilisation " Consulter les données relatives
à un candidat "
71
Chapitre 4. Conception
Test soumis.
Post-condition
72
Chapitre 4. Conception
73
Chapitre 4. Conception
Nous avons élaboré un diagramme d’activité, présenté par la figure 4.25, pour mieux
visualiser le processus de recrutement dans sa deuxième phase.
74
Chapitre 4. Conception
75
Chapitre 4. Conception
Le backlog de ce sprint est indiqué dans le tableau 4.38. Nous constatons que l’unité de
mesure du Sprint Backlog est le nombre de jours.
76
Chapitre 4. Conception
Le responsable RH est celui qui admet un accès illimité à l’application. Ainsi, il peut
gérer les utilisateurs et les droits d’accès. Cette gestion est représentée dans le diagramme de
cas d’utilisation de la figure 4.26.
Figure 4.26 : Diagramme de cas d’utilisation "Gérer les utilisateurs et les droits d’accès"
77
Chapitre 4. Conception
78
Chapitre 4. Conception
Conclusion
Nous avons traité dans ce chapitre les divers aspects conceptuels de l’application. Nous
avons commencé par présenter l’architecture globale, à savoir l’architecture physique et l’architecture
logicielle. Ensuite, nous avons détaillé les différents sprints du projet. Le prochain chapitre sera
dédié à la partie réalisation.
79
Chapitre 5
Réalisation
Introduction
Après avoir exposé la conception de notre solution, nous traitons dans ce chapitre
la dernière partie de ce travail, qui vise à exposer la phase de réalisation. Cette phase est
considérée comme la concrétisation définitive de la démarche de conception. Tout d’abord,
nous présentons l’environnement de développement où nous indiquons les ressources logicielles
utilisées. Ensuite, nous présentons certaines interfaces réalisées pour expliquer le déroulement
de certaines opérations de l’application développée.
• Apex : Apex est un langage de développement orienté objet, qui enregistre, compile et
exécute sur le serveur Lightning Platform.
Il admet une syntaxe semblable à Java et se comporte comme des procédures stockées
dans une base de données.
80
Chapitre 5. Réalisation
création des composants Lightning qui sont des éléments HTML personnalisés construits
à l’aide du HTML et du JavaScript moderne [10].
• Visual Studio Code : Visual Studio est un éditeur de code source livré avec un support
intégré pour JavaScript, TypeScript et Node.js et possède un riche écosystème d’extension
pour d’autres langages (tels que C ++, C , Java, Python, PHP, Go) et des runtimes (.NET
et Unity) [18].
• StarUML : est un logiciel de modélisation UML, qui a été publié, en open source, par
son éditeur, au moment de l’exploitation commerciale sous licence GNU GPL [19].
• Talend Data Integration :C’est un éditeur de logiciel spécialisé dans l’intégration des
données. Il permet de créer un ETL et de visualiser son architecture de façon graphique.
La particularité de ETL est qu’il génère le code Java pour chaque traitement d’intégration
de données. Nous avons utilisé cet outil afin d’intégrer les données des prospects provenant
de différents partenaires dans l’application [20].
Nous avons utilisé GitLab dans notre projet afin de réaliser des dépôts et de gérer les
versions de nos codes sources [21].
• Trello : Trello est un outil en ligne qui facilite la planification et la gestion des tâches du
projet. Il permet de présenter les tâches du projet, comme étant un tableau de bord, en
classant les activités de l’équipe selon leur état (en cours, terminée, suspendue, etc.) et
avec la mention des personnes qui travaillent sur ces activités et une estimation du temps
nécessaire.
Vu que nous avons travaillé avec la méthodologie SCRUM, nous avons eu recours à cet
81
Chapitre 5. Réalisation
outil pour bien planifier les tâches entre les membres de l’équipe [22].
Le responsable RH gère les départements. La liste des départements est affichée dans un
tableau comme le montre la figure 5.1.
Tous les acteurs peuvent consulter les départements, les stages et les emplois et accéder
à leurs détails en consultant l’interface conformément à la figure 5.2 ci-dessous.
82
Chapitre 5. Réalisation
. De même pour les stages et les offres d’emplois, le manager peut gérer les postes affichés
dans la figure 5.3.
Il peut aussi consulter la liste des stages et offres d’emplois dans les détails, comme le
montre la figure ci-dessus. L’interface indiquant les détails d’un poste contient la liste de des
postulants concernés. L’ajout d’un offre de travail par exemple se fait à l’aide du modal présent
dans la figure 5.4.
83
Chapitre 5. Réalisation
La première phase commence par le candidat, qui va consulter l’interface, qui contient
la liste des départements exposée dans la figure 5.5.
Le client va choisir de voir soit la liste des stages, soit la liste des offres d’emplois d’un
département, comme l’indique la figure 5.6.
84
Chapitre 5. Réalisation
En postulant, une nouvelle candidature va être créée. Une notification sera envoyée à
l’équipe de recrutement comme le montre la figure 5.8.
85
Chapitre 5. Réalisation
Le candidat va être affiché dans le tableau des candidats exposé dans la figure 5.9 qui
contient tous les candidats filtrés selon leur étape actuelle.
Tous les acteurs peuvent consulter les candidats et les données qui leur concernent.
Seul le responsable RH peut créer, modifier ou supprimer un candidat. En consultant les
données relatives à un candidat à la première phase, on constate que les étapes du processus de
recrutement de cette phase sont affichées dans un composant, qui indique aussi l’étape actuelle
du postulant. Le parcours de ces étapes se fait automatiquement au cours du processus comme
le montre la figure 5.10.
86
Chapitre 5. Réalisation
Au cours de la phase ‘open-email sent’, un email présenté par la figure 5.11, est envoyé
au candidat pour l’informer de la réception de sa candidature.
Après 12 heures du premier email, un deuxième contenant un test technique sera envoyé,
comme l’indique la figure 5.12.A l’instant, le candidat sera automatiquement converti à l’étape
‘Working - Test Sent’.
87
Chapitre 5. Réalisation
En accédant au mail, le candidat peut passer le test. Avant tout, en accédant sur
l’interface, le candidat doit saisir son email comme le montre la figure 5.13 et le système doit
vérifier l’existence d’une candidature ayant cette adresse.
88
Chapitre 5. Réalisation
Selon le résultat, si le candidat réussit son test, il sera converti à un candidat de la phase
2 sinon il ne sera pas converti et il va sortir du processus. Sa phase est dans ce cas ‘Failed-Not
Converted’. Un email sera transmis dans les deux cas.La figure 5.15 montre les emails envoyés.
Deux tableaux accessibles à l’équipe de recrutement montrant les candidats qui ont passé
le test technique en précisant leurs résultats, ainsi que ceux qui ne l’ont pas encore fait. Ces
tableaux sont présentés par la figure 5.16.
89
Chapitre 5. Réalisation
90
Chapitre 5. Réalisation
Les candidats qui passent à la deuxième phase sont gérés par l’interviewer, le responsable
RH et le manager. Ce dernier affecte un interviewer à une opportunité. La candidature va ensuite
passer par des étapes présentes dans la figure 5.18.
Le candidat va passer alors après la création d’un entretien à la phase suivante qui est
‘interview scheduled’ .
Après l’entretien, le statut du candidat sera ‘interview passed’. L’interviewer va alors
évaluer le candidat et selon cette évaluation le candidat va, soit passer à l’étape suivante, qui
est ‘Applicant Accepted’, soit être éliminé du processus et son statut sera ‘Closed Lost’. Dans
les deux cas, un email sera envoyé contenant un lien vers l’interface du feedback.Les emails
envoyés sont présentés dans la figure 5.20.
91
Chapitre 5. Réalisation
Les candidats peuvent donc accéder à l’interface des feedbacks pour donner leurs avis
sur le processus de recrutement.Ceci est présenté par la figure 5.21.
Les feedbacks sont gérés par le responsable RH qui accède aux feedbacks, à l’aide de
l’interface représentée dans la figure 5.22.
92
Chapitre 5. Réalisation
93
Chapitre 5. Réalisation
.
Quand le candidat signe le contrat tel que le montre la figure 5.25, il passera au statut
‘Contract Signed’.
94
Chapitre 5. Réalisation
Toutes les données des candidatures seront stockées une fois par semaine grâce à un job
sur Talend, représenté par la figure 5.27, qui relie Salesforce avec un fichier excel.
Les tableaux de bord sont consultés par le responsable RH, le manager et l’interviewer
pour avoir une idée globale sur le processus. Dans la page d’accueil présentée la figure 5.28, on
trouve les statistiques sur les candidats.
95
Chapitre 5. Réalisation
Dans la page contenant la liste des départements, on trouve le tableau de bord sur les
postes de travail de Talan représenté par la figure 5.29.
L’interface des tests contient des statistiques sur les tests et les candidats qui ont passé
le test, comme le montre la figure 5.30.
96
Chapitre 5. Réalisation
Enfin, l’interface des feedbacks visualise les données des feedbacks dans un tableau de
bord présenté par la figure 5.31.
97
Chapitre 5. Réalisation
Conclusion
Dans ce chapitre, nous avons donné une brève description de l’environnement matériel et
logiciel du travail. Ensuite, nous avons présenté quelques interfaces graphiques de notre projet.
Enfin, nous avons présenté le déroulement de notre travail en utilisant le diagramme de Gantt.
Dans ce qui suit, nous clôturons ce rapport par une conclusion générale qui va résumer notre
travail ainsi qu’un aperçu sur les éventuelles perspectives qui peuvent l’enrichir.
98
Conclusion générale et perspectives
Tout au long de ce projet de fin d’études, nous avons été amenés à concevoir et implémenter
une solution Salesforce pour le processus de recrutement interne de Talan.
Ce projet a été réalisé en plusieurs phases. Suite à une première phase de recherche et d’apprentissage
relatives à Salesforce, nous avons spécifié les différents besoins de notre application, enchaînée
par une étude conceptuelle dans laquelle nous avons exposé les architectures utilisées et les
différents ”Sprints” réalisés. Ensuite, nous avons identifié les choix technologiques pour mettre
en œuvre enfin notre application.
Le résultat de notre travail est l’élaboration d’une application exécutable qui centralise les
données et gère le processus de recrutement sur la plateforme de Salesforce. Nous avons créé
également trois sites externes liés à cette application. Notre projet est réalisé conformément
aux standards de conception et de développement.
Le projet développé permet de gérer le nombre important de candidatures et les données
massives qui en découlent. Il permet aussi, de communiquer avec les candidats par email,
d’organiser, faciliter et automatiser le processus de recrutement, dès la réception de la candidature
jusqu’à la signature du contrat. Cette signature qui se fait d’une manière numérique et reçue
immédiatement dans notre application au moment où le candidat signe, témoigne de l’automatisation
de notre solution et du gain de temps qui en résulte. L’application permet de visualiser et
interpréter les données relatives au recrutement. Elle permet également de collecter les feedbacks
des candidats et offre ainsi à Talan la possibilité d’améliorer la qualité du processus.La réalisation
de ce projet n’était pas facile, puisque notre solution a été développée sur le PaaS de Salesforce.Ceci
a nécessité la personnalisation des fonctionnalités existantes et la création de nouvelles fonctionnalités
avec les langages et outils de Salesforce.
Ce stage a été une expérience riche aussi bien sur le plan technique que personnel, puisqu’il
a constitué une véritable préparation au monde professionnel. Il nous a permis de découvrir
la plateforme Salesforce et de s’intégrer au sein de l’équipe TALAN. Il nous a offert aussi une
bonne opportunité pour mettre en œuvre et consolider nos connaissances et notre formation
théorique acquises tout au long de notre cursus académique. D’un point de vue pratique, ce
travail nous a donné l’occasion de découvrir le fonctionnement des systèmes de configuration
et de développement de la plateforme Salesforce.
99
Chapitre 5. Réalisation
• Enrichir la partie des tests dans la première phase de recrutement en les personnalisant
en fonction du niveau du postulant et l’opportunité proposée.Nous pensons aussi à offrir
la possibilité de générer des tests différents pour les candidats d’une même opportunité.
• Ajouter un module d’intelligence artificielle qui permet de filtrer les CVs selon les mots-
clés spécifiques à l’offre d’emploi proposée.
100
Webographie
[7] Modélisation de données. [Disponible sur Harris, Parker. ”Salesforce. com.” (consulté le
20 mars 2022)].
[8] Apex. [Disponible sur Appleman, Dan. Advanced Apex Programming in Salesforce.
Desaware Publishing, 2018.(consulté le 21 mars 2022)].
[11] manipulation des données. [Disponible sur Wicherski, Michael. ”Structure of Data.”
Beginning Salesforce Developer. Apress,Berkeley, CA, 2017. 39-64.(consulté le 24 mars
2022)].
101
Webographie
[18] Visual Studio Code. [Disponible sur https ://code.visualstudio.com/ (consulté le 28 avril
2022)].
[20] Talend. [Disponible sur BOWEN, Jonathan. Getting started with talend open studio for
data integration. Packt Publishing Ltd, 2012. (consulté le 30 avril 2022)].
[21] Gitlab. [Disponible sur ENGWALL, Keith et ROE, Mitchell. Git and GitLab in library
website change management workflows. Code4Lib Journal, 2020, no 48. (consulté le 1 may
2022)].
102
Résumé
Ce rapport est le résultat de notre travail effectué dans le cadre du stage de fin d’études pour
l’obtention du diplôme national d’ingénieur en informatique.Il a été réalisé au sein de Talan
Tunisie Consulting. Notre projet consiste à concevoir et développer une solution Salesforce
interne à Talan pour l’organisation des différentes phases de recrutement. Cette solution permet
l’automatisation et le bon déroulement de ce processus important pour le développement des
ressources humaines et la continuité de la société. Les principaux objectifs de l’élaboration de
cette solution, est de mettre en place un processus de recrutement enchaîné, de préserver la bonne
image de Talan auprès des postulants et de gérer un nombre très important de candidatures en
assurant des recrutements de qualité.Pour la réalisation de cette solution, nous avons utilisé
différents outils d’automatisation et langages de programmation de Salesforce.
Abstract
This report is the result of our work as part of the internship for the National Diploma in
Computer Science Engineering, which was conducted within Talan Tunisia Consulting. Our
project consists in designing and developing a Salesforce internal solution to Talan in order to
organize,optimize and automate the recruitment phase. The goal behind the creation of this
Salesforce application is to set up a clear and chained recruitment process, to preserve Talan’s
brand and to manage the massive number of applications while ensuring a good quality of
recruitment. To make this project happen,we used different automation tools and programming
languages of Salesforce.