SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
Université de Carthage
Institut des Hautes Etudes Commerciales de
Carthage
Rapport de projet de fin d’études
Elaboré par
Siwar Jbeli
Mayssa El Béji
Présenté en vue de l’obtention du diplôme de
Licence Appliquée en Technologies de l’information
Sujet
Conception et développement d’une application web
d’extraction de données
Encadrant professionnel : Hamza Ben Arbia
Encadrant professionnel : Ali Othmani
Encadrant académique : Maroua Laabidi
Réalisé au sein de xTECH Development Services
​ Année Universitaire : 2018-2019
Remerciements
Nous tenons tout d’abord à remercier Dieu le tout puissant, qui nous a donné la force
et la patience d’accomplir ce modeste travail.
Nous remercions les collaborateurs de la société xTECH avec qui nous avons passé
notre stage, plus précisément Mr Haykel Ben Jemaa et nos deux encadrants Mr
Hamza Ben Arbia et Mr Ali Othmani.
Nous remercions également Mme Maroua Laabidi notre encadrante académique de
projet de fin d’étude, pour ses précieux conseils et son orientation ficelée tout au long
de notre travail.
Nous remercions tous les professeurs de l’IHEC de notre formation durant les trois
années d’études pour leur sympathie et leur patience, et toutes les personnes qui ont
contribué de près ou de loin au bon acheminement de cette formation.
Nous remercions finalement les membres du jury pour avoir bien voulu examiner ce
travail.
Dédicace
Je dédie mon travail à ma famille qui m’a doté d’une éducation digne son amour a fait
de moi ce que je suis maintenant, plus particulièrement à
Á ma très chère mère Hamida, mon ange gardien, qui m’a toujours soutenu et
encouragé pendant mes années universitaires l’amour que tu m’as donné été la cause
fondamentale de ma persistance et ma réussite, milles lignes ne pourrait être à la
hauteur de te remercie..
Á mon père Habib, mon épaule solide et ma source de fierté , je le remercie pas assez
pour tous les sacrifices et l’encouragement aussi bien morale que apathique et sa
patience tous ses années..
Á ma soeur : Meherzia et mon frère : Aziz, vous êtes le meilleur appui et soutien que
je puisse avoir dans ma vie…
Spécialement, je veux remercier mon oncle Mohamed et sa femme Yamina, ainsi que
ma chère cousine Rihab pour leur aide et leur contribution dans ma réussite.
Á mon binôme Siwar, notre expérience de stage n’avait pas seulement trace dans
mon cursus académique mais aussi dans ma vie avec la patience, la compréhension
et la motivation que tu m’as fait passer… Enfin, à tous ceux qui me sont chers et à
toute personne qui m’a souhaité la réussite…
Mayssa
Sommaire
Introduction Générale
1 Cadre Générale du projet
1- Introduction
1.1 Présentation de l’organisme d’accueil
1.1.1 Organisation de l’Entreprise
1.1.2 Les services de l’Entreprise
1.1.3 Fiche signalétique
1.2 Présentation du Projet
1.2.1 Contexte de projet
1.2.2 Description de l’existant
1.2.3 Critique de l’existant
1.2.4 Solution proposée
1.2.5 Outils existants sur le marché
1.3 Méthode de développement
1.3.1 Méthode Agile
1.3.2 Méthode adoptée
1.3.3 Méthodologie Scrum
Conclusion
2 Analyse et spécification des besoins
Introduction
2.1 Les rôles Scrum
2.2 Identification des acteurs
2.3 Identification des besoins
2.3.1 Besoins fonctionnels
2.3.2 Besoins non fonctionnels
2.4 Pilotage de projet avec SCRUM
2.4.1 Le Backlog de produit
2.5 Planification des sprints
2.6 Modélisation des besoins fonctionnels
2.7 Prototypage des interfaces de l’application
Conclusion
3 Réalisation du projet
Introduction
3.1 Architecture de la solution
3.1.1 Choix de l’architecture de l'application
3.1.2 Architecture MVC
3.2 Environnements de travail
3.2.1 Environnement matériel
3.2.2 Environnement technique
3.3 Langages et technologies
Conclusion
I. Étude et réalisation du Sprint 1: Extraction des données
1 Analyse
2 Backlog du sprint
3 Spécification fonctionnelle
a-Diagramme de cas d'utilisation du Sprint
b-Description
c-Diagramme de séquence détaillé
4 Conception
a-Diagramme de classe du Sprint 1
5 Réalisation
6 Test et validation
7 Problèmes rencontrés
II. Étude et réalisation du Sprint 2 : Tri des données
1 Analyse
2 Backlog du sprint
3 Spécification fonctionnelle
a-Diagramme de cas d'utilisation du Sprint 2
b-Description
c-Diagramme de séquence détaillé
4 Conception
a-Diagramme de classe du Sprint 2
5 Réalisation
6 Test et validation
7 Problèmes rencontrés
III. Étude et réalisation du Sprint 3 : Stockage des données
1 Analyse
2 Backlog du sprint
3 Spécification fonctionnelle
a-Diagramme de cas d'utilisation du Sprint 3
b-Description
c-Diagramme de séquence détaillé
4 Conception
a-Diagramme de classe du Sprint 3
5 Réalisation
6 Test et validation
7 Problèmes rencontrés
IV.​ Étude et réalisation du Sprint 4 : Exploitation des données
1 Analyse
2 Backlog du sprint
3 Spécification fonctionnelle
a-Diagramme de cas d'utilisation du Sprint 4
b-Description
c-Diagramme de séquence détaillé
4 Conception
a-Diagramme de classe du Sprint 4
5 Réalisation
6 Test et validation
7 Problèmes rencontrés
Conclusion
Conclusion générale
Bibliographie
Table des figures
Figure 1 : Logo xTECH
Figure 2 : Organisation de xTECH
Figure 3 : Propriétaire et clients de xTECH dans le monde
Figure 4 : Processus de recrutement de xTECH
Figure 5 : Profil des candidats “Tounes Ta3mal”
Figure 6 : L’outil “Import io”
Figure 7 : Workflow de xTRACT
Figure 8 :Cycle de vie Scrum
Figure 9 : Diagramme de cas d'utilisation global
Figure 10 :
Figure 11 :
Figure 12 :
Figure 13 :
Figure 14 :
Figure 15 :
Figure 16 : Architecture logicielle
Figure 17 : Architecture MVC
Figure 18 :​ L'espace CVTHÈQUE de JOBI.tn
Figure 19 : Présentation des profils sur JOBI.tn
Figure 20 : Présentation des profils sur GitHub
Figure 21 : Modèle des compétences
Figure 22 : Diagramme de cas d’utilisation “Extraction des profils”
Figure 23 : Diagramme de séquence détaillé “Extraction des profils”
Figure 24 : Diagramme de classe “Extraction des profils”
Figure 25 : Interface d'ajout des critères de recherche
Figure 26 : Interface de la page d'authentification JOBI.tn
Figure 27 : Interface de la chargement des résultats
Figure 25 : Interface de l'affichage des résultats
Figure 26 : Diagramme de cas d’utilisation “Tri des profils”
Figure 27 : Diagramme de séquence détaillé “Tri des profils”
Figure 28 : Diagramme de classe “Tri des profils”
Figure 29 : Interface
Liste des tables
Tableau 1 : Identification de la société
Tableau 2 : Comparaison de notre application et un outil existant
Tableau 3 : Le Backlog de produit du projet
Tableau 4 : Planification des sprints
Tableau 5 : Backlog de sprint 1
Tableau 6 : Description textuelle du cas d’utilisation ​“Extraction des profils”
Tableau 7 :Tests fonctionnels du sprint 1
Tableau 8 : Backlog de sprint 2
Tableau 9 : Description textuelle du cas d’utilisation ​“Tri des profils”
Tableau 10 :Tests fonctionnels du sprint 2
Introduction générale
Introduction générale :
Les entreprises ambitieuses cherchent constamment un avantage
concurrentiel et le cherche souvent sur un nouveau marché, un produit
innovant ou une nouvelle stratégie, mais les meilleures d'entre elles n'oublient
jamais de regarder aussi vers l’intérieur, à leur propre talent.
Les grands talents sont une source puissante et constante de force dans les
affaires.
Amplifiée par l’évolution des besoins en compétences à l’heure de la
transformation digitale, la pénurie de talents n’a jamais été aussi forte. Trouver
un développeur est devenu un véritable défi devant l’explosion de la demande
et de l’offre.
Comment s’y retrouver? Ou se rendre pour trouver une perle rare?
Une situation qui impose aux chefs d’entreprise de remettre en question leur
stratégie d’acquisition de talents.
En plein essor pour les entreprises qui cherchent des talents, “l'Outbound
Recruiting” ou la chasse de têtes est une technique de Ressources Humaines
utilisée dans le recrutement. Cette technique consiste à rechercher des
candidats potentiels qualifiés pour un poste, puis à les contacter
individuellement.
Une approche "Data-Driven"​1 ​
excelle à ce niveau, l’explosion du big data nous
permet un accès à toutes les informations sur un potentiel candidat : ses
expériences, ses compétences, ses recommandations, etc. ​Autant d’usages
qui pourront être rendus possibles grâce aux données, dans le présent
contexte c’est trouver du talent plus rapidement et plus efficacement.
“
Le présent travail s’inscrit dans le cadre de la réalisation d’un projet de fin
d’étude des étudiants en Licence appliquée en technologies de l’information
de l'institut des hautes études commerciales ​de Carthage. Il est réalisé au sein
de l’équipe de la société xTECH dans le département informatique (IT,
Information Technology)​.
Le présent rapport sera composé comme suit :
Le premier chapitre « Cadre général du projet » est un chapitre introductif
dans lequel nous effectuons une brève description de la société. Il comportera
la présentation de l’organisme d’accueil, le contexte du projet , une étude de
l’existant et les outils existants sur le marché accompagné d’une proposition
de la solution. Ensuite, nous exposons les méthodologies et formalismes
adoptés.
dans Le second chapitre, l’attention sera portée sur « l’analyse et spécification
des besoins» ou on vas introduire les besoins fonctionnels et techniques du
système. Ensuite, on vas détailler la conception de notre système par la
représentation des différents diagrammes choisis.
Le troisième et dernier chapitre porte sur la phase de « Réalisation », où on va
présenter les concepts de base et outils utilisés , c’est à dire l’environnement
matériel et logiciel de notre travail, le processus de réalisation de nos sprints
accompagné des capture-écran pour quelques interfaces de l’application.
Nous clôturons, finalement, ce rapport par une conclusion générale dans
laquelle nous évaluerons les résultats atteints et nous exposerons les
perspectives du présent projet.
CHP 1- Cadre Général du Projet
Présentation du projet
Introduction
L'idée d'un projet vient généralement d'un besoin exprimé par la société. Dans
ce chapitre, nous allons mettre le projet dans son contexte et nous allons
indiquer les différents besoins qui ont déclenché sa mise en place. Nous
allons présenter tout d'abord l'organisme d'accueil.
Nous présenterons ensuite le cadre général du projet et nous décrirons son
objectif. Enfin, nous nous intéresserons à l'aspect organisationnel en
spécifiant la méthodologie de gestion de projet adoptée durant le stage.
1.1- Présentation de l’organisme d’accueil :
xTECH en bref :
Figure 1 : Logo xTECH
xTECH est une société technologique de pointe fondée en 2016 et basée
entre Berlin et Tunis, développant des applications web et des solutions cloud,
offrant une architecture web personnalisée qui correspond parfaitement aux
besoins de l’entreprise cliente.
Elle travaille avec des sociétés internationales comme “Universal Music” et
“Cambridge University”. Elle leur offre la possibilité de se concentrer sur leur
entreprise tout en excellant dans ses tâches, de fournir un développement
logiciel exceptionnel.
Elle lie les développeurs talentueux avec des clients innovants afin de créer
des solutions de haute qualité en utilisant des principes de développement
web agiles.
Organisation de l’entreprise :
L’Entreprise se compose de deux départements principaux représentés par la
figure 1.2
Département IT​ : Géré par le CTO, il est responsable de conception,
développement, test et validation des applications.
Département Business ​: Géré par le CEO, il est responsable du marketing,
relations publiques, Talent management et comptabilité.
Figure 2 : Organisation de xTECH
​Identification de la société :
Raison sociale : « xTECH »
Date de création : 2016
Forme juridique : SARL
Adresse Web : http://www.xtech.guru/
Secteur d’activité : Service
​Tableau 1 : Identification de la société
Figure 3 : Propriétaire et Clients de xTECH dans le monde
Les services de xTECH :
xTECH travaille avec des clients de toutes les industries. Elle crée des
applications Web avec les mêmes du commerce électronique, de la gestion
des parcs de véhicules, de la cybersanté, des services financiers et bien
d’autres encore.
1.2- Présentation du Projet
Contexte de projet :
Dans le cadre de l’amélioration de l’efficacité du recrutement et pour faire face
au pénurie des talents en technologies de l’information et le manque des
ressources humaines compétents xTECH a commencé à adopter une
stratégie de chasse de tête en identifiant les profils qui ont des certaines
compétences exigés par la société puis à les contacter pour les inciter à
postuler pour eux. Dans le but d’optimiser et rendre plus efficace cette
stratégie ils nous ont attribué la mission de concevoir et développer une
application web qui permet d’extraire les données des candidats potentiels
visés.
Description de l’existant
Cette section est destinée pour la description du processus actuel effectué
pour pouvoir dégager les points faibles du système.
a- Le processus traditionnel de recrutement:
Le processus de recrutement générale dans xTECH se présente dans le figure
ci-dessous :
Figure 4 : Processus de recrutement de xTECH
b- L’approche de “l’Outbound Recruitment” ou le chasse des têtes :
Après avoir adopté l’approche de chasse de tête, le talent management a
expérimenté sur la plateforme portail d’emplois tunisienne TOUNES TA3MAL,
en possédant un compte sur cette plateforme l’Entreprise aura accès à une
talent pool de tous les candidats inscrit et souhaitant trouver un emploi, le
Talent manager a procédé alors de trier les profils en spécifiant les
compétences exigés par xTECH puis il a collecté les données manuellement
dans des fichiers CSV pour les remettre ensuite dans un outil qui gère les
campagnes d'emailing appelé “MailChimp”.
Figure 5 : Profil des candidats " Tounes ta3mal"
Critique de l’existant:
le processus de recrutement traditionnelle n’est pas pertinent, il engendre une
perte de temps et d’argent considérable pour plusieur raisons, parmi
lesquelles on peut citer :
● Absence d’un talent Pipeline ​: ​Quand un poste est ouvert, il faut
avoir du talent à portée de main, c’est là qu’un pipeline de talents se
crée. Bâtir un réservoir de talents et favoriser les relations avec les
talents, même lorsque on n’embauche pas, est essentiel pour pourvoir
les postes avec les meilleurs talents.
● les Délais :​ Les projets importants ont des délais à respecter, et le
recrutement est tout aussi important. Sans échéance et calendrier
stricts, On peut être à la recherche sans fin du candidat idéal.
● Trop de candidats à interviewer : ​Le processus d'entrevue est de
plus en plus long. Limiter le nombre de candidats interviewé peut
réduire considérablement le temps alloué., c’est pour cela qu’il faut
bien identifier les qualifications dont on a besoin avant d’examiner les
candidatures.
Après avoir adopté la technique de chasse de tête, La procédure de
l’Entreprise de trouver des profils adéquats ,les attirer et communiquer avec
eux présente plusieurs limites :
● L’extraction des données manuellement d'où une perte de temps
considérable à cause des tâches répétitives.
● Les profils sont affichés aléatoirement
● Mauvaise gestion des données.
● Gestion manuelle des campagnes de mailing qui engendre une perte de et qui
n’apporte pas beaucoup d’engagement.
Solution proposée:
Pour optimiser le processus de recrutement et attirer d'avantages des talents,
on a proposé de mettre en place une application qui va permettre de trouver
les meilleurs profils selon les compétences exigées.
Le but principal de cette application en premier lieu est de permettre à
l’utilisateur qui est le “Talent Manager” d’extraire les données des profils
adéquats aux critères choisis au préalable pour un poste donné. Sachant que
les sources auprès desquelles on va extraire les profils sont indiqués lors de
l’implémentation de l'application. un filtrage des données s’applique également
lors de l’extraction, où on va extraire seulement les données ​que nous n'avons
pas déjà.
En deuxième lieu, l’application donne la possibilité de trier les profils selon un
critère donné tel que (Année d’expérience). elle facilite aussi le stockage en
permettant d’exporter tout les données vers un Google Sheet.
Pour nous permettre enfin à exploiter ces données des candidats d’une
manière automatique. En effet, pour communiquer avec eux , on a opté
pour automatiser l’utilisation de l’outil d'emailing “MailChimp”. Cet outil qui était
utilisé avant d’une manière traditionnelle (manuellement).
1.3- Comparaison avec un outil existant.
a- import io :
Après une étude de benchmark on a trouvé l’outil import.io qui rassemble le
plus à notre application. C'est un outil qui permet d’extraire de gros volumes
de données pour les entreprises ​avec des frais.
Le tableau ci dessous est un tableau comparatif entre un outil existant “Import
io” et notre application xTRACT :
L’outil Import io Notre outil xTRACT
- Extraction de toutes les données
disponibles sans critères de recherche.
- Extraction des données sans donner la
possibilité de les trier.
- Possibilité d’extraction des données via
n’importe quel source de web.
- Extraction sélective selon des
critères de recherche choisis par
l’utilisateur.
- Possibilité de trier les données
extraites selon des critères de
préférences définis à l’avance.
- Sources choisis et définis au
préalable.
Tableau 2 : Comparaison de notre application et un outil existant
Figure 6 : L'outil "Import io"
On a opté à développer notre propre outil d’extraction avec des sources
spécifiques que nous avons choisi après une étude sur plusieurs plateformes
de portail d’emploi. Notre application est gratuite qui permet l'extraction des
meilleurs profils adéquats aux exigences des postes. Elle donne la possibilité
à l’utilisateur de sélectionner les critères de recherche et d’ajouter touts les
compétences exigés avant de faire l’extraction. La plateforme est paramétrée
pour filtrer les données. C’est à dire, elle n’extrait que les nouveaux profils
inscrits qui ne se trouvent pas dans la base des données. Enfin , elle permet
de stocker les profils trouvés dans une base des données pour pouvoir les
exploiter.
1.3- Méthode de développement:
La finalisation du projet dans les délais de livraison est le souci majeur de
chaque équipe de développement d'un logiciel. L'un des problèmes les plus
fréquemment affrontés lors de la construction du logiciel est la mauvaise
spécification et le changement brusque des besoins. Cela peut influencer non
seulement l'équipe de développement en créant un environnement de stress,
mais aussi le temps consacré pour la réalisation du projet et donc des délais
de livraison dépassées. An d'éviter ces situations critiques, nous adoptons la
méthodologie agile pour la gestion de notre projet.
Méthode Agile
Les problématiques précédemment mentionnées ont poussé les informaticiens
à réinventer les méthodes de gestion de projet et de conception en
introduisant ce qu'on appelle les méthodes agiles. c'est une approche
incrémentale et itérative, menée dans un esprit collaboratif, avec juste ce qu'il
faut de formalisme. Elle peut générer un produit de bonne qualité tout en
prenant en compte l'évolution des besoins des clients. En suivant cette
approche, le logiciel est conçu dans son ensemble et peut être construit étape
par étape.
Méthode adoptée :
Parmi les méthodes agiles, nous citons Scrum que nous avons choisi pour les
raisons suivantes :
- Entièrement développée et testée pour de courtes itérations.
- Simplicité des processus.
- Augmentation de la productivité.
• Elle permet d'adapter le logiciel crée suivant l'évolution du projet.
WORKFLOW :
Description:
Figure 7 : Workflow de xTRACT
Conclusion
Tout au long de ce chapitre, nous avons présenté l'organisme d'accueil de
xTECH et ses services. Par ailleurs, nous avons pu dégager le contexte
général du projet, Ainsi que la différence entre notre solution et les outils
existants. Enfin, nous avons présenté le choix de la méthodologie de
développement. Le chapitre suivant sera consacré à l’ Analyse et spécification
des besoin.
CHP 2: Analyse et spécification des besoin
Introduction
Ce chapitre présente l'étude des besoins qui constitue une phase d'analyse
du projet. Nous allons présenter tout d'abord, l'équipe Scrum de ce projet
ainsi que les acteurs principaux de l'application. Puis, nous allons identifier
les besoins fonctionnels et non fonctionnels de l'application. Ensuite, nous
allons présenter le backlog de produit et la planification des sprints. Enfin,
nous allons clôturer le chapitre par la modélisation du diagramme de cas
d'utilisation global du projet ainsi que les prototypes des interfaces de notre
application .
2.1 Les rôles Scrum
L'équipe Scrum est constituée d'un propriétaire de produit, de l'équipe de
développement et d'un Scrum Master. Le modèle d'équipe Scrum est conçu
pour optimiser la flexibilité, la créativité et la productivité.
Nous allons tout d'abord tenter de cerner notre équipe Scrum :
- Product Owner (PO) : Hamza BEN ARBIA, son rôle est d'assurer la
présentation des caractéristiques et des fonctionnalités du produit à
développer et l’approbation du produit à livrer.
- Scrum Master (SM) : Ali Othmani, qui assure globalement la
supervision de l'avancement du projet et des activités de l'équipe. Il
assure également l'organisation des réunions et la bonne application de
la méthode AGILE.
- L'équipe de développement : Composée de Mayssa EL BEJI et Siwar
JBELI. Elle comporte une ou plusieurs personnes qui se chargent de la
réalisation des histoires utilisateurs et l’élaboration des sprints.
Figure 8 : Cycle de vie Scrum
La vie d'un projet Scrum est rythmée par un ensemble de réunions
clairement définies et strictement limitées dans le temps.
- Planification du Sprint : Réunion où l'équipe de développement
sélectionne les éléments prioritaires du « Product Backlog ».
C’est une liste ordonnancée des exigences fonctionnelles et non
fonctionnelles du projet et que l’équipe pense pouvoir la réaliser au
cours du sprint en accord avec Hamza Ben Arbia le «Product Owner ».
- Revue de Sprint : Réunion qui a lieu à la fin du sprint, où l'équipe de
développement présente les fonctionnalités terminées au cours du
sprint et recueille les feedbacks du « Product Owner » et l’utilisateur
final de l’application. C’est aussi le moment d'anticiper les prochains
sprints et d'ajuster au besoin leurs planification.
- Rétrospective de Sprint : Elle se fait après la revue de sprint. C’est
l'occasion d'améliorer la productivité, qualité, efficacité et les conditions
de travail à la lueur du "vécu" sur le sprint écoulé (principe
d'amélioration continue).
- Mêlée quotidienne : Il s'agit d'une réunion de synchronisation de
l'équipe de développement appelée aussi "stand up meeting" , qui se
fait debout en 15 minutes maximum. Au cours de laquelle chacun
répond à 3 questions : «Qu'est-ce que j'ai terminé depuis la dernière
mêlée ? Qu'est-ce que j'aurai terminé d'ici la prochaine mêlée ? Quels
obstacles me retardent ? ».
2.2 Identification des acteurs
Un acteur est une personne ou un autre système informatique qui attend un
ou plusieurs services offerts par l'application. Il interagit avec le système par
envoi ou réception des messages.
Par conséquent, nous identifions comme acteur :
- Talent Manager : L’acteur principal qui utilise l’application. Cette
personne peut définir les critères de recherche qui sont les
compétences exigés et faire l’extraction des données. Comme il peut
exporter ces données et les stocker dans un Sheet.
- Développeur : Celui qui est responsable des différents paramétrages de
l'application et qui va indiquer lors de la création de la de l’application
les sources auprès desquelles on va extraire les profils.
2.3 Identification des besoins
L'identification des besoins consiste à traduire les objectifs du projet en un
ensemble de fonctionnalités ciblées par l'outil à réaliser. Suite à l'étude faite
avec l'équipe de xTECH, nous avons dégagé l'ensemble des exigences que
notre application doit satisfaire. Ces exigences sont divisées en besoins
fonctionnels et besoins non fonctionnels.
L’application doit satisfaire les besoins fonctionnels traités par le système et
les besoins non fonctionnels qui contribuent à une meilleure qualité de la
solution obtenue.
- Besoins fonctionnels :
L'objectif principal de l'application est :
- Extraire automatiquement les profils qui répondent aux critères définis
et donc aux exigences des postes.
- Trier les données des profils selon un critère définie à l’avance.
- Transférer les données trouvées dans une base de données
“Google-Sheet” ,et auprès de laquelle on importe les données pour
envoyer des emails automatiques par l’outil d’e-mailing “Mailchimp”.
- Besoins non fonctionnels :
Ce sont les exigences qui ne concernent pas spécifiquement le comportement
du système mais identifient plutôt ses contraintes internes et externes.
Les principaux besoins non fonctionnels de notre application se résument
comme suit :
- L’ergonomie des interfaces : Notre application offre une interface simple
à utiliser pour tous types d’utilisateurs. On peut facilement choisir nos
critères de recherche et en un simple clique extraire toutes les données
ou les exporter.
- La sécurité : L’application garantie à l’utilisateur l’intégrité et la
confidentialité de ses données. Tout ça , en exigeant l’authentification
avant d’exécuter toute opération.
- La maintenance : Le code est clair et bien commenté pour permettre
d'éventuelles évolutions, améliorations ou corrections.
2.4 Pilotage du projet avec SCRUM
Après l’identification des besoins fonctionnels, nous devons les découper en
users stories ou histoires utilisateurs , et les classifier en tenons compte de
deux facteurs principaux qui sont la priorité et la complexité.
- La complexité : Elle sert à estimer l’effort nécessaire à une équipe pour
implémenter une fonctionnalité. Trois éléments doivent être pris en compte
pour l’estimation : l’effort pour le développement, la complexité et le risque.
- La priorité : Le « Product Owner » classifie les users stories dans le «
backlog de produit » par ordre de priorité selon leur importance pour le bon
déroulement du projet.
- Backlog produit :
Le « backlog du produit » constitue l’artefact le plus important de Scrum.
C’est l’ensemble de caractéristiques fonctionnelles et fondamentales pour le
produit souhaité , appelées des User stories ou fonctionnalités.
Le tableau suivant résume le backlog de produit de notre projet :
ID Thème Fonctionnalité (User Story) Priorité Complexit
é
1 Extraction des
profils.
En tant que talent manager, je
veux extraire des profils
automatiquement auprès des sites
données.
Must 13
2 Filtrer les données
importées.
En tant que talent manager, je
veux filtrer les données extraites,
pour éviter la duplication.
Must 8
3 Visualiser les
données extraites.
En tant que Talent Manager, je
veux récupérer la liste de tous les
profils adéquats.
Should 3
4 Stocker les profils. En tant que talent manager, je
veux exporter les données
extraites et les stocker dans un
Must 10
Sheet.
5 Exploitation des
données.
En tant que talent manager, je
veux exploiter les données par la
mise en place d’une campagne
d’e-mailing.
Should 5
6 Recevoir des
notifications des
nouveaux profils.
En tant que talent manager, je
veux recevoir des notifications
quand il y a des nouveaux profils
adéquats.
Could 7
7 Trier les données
extraites .
En tant que talent manager, je
veux que les profils soient trier
selon un critère donnée.
Could 4
Tableau 3 : Le backlog de produit du projet
2.5 Planification des sprints
Les « User stories » précédemment définis dans le « Backlog du produit »
sont triés par ordre de priorité. Le but étant d'implémenter en premier ce qui a
le plus de valeur. Le travail sera planifié selon des sprints que nous avons
définis et chacun dure environ une ou deux semaines. Après une réunion avec
l'équipe, on a identifié quatre sprints.
Dans ce tableau , nous présentons la planification des sprints :
- Sprint 0 a commencé du 4/02 au 28/02 pour les formations et l’installation du
socle technique.
Sprint Nom du Sprint Période
Sprint 1 Extraction des profils des sites sources. 4/3 - /3
Sprint 2 Tri des données
Sprint 3 Stockage des données
Sprint 4 Exploitation des données 22/5 - 30/5
Tableau 4 : Planification des sprints
Cette planification est préliminaire, les Backlogs de sprints seront définis au fur
et à mesure à la fin de chaque sprint et ceci dépendra de la capacité de
l'équipe par lesquelles on entend la rapidité de l'équipe dans la finalisation des
tâches.
2.5 Modélisation des besoins fonctionnels
- Diagramme de cas d'utilisation global :
La figure ci-dessous décrit les différentes fonctionnalités de chaque acteur.
Figure 9 : Diagramme de cas d'utilisation global
Prototypage des interfaces de l’application :
Dans le cadre d’un projet informatique, la création de maquettes peut apporter
divers avantages. D’abord, dans le cas d’une prestation de service, ça permet
de montrer au client une vision de la future application. Ensuite, la mise au
point de l’interface peut se faire en collaboration avec le client, ce qui donne la
certitude de répondre à ses attentes.
Nous présentons ci-dessous quelques maquettes prévisionnelles des
interfaces à réaliser.
Ceci est l’aperçu global de l’application, après l’authentification l’utilisateur
procède à choisir les critères de recherche des profils dans la bar de
recherche à droite .
● Prototypage de l'interface d'accueil de l’application :
Conclusion
Ce chapitre nous a permis de bien délimiter le projet et d'avoir une vision plus
claire du sujet. Nous avons décrit l’équipe , les acteurs ,les besoins et le
Backlog produit. Par la suite, il nous a permis de planifier et organiser le temps
consacré à la réalisation du projet en identifiant les sprints. Puis, nous avons
décrit le cas d'utilisation global , ainsi que les prototypes des interfaces de
notre application.
Dans le chapitre suivant, nous allons entamer la phase de la réalisation du
projet.
CHP 3 Réalisation de projet
Introduction
Nous consacrons ce chapitre à la réalisation du projet et la mise en place de
l'architecture ainsi que l'environnement de travail matériel et logiciel vont être
expliqué par la suite. Ensuite, nous exposerons la réalisation des sprints
réparties chacun en cinq modules. Afin de mieux comprendre le système à
développer, une démarche de modélisation structurée s’impose. Nous avons
choisi d’utiliser la méthodologie UML pour décrire les différents aspects de
notre système, ce qui permettra de faciliter et structurer le développement.
3.2
Etude et réalisation du Sprint 1 : Extraire des profils
1-Analyse :
Le but de ce sprint est de​ rechercher et extraire un ou plusieurs utilisateurs en
fonction du/des critère(s) spécifiés , et d’avoir la liste de tous les profils
adéquats dans un tableau. Le Talent Manager peut effectuer un filtre global
sur tous les profils scrappés.
Sourcing :
L’identification des sources des données permettant de répondre aux besoins
de l’entreprise est un défi. ​Le Talent Manager de xTECH a fait recours à
différentes plateformes et portail d’emploi. Après avoir étudié ces plateformes,
nous avons choisi le site portail d’emploi tunisien JOBI.tn et la plateforme
internationale GitHub comme sources d’extraction où nous allons trouver les
meilleures profils et les professionnels dans le domaine monde IT.
JOBI.tn​ : C’est une plateforme de recrutement en ligne tunisienne fondée en
2016, son talent pool est riche en compétences dans les technologies de
l’information et présente des données diversifiés.
En possédant un compte entreprise sur cette plateforme l’utilisateur aura
accès à tous les utilisateurs souhaitant trouver un emploi à travers l’espace
CVTHÈQUE.
Les données sont par contre encryptés, il faut avoir un crédit de points
achetés pour les décrypter.
Figure 18 : L’espace CVTHEQUE de JOBI.tn
Les profils dans notre premier source JOBI.tn se présente comme suit :
Figure 19 : Présentation des profils sur JOBI.tn
GitHub : Notre deuxième source ​est un service web d'hébergement et de
gestion de développement de logiciels, utilisant le logiciel de gestion de
versions Git.
Le site ​assure un contrôle d'accès et des fonctionnalités destinées à la
collaboration comme (​la possibilité de suivre des personnes ou des projets, ​le
suivi des bugs, les demandes de fonctionnalités et un wiki pour chaque projet).
Nous avons choisi ce site car il est riche des profils intéressants dans le
domaine de technologies de l’information. En avril 2016, GitHub a annoncé
avoir dépassé les “14 millions d'utilisateurs” et plus de “35 millions de dépôts
de projets” classé comme le plus grand hébergeur de code source au monde.
Figure 20 : Présentation des profils sur GitHub
On a présenté la structure des données à extraire et leur signification dans le
modèle de compétence ci-dessous :
Figure 21 : Modèle des compétences
2- Backlog du sprint :
Ci-dessous, le tableau du backlog de sprint 1 : Extraction des profils
ID User Story
(​Fonctionnalité)
Tâches Estimation Priorité
1 Définir les critère
de recherche
-​Ajouter la barre dans laquelle on
va spécifier les critères de
recherche des profils.
-Sélectionner un/des critères
parmis les critères suggérés.
-Ajouter d’autres critères de
recherches
10 1
2 Récupérer les
résultats des
profils scrappés
- Ajouter un bouton pour extraire les
données des profils de JOBI.tn et
un autre pour Github.
-Authentification à JOBI.tn avant de
pouvoir faire l'extraction.
- Afficher les résultats scrappés de
JOBI.tn et de Github , chacun dans
un tableau à part.
- Ajouter un bouton pour switcher
d’un tableau à l’autre.
7 1
3 Filtrer les
données
scrappées
-Extraire la date de création des
profils
-Comparer les dates de création
des profils scrappés (extraction que
lorsque la date de création > date
des profils existants).
5 2
Tableau 5 : Backlog sprint 1
3. Spécification fonctionnelle
a. Diagramme de cas d’utilisation Sprint 1 :
La figure ci-dessous illustre le raffinement du cas d'utilisation “Extraire des
profils”.
Figure 22 : Diagramme de cas d'utilisation "Extraction des profils”
b. Description
Ce tableau illustre la description textuelle du cas d'utilisation Extraction des
profils.
Titre Extraire des profils
Résumé Chercher des profils à partir des sites de recrutement selon des
critères pour un poste donné.
Acteur Talent Manager
Pré-condition 1-L’application est lancée avec succès et les critères sont définis.
2-Connexion à JOBI.tn.
3-Acheter des points dans le site JOBI.tn.
Post-condition L'opération choisie de l’extraction a été exécutée avec succès.
Scénario Nominal 1. L’utilisateur accède à la page d’accueil de l’application.
2. L’utilisateur spécifie les compétences exigés pour un profil.
3. L’utilisateur clique sur le bouton ‘Chercher’ de JOBI.tn et/ou
GitHub.
3.a Il faut s’authentifier pour pouvoir extraire des données de Jobi.
4. Le système affiche la liste de tous les profils correspondant aux
critères choisis.
5. l’utilisateur peut trier les profils trouvés selon l’un des éléments
de tableau.
MException 1-L’utilisateur ne spécifie aucun critère de recherche.
3-1 Le système affiche un message d’erreur ”aucun critère de
recherche trouvé”.
3-2-Reprise de l’étape 2 du scénario nominal.
2-L’utilisateur a saisi un login ou mot de passe erronées lors de
l'authentification.
2-1 Le système affiche un message d’erreur "Votre login ou mot
de passe sont erronées" .
2-2-Reprise de l’étape 3 du scénario nominal.
Le tableau 6 : Description textuelle du cas d'utilisation ​Extraction des profils​.
c. Diagramme de séquence système
Figure 23 : Diagramme de séquence "E​xtraction des profils”
4. Conception
A- Diagramme de classe de sprint 1
Figure 24 : Diagramme de classe" Extraction des profils”
5. Réalisation
On va maintenant présenter le travail réalisé dans notre premier sprint :
Comme illustré dans la figure ci-dessous, l’utilisateur sélectionne un ou
plusieurs critères de recherche, les ajouter et puis il clique sur le bouton «
Rechercher ».
Figure 25 : Définir les critères de recherche
La deuxième figure illustre le pop-up de chargement qui s’affiche pour charger
les données des profils après la spécification des critères.
Après avoir cliqué sur le bouton « Rechercher », les résultats de la recherche
s’affichent dans le tableau :
On va montrer maintenant les résultats de la recherche par les différents
critères :
Cette figure illustre les résultats de recherche :
Figure 26 : Résultat de recherche des profils
6. Test et validation
A la fin de chaque sprint, nous effectuons des tests unitaires pour s’assurer du
bon fonctionnement du cas d’utilisation. Pour cela, une comparaison est faite
pour comparer les comportements attendu et des résultats obtenus.
Avant la fin de chaque Sprint nous avons testé les fonctionnalités du module.
Ensuite, nous avons validé toutes les fonctionnalités avec le Product Owner.
Pour ce fait, nous avons élaboré dans le tableau un ensemble de cas de
scénario de tests fonctionnels relatifs au sprint 1.
Cas de test Démarche Comportement attendu Résultat
Définir les
critères de
recherche
- Suggérer des critères
de recherche par
défaut.
-Ajouter la barre dans
laquelle on ajoute des
nouveaux critères.
-Créer le bouton
“Ajouter”.
-Spécifier des critères
de recherche soit par
choisir: parmis les
suggestions ou en
ajoutant des nouveaux
critères dans la barre de
recherche.
Conforme
Définir le
bouton
Chercher
-Indiquer les sites
sources dans le code
de développement.
-Ajouter un bouton
“Chercher” .
-Extraire tous les profils
adéquats aux critères
définis.
Conforme
Filtrage des
données
scrappées.
-Définir la date de
création des profils
comme un critère de
filtrage.
-Extraire que les
données des profils qui
ne se trouvent pas déjà
dans la BDD.
Conforme
Tableau 7 : Tests fonctionnels du sprint 1
Après avoir vérifié le bon fonctionnement du code et des fonctionnalités, le
premier livrable a été testé par le Product Owner. Ainsi, il nous a transmis la
liste des améliorations, des fonctionnalités à ajouter et des bugs à signaler.
7. Problèmes rencontrés
Au cours de la réalisation de ce sprint nous avons rencontré quelques
problèmes, à savoir :
-La structure des deux sites source auprès desquelles on fait l’extraction n’est
pas la même. Ainsi, les données disponibles pour un site, n’ont pas
disponibles pour l’autre.
-Difficulté de trier les profils, vu l'absence d’un critère commun entre les deux
sites qui permet de classifier les résultats d’une façon pertinente.
Etude et réalisation du Sprint 2 : Tri et classement
des profils
1-Analyse :
Le but de ce deuxième sprint est de​ trier les profils trouvés p​our permettre à
l’utilisateur d’identifier facilement les meilleurs talents.
Une fois que la recherche à été effectuée, le Talent Manager a la possibilité
d’afficher les profils classés selon un critère de préférence ​prédéfini pour
chaque site. En effet, les deux sites sources n’ont pas la même structure ni les
mêmes données disponibles. Donc, nous avons choisi un critère de tri pour
chacun des sites. ​ Après l'étude effectué, on a trouvé que le critère le plus
pertinent pour le site JOBI est le nombre d’années d'expérience et le “nombre
de contribution” pour le deuxième source github.
2-Backlog du sprint :
Ci-dessous, le tableau du backlog de sprint 2 : Tri des profils
ID User
Story(Fonctionnalité)
Tâches Estimation Priorité
1 trier les profils de
Jobi
-Ajouter une commande qui
permet de classer les profils
selon les années
d'expérience.
2 trier les profils de
Github
-Ajouter une commande qui
permet de classer les profils
selon le nombre de
contributions.
Tableau 8 : Backlog sprint 2
3. Spécification fonctionnelle
a. Diagramme de cas d’utilisation Sprint 2 :
La figure suivante illustre le raffinement du cas d'utilisation “Tri des profils”.
Figure 26 : Diagramme de cas d'utilisation “tri des profils”
b-Description
Ce tableau illustre la description textuelle du cas d’utilisation “Tri des profils”
Titre Tri des profils
Résumé Classer les profils extraits selon un critère de préférence pour
identifier les meilleurs talent.
Acteur Talent Manager
Pré-condition Les profils sont scrappés des deux sites et afficher dans deux
tableaux différents.
Post-condition Le système affiche la liste des profils classés dans le tableau
selon le critère de préférence choisi.
Scénario
Nominal
1-Le Talent manager choisit le critère de tri des profils
2-Le système affiche les profils classés selon le critère choisi
dans un tableau.
Scénario
Exception
1-L’utilisateur n’a pas fait l’extraction des profils.
1-1 Reprise de l’étape 3 du scénario nominal 1.
Tableau 9: Description textuelle de cas d'utilisation “tri des profils”
c. Diagramme de séquence détaillé :
Figure 27 : Diagramme de séquence détaillé “Tri des profils”
4 Conception
A-Diagramme de classe de sprint 2
Figure 28 : Diagramme de classe “Tri des profils”
5 Réalisation
On va maintenant présenter le travail réalisé dans ce sprint :
Comme illustré dans la figure ci-dessous, les profils sont classées en ordre
descendant selon le nombre d’années d'expérience pour les profils venant de
Jobi.tn et selon le nombre de contributions pour les profils venant de Github.
Dans les deux figures suivantes on va présenter les deux tableaux contenant
les profils triés :
figure
Figure 29 : Les profils triés de JOBI.tn
figure
Figure 30 : Les profils triés de GitHub
6 Test et validation
Nous avons élaboré dans le tableau suivant un ensemble de cas de scénario de tests
fonctionnels relatifs au sprint 2.
Cas de test Démarche Comportement attendu Résultat
Trier les profils
extraits auprès
de JOBI.tn
-Création d’une
commande qui permet
de classer les profils
selon le nombre
d’années d’expérience
-Les profils sont affichés
classés dans un ordre
descendant selon le
nombre d’années
d'expérience.
Conforme
Trier les profils
extraits auprès
de Github
-Création d’une
commande qui permet
de classer les profils
selon le nombre de
contribution
-Les profils sont affichés
classés dans un ordre
descendant selon le
nombre de contribution
Conforme
Tableau 10 : test fonctionnel de sprint 2
III. Étude et réalisation du Sprint 3 : Exportation et
Stockage des données
​1 Analyse
Le but de ce sprint est de donner la possibilité à l’utilisateur d’exporter les
données après l’extraction. Le stockage des données demeure une étape
primordial dans chaque stratégie data-driven pour pouvoir bien les exploiter
dans une étape suivante. Le product owner nous a proposé l’outil google
sheets pour la facilité de son utilisation. Ainsi, qu'il permet un ​stockage
sécurisé et économique dans le cloud.
2 -Backlog du sprint :
ID User Story
(Fonctionnalité)
Tâches Estimation Priorité
1 S’authentifier
avec google
- Ajouter un bouton qui permet de
se connecter à un compte google
un ​stockage sécurisé et
économique dans le cloud.
4 1
2 Exporter les
données vers un
google sheet
Ajouter un bouton pour exporter
les données dans un google
sheet.
5 1
3 Récupérer les
résultats dans un
google sheet
- Afficher les résultats exportés
dans un google sheet
7 1
Tableau 11 : Backlog sprint 3
3 Spécification fonctionnelle
a-Diagramme de cas d'utilisation du Sprint 3
Figure 29 : Diagramme de cas d'utilisation “Stockage des profils”
b- Description
Ce tableau va illustrer la description textuelle de cas d'utilisation “Stockage
des profils”
Titre Stocker les données
Résumé Stocker les résultats de recherche dans une base de données
Acteur Talent Manager
Pré-condition L’opération d’extraction et bien exécutée.
Post-condition L’opération d’exportation est bien exécutée et les profils sont
stockés dans Google-Sheet.
Scénario Nominal 1-Le Talent manager choisit d’exporter les résultats trouvés à
Google-Sheet.
2-Le Talent Manager doit s’authentifier à Google-Sheet.
3-Le système va envoyer les profils trouvés à une Sheet définie.
4-Le talent Manager peut consulter Google-Sheet et voir toutes
les données.
Exception 1-L’utilisateur n’a pas fait l’extraction des profils.
1-1 Reprise de l’étape 3 du scénario nominal 1 de la première
sprint.
2-L’utilisateur a saisi un login ou mot de passe erronées lors de
l'authentification à Google Sheet .
2-1 Le système affiche un message d’erreur "Votre login ou mot
de passe sont erronées" .
2-2-Reprise de l’étape 2 du scénario nominal de la deuxième
sprint.
Tableau 12 : Description textuelle de cas d’utilisation “stockage des profils”
​c-Diagramme de séquence détaillé
Figure 30 : Diagramme de séquence détaillé “stockage des profils”
4 Conception
a-Diagramme de classe du Sprint 3
Figure 31 : Diagramme de classe “stockage des profils”
5 Réalisation
Pour présenter notre travail réalisé dans ce sprint, la figure ci-dessous nous
montre les profils extraits stockés dans notre base des données Google
Sheet.
Figure 32 : Interface des profils stockés dans Google Sheet
6 Test et validation
Nous avons élaboré dans le tableau un ensemble de cas de scénario de tests
fonctionnels relatifs au sprint 3.
Cas de test Démarche Comportement attendu Résultat
Exportation des
profils extraits
auprès de
JOBI.tn
-Création d’une bouton
qui permet d’exporter
les profils de JOBI et
leur données vers un
google sheet
-Les profils de JOBI.tn
sont bien exportés et
stockés dans un Google
sheet
Conforme
Exportation des
profils extraits
auprès de Github
-Création d’une bouton
qui permet d’exporter
les profils de JOBI et
leur données vers un
google sheet.
-Les profils de GitHub
sont bien exportés et
stockés dans un Google
sheet
Conforme
Tableau 13 : tests fonctionnels de sprint 3
Etude et réalisation du Sprint 4 : Automatisation de
l’outil d’emailing
Le but de ce sprint est d’automatiser l’emailing et donc permettre au Talent
Manager d’exploiter les données extraites pour contacter les profils.
En effet, le but ultime de l’extraction des données des profils n’est pas
seulement d’identifier les meilleurs talents mais aussi de bien communiquer
avec eux en vue de les inciter à nous rejoindre.
L’outil d'emailing MailChimp, qui était utilisé d’une manière traditionnelle en
important les profils manuellement, nous allons automatiser son utilisation.
importer la base de donnée des profils pour les contacter. Une campagne
d'emailing automatique sera envoyée selon les données paramétrées. Enfin,
le processus se termine par un entretien physique de “soft skills” pour ceux qui
ont réussis le test de code.
2- Backlog du sprint :
Ci-dessous, le tableau du backlog de sprint :
ID User Story Tâches Estimation Priorité
1 Importer la base de
données de profils.
1-se connecter à MailChimp.
2-Créer une liste des abonnées.
3-Importer les données
extraites.
5 1
2 Créer une
campagne
d’emailing.
1-Créer une campagne
d’emailing automatique.
2-Choisir une liste des
abonnées.
3 2
3 Envoyer les emails 1-Concevoir les emails.
2-Paramétrer l’envoi des emails.
3-Enregistrer et envoyer les
emails.
7 3
Tableau 14 : Backlog sprint 4
3. Spécification fonctionnelle
a. Diagramme de cas d’utilisation Sprint 4 :
La figure 3.2 illustre le raffinement du cas d'utilisation “Exploitation des
données”.
Figure 3.2: cas d'utilisation du sprint 1 “​Exploitation des données​”
Figure 32 : Diagramme de cas d’utilisation “Exploitation des données”
b. Description
Le tableau suivant illustre la description textuelle du cas d'utilisation
Exploitation des données.
Titre Exploitation des données
Résumé Contacter les profils par des emails à partir de l’outil
d’emailing MailChimp pour les recruter.
Acteur Talent Manager
Pré-condition 1-Se connecter à un compte MailChimp.
2-Avoir une base de données des profils à contacter.
Post-condition L’opération a été exécutée avec succès et les mails sont
envoyés.
Scénario Nominal 1- L’utilisateur se connecte à un compte MailChimp.
2- Créer des listes d’abonnés sur Mailchimp.
3- L’utilisateur importe la base de données des profils.
4-Créer la première campagne d’emails ( newsletter).
5- Paramétrer l’envoi des emails.
6- L’utilisateur choisit la liste des profils à contacter.
7- L’utilisateur va concevoir une série des emails
automatiques
8- L’utilisateur clique sur le bouton “Commencer”, pour
commencer l’envoi.
9- Analyser les résultats de votre campagne d’emails.
Exception 1-L’utilisateur ne peut pas importer la base de données
2-2-Reprise de l’étape 2 du scénario nominal.
Le tableau 15 : Description textuelle du cas d'utilisation ​Extraction des profils​.
c. Diagramme de séquence détaillé
Figure 33 : Diagramme de séquence sprint 4
4. Conception
a- Diagramme de classe du sprint 4
Figure 34 : Diagramme de classe sprint 4
3. Réalisation
On va maintenant présenter le travail réalisé dans notre quatrième sprint :
Comme illustré dans la figure ci-dessous, l’utilisateur se connecte à MailChimp :
Figure 35 : Interface d’authentification à MailChimp
Ces deux figures illustrent la création d’une liste et l’importation des données des
profils auprès d’un fichier “Google-Sheet”.
Figure 36 : Interface d’ajouter contact
Figure 37 : Interface d’importation des contacts via Google-Sheet
Enfin, Mailchimp nous donne la possibilité d’automatiser nos campagnes pour avoir
plus d’engagement et des meilleurs résultats comme il est présenté ci dessous:
Figure 38 : Interface de création des emails automatiques
Figure 39 : Interface d’analyse des résultats de la campagne d’e-mailing
4. Test et validation
Pour ce fait, nous avons élaboré dans le tableau un ensemble de cas de scénario de
tests fonctionnels relatifs au sprint 4.
Cas de test Démarche Comportement attendu Résultat
Importer des
contacts
-Créer une une liste
d’abonnées.
-Importer des profils
d’abonnées.
-Choisir le mode
d'importation des
profils .
-Importation des profils
enregistrés dans le
Sheet.
Conforme
Envoyer les
emails
automatiquement
.
-Créer une campagne
d’emailing.
-Choisir une liste des
contacts.
-Les emails sont
envoyés selon les
paramètres définis à
l’avance .
Conforme
-Concevoir les emails.
Figure 16 : test fonctionnel de sprint 4
Conclusion
Au cours de ce sprint, nous avons exploité les données des profils scrappées
par le premier sprint. Nous avons fini par envoyer des emails à tous les
candidats de la base de données. Le sprint a été présenté dans le cadre d'une
réunion de dernier sprint de projet. Cette réunion était à la présence de
l'équipe du projet et quelques responsable de département RH.
Conclusion générale
Le présent document est une présentation du travail réalisé durant notre stage
de fin d'études au sein de l'entreprise xTECH. Le projet a pour objectif de
réaliser une application d’extraction des données pour améliorer le
recrutement et faciliter les tâches pour le “Talent Manager” dans le
département RH de xTECH.
Cet outil est multiplateforme et présente un niveau de portabilité élevé, vu la
facilité de son utilisation dans différents environnements de travail.
Nous avons commencé par comprendre les exigences de l’utilisateur et le
contexte général du projet. Puis, nous avons préparé un planning de travail en
respectant les priorités des besoins déjà fixés avec l'équipe Scrum.
Malgré les contraintes de temps et les difficultés techniques que nous avons
rencontré qui se résument principalement dans la compréhension du sujet et
dans la complexité de la structure des sites auprès desquelles est faite
l’extraction des données, nous avons réussi à réaliser presque la totalité de
notre application “xTRACT”.
Le travail dans le cadre de ce PFE, était d'une importance considérable dans
la mesure où il nous a servi comme portail vers le monde professionnel et la
vie d'entreprise.
De point de vue technique, il nous a permis de mettre en oeuvre les acquis
théoriques que nous avons appris tout au long de notre cursus universitaire et
de les enrichir et approfondire des connaissances dans le domaine de gestion
de ressources humaines. Outre, ce projet était aussi enrichissant pour les
bonnes pratiques de la gestion de projet vu que nous avons eu l'opportunité
d'organiser son déroulement dès le début.
Finalement, notre travail ne s'arrête pas à ce niveau. En effet, parmi les
fonctionnalités que nous pouvons envisager pour “xTECH” :
- “l’outbound Recruiting” c’est la notion de chasse des têtes, chercher
les meilleurs profils à recruter.
- Automatiser le processus de recrutement par l’outil MailChimp en
facilitant le contact avec les candidats par l’envoi automatique des
emails.
Bibliographie

Contenu connexe

Similaire à 458008733-Rapport-de-projet-de-fin-d-etudes.pdf

Rapport PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Rapport PFE | Eolane | Amélioration de la productivité de l'atelier CMSRapport PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Rapport PFE | Eolane | Amélioration de la productivité de l'atelier CMSZouhair Boufakri
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Saâd Zerhouni
 
Rapport Projet Gestion des Etudiants avec C++
Rapport Projet Gestion des Etudiants avec C++Rapport Projet Gestion des Etudiants avec C++
Rapport Projet Gestion des Etudiants avec C++Saâd Zerhouni
 
Ma présentation PFE
Ma présentation PFEMa présentation PFE
Ma présentation PFELouati Aicha
 
Projet carrière en informatique
Projet carrière en informatiqueProjet carrière en informatique
Projet carrière en informatiqueZachary69
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...younes elmorabit
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilahMoez Moezm
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un SupermarchéMouad Lousimi
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Addi Ait-Mlouk
 
portail_captif.pdf
portail_captif.pdfportail_captif.pdf
portail_captif.pdfnabila201151
 
PréSentation eBRP061207
PréSentation eBRP061207PréSentation eBRP061207
PréSentation eBRP061207eBRPAdmin
 
Catalogue PFE - Chifco 2019
Catalogue PFE - Chifco 2019Catalogue PFE - Chifco 2019
Catalogue PFE - Chifco 2019Chifco iot
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAOahmedmiha
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...Sid Ahmed Benkraoua
 
programme d'études.pdf
programme d'études.pdfprogramme d'études.pdf
programme d'études.pdfRoiduSilence
 
Modélisation et simulation des réseaux L2 Info UKA 2024.pptx
Modélisation et simulation des réseaux L2 Info UKA 2024.pptxModélisation et simulation des réseaux L2 Info UKA 2024.pptx
Modélisation et simulation des réseaux L2 Info UKA 2024.pptxBernardKabuatila
 
Approche processus
Approche processusApproche processus
Approche processusAyoub BAHTAT
 

Similaire à 458008733-Rapport-de-projet-de-fin-d-etudes.pdf (20)

Rapport PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Rapport PFE | Eolane | Amélioration de la productivité de l'atelier CMSRapport PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Rapport PFE | Eolane | Amélioration de la productivité de l'atelier CMS
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C#
 
Rapport Projet Gestion des Etudiants avec C++
Rapport Projet Gestion des Etudiants avec C++Rapport Projet Gestion des Etudiants avec C++
Rapport Projet Gestion des Etudiants avec C++
 
Ma présentation PFE
Ma présentation PFEMa présentation PFE
Ma présentation PFE
 
Projet carrière en informatique
Projet carrière en informatiqueProjet carrière en informatique
Projet carrière en informatique
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
 
Formation Agile Scrum
Formation Agile ScrumFormation Agile Scrum
Formation Agile Scrum
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilah
 
Rapport mini-projet Gestion Commerciale D’un Supermarché
Rapport mini-projet  Gestion Commerciale D’un SupermarchéRapport mini-projet  Gestion Commerciale D’un Supermarché
Rapport mini-projet Gestion Commerciale D’un Supermarché
 
PFE Book Abshore
PFE Book AbshorePFE Book Abshore
PFE Book Abshore
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013
 
portail_captif.pdf
portail_captif.pdfportail_captif.pdf
portail_captif.pdf
 
PréSentation eBRP061207
PréSentation eBRP061207PréSentation eBRP061207
PréSentation eBRP061207
 
Catalogue PFE - Chifco 2019
Catalogue PFE - Chifco 2019Catalogue PFE - Chifco 2019
Catalogue PFE - Chifco 2019
 
Rapport du projet
Rapport du projetRapport du projet
Rapport du projet
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
programme d'études.pdf
programme d'études.pdfprogramme d'études.pdf
programme d'études.pdf
 
Modélisation et simulation des réseaux L2 Info UKA 2024.pptx
Modélisation et simulation des réseaux L2 Info UKA 2024.pptxModélisation et simulation des réseaux L2 Info UKA 2024.pptx
Modélisation et simulation des réseaux L2 Info UKA 2024.pptx
 
Approche processus
Approche processusApproche processus
Approche processus
 

Dernier

GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdfSoukainaMounawir
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 

Dernier (15)

GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 

458008733-Rapport-de-projet-de-fin-d-etudes.pdf

  • 1. Université de Carthage Institut des Hautes Etudes Commerciales de Carthage Rapport de projet de fin d’études Elaboré par Siwar Jbeli Mayssa El Béji Présenté en vue de l’obtention du diplôme de Licence Appliquée en Technologies de l’information Sujet Conception et développement d’une application web d’extraction de données Encadrant professionnel : Hamza Ben Arbia Encadrant professionnel : Ali Othmani Encadrant académique : Maroua Laabidi Réalisé au sein de xTECH Development Services ​ Année Universitaire : 2018-2019
  • 2. Remerciements Nous tenons tout d’abord à remercier Dieu le tout puissant, qui nous a donné la force et la patience d’accomplir ce modeste travail. Nous remercions les collaborateurs de la société xTECH avec qui nous avons passé notre stage, plus précisément Mr Haykel Ben Jemaa et nos deux encadrants Mr Hamza Ben Arbia et Mr Ali Othmani. Nous remercions également Mme Maroua Laabidi notre encadrante académique de projet de fin d’étude, pour ses précieux conseils et son orientation ficelée tout au long de notre travail. Nous remercions tous les professeurs de l’IHEC de notre formation durant les trois années d’études pour leur sympathie et leur patience, et toutes les personnes qui ont contribué de près ou de loin au bon acheminement de cette formation. Nous remercions finalement les membres du jury pour avoir bien voulu examiner ce travail.
  • 3. Dédicace Je dédie mon travail à ma famille qui m’a doté d’une éducation digne son amour a fait de moi ce que je suis maintenant, plus particulièrement à Á ma très chère mère Hamida, mon ange gardien, qui m’a toujours soutenu et encouragé pendant mes années universitaires l’amour que tu m’as donné été la cause fondamentale de ma persistance et ma réussite, milles lignes ne pourrait être à la hauteur de te remercie.. Á mon père Habib, mon épaule solide et ma source de fierté , je le remercie pas assez pour tous les sacrifices et l’encouragement aussi bien morale que apathique et sa patience tous ses années.. Á ma soeur : Meherzia et mon frère : Aziz, vous êtes le meilleur appui et soutien que je puisse avoir dans ma vie… Spécialement, je veux remercier mon oncle Mohamed et sa femme Yamina, ainsi que ma chère cousine Rihab pour leur aide et leur contribution dans ma réussite. Á mon binôme Siwar, notre expérience de stage n’avait pas seulement trace dans mon cursus académique mais aussi dans ma vie avec la patience, la compréhension et la motivation que tu m’as fait passer… Enfin, à tous ceux qui me sont chers et à toute personne qui m’a souhaité la réussite… Mayssa
  • 4. Sommaire Introduction Générale 1 Cadre Générale du projet 1- Introduction 1.1 Présentation de l’organisme d’accueil 1.1.1 Organisation de l’Entreprise 1.1.2 Les services de l’Entreprise 1.1.3 Fiche signalétique 1.2 Présentation du Projet 1.2.1 Contexte de projet 1.2.2 Description de l’existant 1.2.3 Critique de l’existant 1.2.4 Solution proposée 1.2.5 Outils existants sur le marché 1.3 Méthode de développement 1.3.1 Méthode Agile 1.3.2 Méthode adoptée 1.3.3 Méthodologie Scrum
  • 5. Conclusion 2 Analyse et spécification des besoins Introduction 2.1 Les rôles Scrum 2.2 Identification des acteurs 2.3 Identification des besoins 2.3.1 Besoins fonctionnels 2.3.2 Besoins non fonctionnels 2.4 Pilotage de projet avec SCRUM 2.4.1 Le Backlog de produit 2.5 Planification des sprints 2.6 Modélisation des besoins fonctionnels 2.7 Prototypage des interfaces de l’application Conclusion 3 Réalisation du projet Introduction 3.1 Architecture de la solution 3.1.1 Choix de l’architecture de l'application 3.1.2 Architecture MVC 3.2 Environnements de travail 3.2.1 Environnement matériel 3.2.2 Environnement technique 3.3 Langages et technologies Conclusion I. Étude et réalisation du Sprint 1: Extraction des données 1 Analyse 2 Backlog du sprint
  • 6. 3 Spécification fonctionnelle a-Diagramme de cas d'utilisation du Sprint b-Description c-Diagramme de séquence détaillé 4 Conception a-Diagramme de classe du Sprint 1 5 Réalisation 6 Test et validation 7 Problèmes rencontrés II. Étude et réalisation du Sprint 2 : Tri des données 1 Analyse 2 Backlog du sprint 3 Spécification fonctionnelle a-Diagramme de cas d'utilisation du Sprint 2 b-Description c-Diagramme de séquence détaillé 4 Conception a-Diagramme de classe du Sprint 2 5 Réalisation 6 Test et validation 7 Problèmes rencontrés III. Étude et réalisation du Sprint 3 : Stockage des données 1 Analyse 2 Backlog du sprint 3 Spécification fonctionnelle a-Diagramme de cas d'utilisation du Sprint 3 b-Description c-Diagramme de séquence détaillé
  • 7. 4 Conception a-Diagramme de classe du Sprint 3 5 Réalisation 6 Test et validation 7 Problèmes rencontrés IV.​ Étude et réalisation du Sprint 4 : Exploitation des données 1 Analyse 2 Backlog du sprint 3 Spécification fonctionnelle a-Diagramme de cas d'utilisation du Sprint 4 b-Description c-Diagramme de séquence détaillé 4 Conception a-Diagramme de classe du Sprint 4 5 Réalisation 6 Test et validation 7 Problèmes rencontrés Conclusion Conclusion générale Bibliographie Table des figures Figure 1 : Logo xTECH Figure 2 : Organisation de xTECH Figure 3 : Propriétaire et clients de xTECH dans le monde Figure 4 : Processus de recrutement de xTECH Figure 5 : Profil des candidats “Tounes Ta3mal”
  • 8. Figure 6 : L’outil “Import io” Figure 7 : Workflow de xTRACT Figure 8 :Cycle de vie Scrum Figure 9 : Diagramme de cas d'utilisation global Figure 10 : Figure 11 : Figure 12 : Figure 13 : Figure 14 : Figure 15 : Figure 16 : Architecture logicielle Figure 17 : Architecture MVC Figure 18 :​ L'espace CVTHÈQUE de JOBI.tn Figure 19 : Présentation des profils sur JOBI.tn Figure 20 : Présentation des profils sur GitHub Figure 21 : Modèle des compétences Figure 22 : Diagramme de cas d’utilisation “Extraction des profils” Figure 23 : Diagramme de séquence détaillé “Extraction des profils” Figure 24 : Diagramme de classe “Extraction des profils” Figure 25 : Interface d'ajout des critères de recherche Figure 26 : Interface de la page d'authentification JOBI.tn Figure 27 : Interface de la chargement des résultats Figure 25 : Interface de l'affichage des résultats Figure 26 : Diagramme de cas d’utilisation “Tri des profils” Figure 27 : Diagramme de séquence détaillé “Tri des profils” Figure 28 : Diagramme de classe “Tri des profils” Figure 29 : Interface Liste des tables Tableau 1 : Identification de la société Tableau 2 : Comparaison de notre application et un outil existant Tableau 3 : Le Backlog de produit du projet
  • 9. Tableau 4 : Planification des sprints Tableau 5 : Backlog de sprint 1 Tableau 6 : Description textuelle du cas d’utilisation ​“Extraction des profils” Tableau 7 :Tests fonctionnels du sprint 1 Tableau 8 : Backlog de sprint 2 Tableau 9 : Description textuelle du cas d’utilisation ​“Tri des profils” Tableau 10 :Tests fonctionnels du sprint 2 Introduction générale Introduction générale : Les entreprises ambitieuses cherchent constamment un avantage concurrentiel et le cherche souvent sur un nouveau marché, un produit innovant ou une nouvelle stratégie, mais les meilleures d'entre elles n'oublient jamais de regarder aussi vers l’intérieur, à leur propre talent. Les grands talents sont une source puissante et constante de force dans les affaires. Amplifiée par l’évolution des besoins en compétences à l’heure de la transformation digitale, la pénurie de talents n’a jamais été aussi forte. Trouver un développeur est devenu un véritable défi devant l’explosion de la demande et de l’offre. Comment s’y retrouver? Ou se rendre pour trouver une perle rare?
  • 10. Une situation qui impose aux chefs d’entreprise de remettre en question leur stratégie d’acquisition de talents. En plein essor pour les entreprises qui cherchent des talents, “l'Outbound Recruiting” ou la chasse de têtes est une technique de Ressources Humaines utilisée dans le recrutement. Cette technique consiste à rechercher des candidats potentiels qualifiés pour un poste, puis à les contacter individuellement. Une approche "Data-Driven"​1 ​ excelle à ce niveau, l’explosion du big data nous permet un accès à toutes les informations sur un potentiel candidat : ses expériences, ses compétences, ses recommandations, etc. ​Autant d’usages qui pourront être rendus possibles grâce aux données, dans le présent contexte c’est trouver du talent plus rapidement et plus efficacement. “ Le présent travail s’inscrit dans le cadre de la réalisation d’un projet de fin d’étude des étudiants en Licence appliquée en technologies de l’information de l'institut des hautes études commerciales ​de Carthage. Il est réalisé au sein de l’équipe de la société xTECH dans le département informatique (IT, Information Technology)​. Le présent rapport sera composé comme suit : Le premier chapitre « Cadre général du projet » est un chapitre introductif dans lequel nous effectuons une brève description de la société. Il comportera la présentation de l’organisme d’accueil, le contexte du projet , une étude de l’existant et les outils existants sur le marché accompagné d’une proposition de la solution. Ensuite, nous exposons les méthodologies et formalismes adoptés. dans Le second chapitre, l’attention sera portée sur « l’analyse et spécification des besoins» ou on vas introduire les besoins fonctionnels et techniques du système. Ensuite, on vas détailler la conception de notre système par la représentation des différents diagrammes choisis.
  • 11. Le troisième et dernier chapitre porte sur la phase de « Réalisation », où on va présenter les concepts de base et outils utilisés , c’est à dire l’environnement matériel et logiciel de notre travail, le processus de réalisation de nos sprints accompagné des capture-écran pour quelques interfaces de l’application. Nous clôturons, finalement, ce rapport par une conclusion générale dans laquelle nous évaluerons les résultats atteints et nous exposerons les perspectives du présent projet. CHP 1- Cadre Général du Projet Présentation du projet Introduction L'idée d'un projet vient généralement d'un besoin exprimé par la société. Dans ce chapitre, nous allons mettre le projet dans son contexte et nous allons indiquer les différents besoins qui ont déclenché sa mise en place. Nous allons présenter tout d'abord l'organisme d'accueil. Nous présenterons ensuite le cadre général du projet et nous décrirons son objectif. Enfin, nous nous intéresserons à l'aspect organisationnel en spécifiant la méthodologie de gestion de projet adoptée durant le stage. 1.1- Présentation de l’organisme d’accueil : xTECH en bref : Figure 1 : Logo xTECH
  • 12. xTECH est une société technologique de pointe fondée en 2016 et basée entre Berlin et Tunis, développant des applications web et des solutions cloud, offrant une architecture web personnalisée qui correspond parfaitement aux besoins de l’entreprise cliente. Elle travaille avec des sociétés internationales comme “Universal Music” et “Cambridge University”. Elle leur offre la possibilité de se concentrer sur leur entreprise tout en excellant dans ses tâches, de fournir un développement logiciel exceptionnel. Elle lie les développeurs talentueux avec des clients innovants afin de créer des solutions de haute qualité en utilisant des principes de développement web agiles. Organisation de l’entreprise : L’Entreprise se compose de deux départements principaux représentés par la figure 1.2 Département IT​ : Géré par le CTO, il est responsable de conception, développement, test et validation des applications. Département Business ​: Géré par le CEO, il est responsable du marketing, relations publiques, Talent management et comptabilité.
  • 13. Figure 2 : Organisation de xTECH ​Identification de la société : Raison sociale : « xTECH » Date de création : 2016 Forme juridique : SARL Adresse Web : http://www.xtech.guru/ Secteur d’activité : Service ​Tableau 1 : Identification de la société
  • 14. Figure 3 : Propriétaire et Clients de xTECH dans le monde Les services de xTECH : xTECH travaille avec des clients de toutes les industries. Elle crée des applications Web avec les mêmes du commerce électronique, de la gestion des parcs de véhicules, de la cybersanté, des services financiers et bien d’autres encore. 1.2- Présentation du Projet Contexte de projet : Dans le cadre de l’amélioration de l’efficacité du recrutement et pour faire face au pénurie des talents en technologies de l’information et le manque des ressources humaines compétents xTECH a commencé à adopter une stratégie de chasse de tête en identifiant les profils qui ont des certaines compétences exigés par la société puis à les contacter pour les inciter à postuler pour eux. Dans le but d’optimiser et rendre plus efficace cette
  • 15. stratégie ils nous ont attribué la mission de concevoir et développer une application web qui permet d’extraire les données des candidats potentiels visés. Description de l’existant Cette section est destinée pour la description du processus actuel effectué pour pouvoir dégager les points faibles du système. a- Le processus traditionnel de recrutement: Le processus de recrutement générale dans xTECH se présente dans le figure ci-dessous : Figure 4 : Processus de recrutement de xTECH b- L’approche de “l’Outbound Recruitment” ou le chasse des têtes : Après avoir adopté l’approche de chasse de tête, le talent management a expérimenté sur la plateforme portail d’emplois tunisienne TOUNES TA3MAL, en possédant un compte sur cette plateforme l’Entreprise aura accès à une talent pool de tous les candidats inscrit et souhaitant trouver un emploi, le Talent manager a procédé alors de trier les profils en spécifiant les compétences exigés par xTECH puis il a collecté les données manuellement dans des fichiers CSV pour les remettre ensuite dans un outil qui gère les campagnes d'emailing appelé “MailChimp”.
  • 16. Figure 5 : Profil des candidats " Tounes ta3mal" Critique de l’existant: le processus de recrutement traditionnelle n’est pas pertinent, il engendre une perte de temps et d’argent considérable pour plusieur raisons, parmi lesquelles on peut citer : ● Absence d’un talent Pipeline ​: ​Quand un poste est ouvert, il faut avoir du talent à portée de main, c’est là qu’un pipeline de talents se crée. Bâtir un réservoir de talents et favoriser les relations avec les talents, même lorsque on n’embauche pas, est essentiel pour pourvoir les postes avec les meilleurs talents. ● les Délais :​ Les projets importants ont des délais à respecter, et le recrutement est tout aussi important. Sans échéance et calendrier stricts, On peut être à la recherche sans fin du candidat idéal. ● Trop de candidats à interviewer : ​Le processus d'entrevue est de plus en plus long. Limiter le nombre de candidats interviewé peut réduire considérablement le temps alloué., c’est pour cela qu’il faut bien identifier les qualifications dont on a besoin avant d’examiner les candidatures. Après avoir adopté la technique de chasse de tête, La procédure de l’Entreprise de trouver des profils adéquats ,les attirer et communiquer avec eux présente plusieurs limites :
  • 17. ● L’extraction des données manuellement d'où une perte de temps considérable à cause des tâches répétitives. ● Les profils sont affichés aléatoirement ● Mauvaise gestion des données. ● Gestion manuelle des campagnes de mailing qui engendre une perte de et qui n’apporte pas beaucoup d’engagement. Solution proposée: Pour optimiser le processus de recrutement et attirer d'avantages des talents, on a proposé de mettre en place une application qui va permettre de trouver les meilleurs profils selon les compétences exigées. Le but principal de cette application en premier lieu est de permettre à l’utilisateur qui est le “Talent Manager” d’extraire les données des profils adéquats aux critères choisis au préalable pour un poste donné. Sachant que les sources auprès desquelles on va extraire les profils sont indiqués lors de l’implémentation de l'application. un filtrage des données s’applique également lors de l’extraction, où on va extraire seulement les données ​que nous n'avons pas déjà. En deuxième lieu, l’application donne la possibilité de trier les profils selon un critère donné tel que (Année d’expérience). elle facilite aussi le stockage en permettant d’exporter tout les données vers un Google Sheet. Pour nous permettre enfin à exploiter ces données des candidats d’une manière automatique. En effet, pour communiquer avec eux , on a opté pour automatiser l’utilisation de l’outil d'emailing “MailChimp”. Cet outil qui était utilisé avant d’une manière traditionnelle (manuellement). 1.3- Comparaison avec un outil existant. a- import io : Après une étude de benchmark on a trouvé l’outil import.io qui rassemble le plus à notre application. C'est un outil qui permet d’extraire de gros volumes de données pour les entreprises ​avec des frais.
  • 18. Le tableau ci dessous est un tableau comparatif entre un outil existant “Import io” et notre application xTRACT : L’outil Import io Notre outil xTRACT - Extraction de toutes les données disponibles sans critères de recherche. - Extraction des données sans donner la possibilité de les trier. - Possibilité d’extraction des données via n’importe quel source de web. - Extraction sélective selon des critères de recherche choisis par l’utilisateur. - Possibilité de trier les données extraites selon des critères de préférences définis à l’avance. - Sources choisis et définis au préalable. Tableau 2 : Comparaison de notre application et un outil existant Figure 6 : L'outil "Import io" On a opté à développer notre propre outil d’extraction avec des sources spécifiques que nous avons choisi après une étude sur plusieurs plateformes de portail d’emploi. Notre application est gratuite qui permet l'extraction des meilleurs profils adéquats aux exigences des postes. Elle donne la possibilité
  • 19. à l’utilisateur de sélectionner les critères de recherche et d’ajouter touts les compétences exigés avant de faire l’extraction. La plateforme est paramétrée pour filtrer les données. C’est à dire, elle n’extrait que les nouveaux profils inscrits qui ne se trouvent pas dans la base des données. Enfin , elle permet de stocker les profils trouvés dans une base des données pour pouvoir les exploiter. 1.3- Méthode de développement: La finalisation du projet dans les délais de livraison est le souci majeur de chaque équipe de développement d'un logiciel. L'un des problèmes les plus fréquemment affrontés lors de la construction du logiciel est la mauvaise spécification et le changement brusque des besoins. Cela peut influencer non seulement l'équipe de développement en créant un environnement de stress, mais aussi le temps consacré pour la réalisation du projet et donc des délais de livraison dépassées. An d'éviter ces situations critiques, nous adoptons la méthodologie agile pour la gestion de notre projet. Méthode Agile Les problématiques précédemment mentionnées ont poussé les informaticiens à réinventer les méthodes de gestion de projet et de conception en introduisant ce qu'on appelle les méthodes agiles. c'est une approche incrémentale et itérative, menée dans un esprit collaboratif, avec juste ce qu'il faut de formalisme. Elle peut générer un produit de bonne qualité tout en prenant en compte l'évolution des besoins des clients. En suivant cette approche, le logiciel est conçu dans son ensemble et peut être construit étape par étape. Méthode adoptée : Parmi les méthodes agiles, nous citons Scrum que nous avons choisi pour les raisons suivantes :
  • 20. - Entièrement développée et testée pour de courtes itérations. - Simplicité des processus. - Augmentation de la productivité. • Elle permet d'adapter le logiciel crée suivant l'évolution du projet. WORKFLOW : Description: Figure 7 : Workflow de xTRACT Conclusion Tout au long de ce chapitre, nous avons présenté l'organisme d'accueil de xTECH et ses services. Par ailleurs, nous avons pu dégager le contexte général du projet, Ainsi que la différence entre notre solution et les outils existants. Enfin, nous avons présenté le choix de la méthodologie de
  • 21. développement. Le chapitre suivant sera consacré à l’ Analyse et spécification des besoin. CHP 2: Analyse et spécification des besoin Introduction Ce chapitre présente l'étude des besoins qui constitue une phase d'analyse du projet. Nous allons présenter tout d'abord, l'équipe Scrum de ce projet ainsi que les acteurs principaux de l'application. Puis, nous allons identifier les besoins fonctionnels et non fonctionnels de l'application. Ensuite, nous allons présenter le backlog de produit et la planification des sprints. Enfin, nous allons clôturer le chapitre par la modélisation du diagramme de cas d'utilisation global du projet ainsi que les prototypes des interfaces de notre application . 2.1 Les rôles Scrum L'équipe Scrum est constituée d'un propriétaire de produit, de l'équipe de développement et d'un Scrum Master. Le modèle d'équipe Scrum est conçu pour optimiser la flexibilité, la créativité et la productivité. Nous allons tout d'abord tenter de cerner notre équipe Scrum : - Product Owner (PO) : Hamza BEN ARBIA, son rôle est d'assurer la présentation des caractéristiques et des fonctionnalités du produit à développer et l’approbation du produit à livrer. - Scrum Master (SM) : Ali Othmani, qui assure globalement la supervision de l'avancement du projet et des activités de l'équipe. Il assure également l'organisation des réunions et la bonne application de la méthode AGILE. - L'équipe de développement : Composée de Mayssa EL BEJI et Siwar JBELI. Elle comporte une ou plusieurs personnes qui se chargent de la réalisation des histoires utilisateurs et l’élaboration des sprints.
  • 22. Figure 8 : Cycle de vie Scrum La vie d'un projet Scrum est rythmée par un ensemble de réunions clairement définies et strictement limitées dans le temps. - Planification du Sprint : Réunion où l'équipe de développement sélectionne les éléments prioritaires du « Product Backlog ». C’est une liste ordonnancée des exigences fonctionnelles et non fonctionnelles du projet et que l’équipe pense pouvoir la réaliser au cours du sprint en accord avec Hamza Ben Arbia le «Product Owner ». - Revue de Sprint : Réunion qui a lieu à la fin du sprint, où l'équipe de développement présente les fonctionnalités terminées au cours du sprint et recueille les feedbacks du « Product Owner » et l’utilisateur final de l’application. C’est aussi le moment d'anticiper les prochains sprints et d'ajuster au besoin leurs planification. - Rétrospective de Sprint : Elle se fait après la revue de sprint. C’est l'occasion d'améliorer la productivité, qualité, efficacité et les conditions de travail à la lueur du "vécu" sur le sprint écoulé (principe d'amélioration continue).
  • 23. - Mêlée quotidienne : Il s'agit d'une réunion de synchronisation de l'équipe de développement appelée aussi "stand up meeting" , qui se fait debout en 15 minutes maximum. Au cours de laquelle chacun répond à 3 questions : «Qu'est-ce que j'ai terminé depuis la dernière mêlée ? Qu'est-ce que j'aurai terminé d'ici la prochaine mêlée ? Quels obstacles me retardent ? ». 2.2 Identification des acteurs Un acteur est une personne ou un autre système informatique qui attend un ou plusieurs services offerts par l'application. Il interagit avec le système par envoi ou réception des messages. Par conséquent, nous identifions comme acteur : - Talent Manager : L’acteur principal qui utilise l’application. Cette personne peut définir les critères de recherche qui sont les compétences exigés et faire l’extraction des données. Comme il peut exporter ces données et les stocker dans un Sheet. - Développeur : Celui qui est responsable des différents paramétrages de l'application et qui va indiquer lors de la création de la de l’application les sources auprès desquelles on va extraire les profils. 2.3 Identification des besoins L'identification des besoins consiste à traduire les objectifs du projet en un ensemble de fonctionnalités ciblées par l'outil à réaliser. Suite à l'étude faite avec l'équipe de xTECH, nous avons dégagé l'ensemble des exigences que notre application doit satisfaire. Ces exigences sont divisées en besoins fonctionnels et besoins non fonctionnels. L’application doit satisfaire les besoins fonctionnels traités par le système et les besoins non fonctionnels qui contribuent à une meilleure qualité de la solution obtenue.
  • 24. - Besoins fonctionnels : L'objectif principal de l'application est : - Extraire automatiquement les profils qui répondent aux critères définis et donc aux exigences des postes. - Trier les données des profils selon un critère définie à l’avance. - Transférer les données trouvées dans une base de données “Google-Sheet” ,et auprès de laquelle on importe les données pour envoyer des emails automatiques par l’outil d’e-mailing “Mailchimp”. - Besoins non fonctionnels : Ce sont les exigences qui ne concernent pas spécifiquement le comportement du système mais identifient plutôt ses contraintes internes et externes. Les principaux besoins non fonctionnels de notre application se résument comme suit : - L’ergonomie des interfaces : Notre application offre une interface simple à utiliser pour tous types d’utilisateurs. On peut facilement choisir nos critères de recherche et en un simple clique extraire toutes les données ou les exporter. - La sécurité : L’application garantie à l’utilisateur l’intégrité et la confidentialité de ses données. Tout ça , en exigeant l’authentification avant d’exécuter toute opération. - La maintenance : Le code est clair et bien commenté pour permettre d'éventuelles évolutions, améliorations ou corrections. 2.4 Pilotage du projet avec SCRUM Après l’identification des besoins fonctionnels, nous devons les découper en users stories ou histoires utilisateurs , et les classifier en tenons compte de deux facteurs principaux qui sont la priorité et la complexité.
  • 25. - La complexité : Elle sert à estimer l’effort nécessaire à une équipe pour implémenter une fonctionnalité. Trois éléments doivent être pris en compte pour l’estimation : l’effort pour le développement, la complexité et le risque. - La priorité : Le « Product Owner » classifie les users stories dans le « backlog de produit » par ordre de priorité selon leur importance pour le bon déroulement du projet. - Backlog produit : Le « backlog du produit » constitue l’artefact le plus important de Scrum. C’est l’ensemble de caractéristiques fonctionnelles et fondamentales pour le produit souhaité , appelées des User stories ou fonctionnalités. Le tableau suivant résume le backlog de produit de notre projet : ID Thème Fonctionnalité (User Story) Priorité Complexit é 1 Extraction des profils. En tant que talent manager, je veux extraire des profils automatiquement auprès des sites données. Must 13 2 Filtrer les données importées. En tant que talent manager, je veux filtrer les données extraites, pour éviter la duplication. Must 8 3 Visualiser les données extraites. En tant que Talent Manager, je veux récupérer la liste de tous les profils adéquats. Should 3 4 Stocker les profils. En tant que talent manager, je veux exporter les données extraites et les stocker dans un Must 10
  • 26. Sheet. 5 Exploitation des données. En tant que talent manager, je veux exploiter les données par la mise en place d’une campagne d’e-mailing. Should 5 6 Recevoir des notifications des nouveaux profils. En tant que talent manager, je veux recevoir des notifications quand il y a des nouveaux profils adéquats. Could 7 7 Trier les données extraites . En tant que talent manager, je veux que les profils soient trier selon un critère donnée. Could 4 Tableau 3 : Le backlog de produit du projet 2.5 Planification des sprints Les « User stories » précédemment définis dans le « Backlog du produit » sont triés par ordre de priorité. Le but étant d'implémenter en premier ce qui a le plus de valeur. Le travail sera planifié selon des sprints que nous avons définis et chacun dure environ une ou deux semaines. Après une réunion avec l'équipe, on a identifié quatre sprints. Dans ce tableau , nous présentons la planification des sprints : - Sprint 0 a commencé du 4/02 au 28/02 pour les formations et l’installation du socle technique. Sprint Nom du Sprint Période Sprint 1 Extraction des profils des sites sources. 4/3 - /3
  • 27. Sprint 2 Tri des données Sprint 3 Stockage des données Sprint 4 Exploitation des données 22/5 - 30/5 Tableau 4 : Planification des sprints Cette planification est préliminaire, les Backlogs de sprints seront définis au fur et à mesure à la fin de chaque sprint et ceci dépendra de la capacité de l'équipe par lesquelles on entend la rapidité de l'équipe dans la finalisation des tâches. 2.5 Modélisation des besoins fonctionnels - Diagramme de cas d'utilisation global : La figure ci-dessous décrit les différentes fonctionnalités de chaque acteur. Figure 9 : Diagramme de cas d'utilisation global
  • 28. Prototypage des interfaces de l’application : Dans le cadre d’un projet informatique, la création de maquettes peut apporter divers avantages. D’abord, dans le cas d’une prestation de service, ça permet de montrer au client une vision de la future application. Ensuite, la mise au point de l’interface peut se faire en collaboration avec le client, ce qui donne la certitude de répondre à ses attentes. Nous présentons ci-dessous quelques maquettes prévisionnelles des interfaces à réaliser. Ceci est l’aperçu global de l’application, après l’authentification l’utilisateur procède à choisir les critères de recherche des profils dans la bar de recherche à droite . ● Prototypage de l'interface d'accueil de l’application : Conclusion Ce chapitre nous a permis de bien délimiter le projet et d'avoir une vision plus claire du sujet. Nous avons décrit l’équipe , les acteurs ,les besoins et le Backlog produit. Par la suite, il nous a permis de planifier et organiser le temps consacré à la réalisation du projet en identifiant les sprints. Puis, nous avons décrit le cas d'utilisation global , ainsi que les prototypes des interfaces de notre application. Dans le chapitre suivant, nous allons entamer la phase de la réalisation du projet. CHP 3 Réalisation de projet Introduction Nous consacrons ce chapitre à la réalisation du projet et la mise en place de l'architecture ainsi que l'environnement de travail matériel et logiciel vont être
  • 29. expliqué par la suite. Ensuite, nous exposerons la réalisation des sprints réparties chacun en cinq modules. Afin de mieux comprendre le système à développer, une démarche de modélisation structurée s’impose. Nous avons choisi d’utiliser la méthodologie UML pour décrire les différents aspects de notre système, ce qui permettra de faciliter et structurer le développement. 3.2 Etude et réalisation du Sprint 1 : Extraire des profils 1-Analyse : Le but de ce sprint est de​ rechercher et extraire un ou plusieurs utilisateurs en fonction du/des critère(s) spécifiés , et d’avoir la liste de tous les profils adéquats dans un tableau. Le Talent Manager peut effectuer un filtre global sur tous les profils scrappés. Sourcing : L’identification des sources des données permettant de répondre aux besoins de l’entreprise est un défi. ​Le Talent Manager de xTECH a fait recours à différentes plateformes et portail d’emploi. Après avoir étudié ces plateformes, nous avons choisi le site portail d’emploi tunisien JOBI.tn et la plateforme internationale GitHub comme sources d’extraction où nous allons trouver les meilleures profils et les professionnels dans le domaine monde IT. JOBI.tn​ : C’est une plateforme de recrutement en ligne tunisienne fondée en 2016, son talent pool est riche en compétences dans les technologies de l’information et présente des données diversifiés. En possédant un compte entreprise sur cette plateforme l’utilisateur aura accès à tous les utilisateurs souhaitant trouver un emploi à travers l’espace CVTHÈQUE.
  • 30. Les données sont par contre encryptés, il faut avoir un crédit de points achetés pour les décrypter. Figure 18 : L’espace CVTHEQUE de JOBI.tn Les profils dans notre premier source JOBI.tn se présente comme suit : Figure 19 : Présentation des profils sur JOBI.tn GitHub : Notre deuxième source ​est un service web d'hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git.
  • 31. Le site ​assure un contrôle d'accès et des fonctionnalités destinées à la collaboration comme (​la possibilité de suivre des personnes ou des projets, ​le suivi des bugs, les demandes de fonctionnalités et un wiki pour chaque projet). Nous avons choisi ce site car il est riche des profils intéressants dans le domaine de technologies de l’information. En avril 2016, GitHub a annoncé avoir dépassé les “14 millions d'utilisateurs” et plus de “35 millions de dépôts de projets” classé comme le plus grand hébergeur de code source au monde. Figure 20 : Présentation des profils sur GitHub On a présenté la structure des données à extraire et leur signification dans le modèle de compétence ci-dessous : Figure 21 : Modèle des compétences
  • 32. 2- Backlog du sprint : Ci-dessous, le tableau du backlog de sprint 1 : Extraction des profils ID User Story (​Fonctionnalité) Tâches Estimation Priorité 1 Définir les critère de recherche -​Ajouter la barre dans laquelle on va spécifier les critères de recherche des profils. -Sélectionner un/des critères parmis les critères suggérés. -Ajouter d’autres critères de recherches 10 1 2 Récupérer les résultats des profils scrappés - Ajouter un bouton pour extraire les données des profils de JOBI.tn et un autre pour Github. -Authentification à JOBI.tn avant de pouvoir faire l'extraction. - Afficher les résultats scrappés de JOBI.tn et de Github , chacun dans un tableau à part. - Ajouter un bouton pour switcher d’un tableau à l’autre. 7 1 3 Filtrer les données scrappées -Extraire la date de création des profils -Comparer les dates de création des profils scrappés (extraction que lorsque la date de création > date des profils existants). 5 2 Tableau 5 : Backlog sprint 1 3. Spécification fonctionnelle a. Diagramme de cas d’utilisation Sprint 1 : La figure ci-dessous illustre le raffinement du cas d'utilisation “Extraire des profils”.
  • 33. Figure 22 : Diagramme de cas d'utilisation "Extraction des profils” b. Description Ce tableau illustre la description textuelle du cas d'utilisation Extraction des profils. Titre Extraire des profils Résumé Chercher des profils à partir des sites de recrutement selon des critères pour un poste donné. Acteur Talent Manager Pré-condition 1-L’application est lancée avec succès et les critères sont définis. 2-Connexion à JOBI.tn. 3-Acheter des points dans le site JOBI.tn. Post-condition L'opération choisie de l’extraction a été exécutée avec succès. Scénario Nominal 1. L’utilisateur accède à la page d’accueil de l’application. 2. L’utilisateur spécifie les compétences exigés pour un profil. 3. L’utilisateur clique sur le bouton ‘Chercher’ de JOBI.tn et/ou GitHub. 3.a Il faut s’authentifier pour pouvoir extraire des données de Jobi. 4. Le système affiche la liste de tous les profils correspondant aux critères choisis. 5. l’utilisateur peut trier les profils trouvés selon l’un des éléments de tableau.
  • 34. MException 1-L’utilisateur ne spécifie aucun critère de recherche. 3-1 Le système affiche un message d’erreur ”aucun critère de recherche trouvé”. 3-2-Reprise de l’étape 2 du scénario nominal. 2-L’utilisateur a saisi un login ou mot de passe erronées lors de l'authentification. 2-1 Le système affiche un message d’erreur "Votre login ou mot de passe sont erronées" . 2-2-Reprise de l’étape 3 du scénario nominal. Le tableau 6 : Description textuelle du cas d'utilisation ​Extraction des profils​. c. Diagramme de séquence système Figure 23 : Diagramme de séquence "E​xtraction des profils” 4. Conception A- Diagramme de classe de sprint 1
  • 35. Figure 24 : Diagramme de classe" Extraction des profils” 5. Réalisation On va maintenant présenter le travail réalisé dans notre premier sprint : Comme illustré dans la figure ci-dessous, l’utilisateur sélectionne un ou plusieurs critères de recherche, les ajouter et puis il clique sur le bouton « Rechercher ». Figure 25 : Définir les critères de recherche La deuxième figure illustre le pop-up de chargement qui s’affiche pour charger les données des profils après la spécification des critères.
  • 36. Après avoir cliqué sur le bouton « Rechercher », les résultats de la recherche s’affichent dans le tableau : On va montrer maintenant les résultats de la recherche par les différents critères : Cette figure illustre les résultats de recherche : Figure 26 : Résultat de recherche des profils 6. Test et validation A la fin de chaque sprint, nous effectuons des tests unitaires pour s’assurer du bon fonctionnement du cas d’utilisation. Pour cela, une comparaison est faite pour comparer les comportements attendu et des résultats obtenus. Avant la fin de chaque Sprint nous avons testé les fonctionnalités du module. Ensuite, nous avons validé toutes les fonctionnalités avec le Product Owner. Pour ce fait, nous avons élaboré dans le tableau un ensemble de cas de scénario de tests fonctionnels relatifs au sprint 1. Cas de test Démarche Comportement attendu Résultat Définir les critères de recherche - Suggérer des critères de recherche par défaut. -Ajouter la barre dans laquelle on ajoute des nouveaux critères. -Créer le bouton “Ajouter”. -Spécifier des critères de recherche soit par choisir: parmis les suggestions ou en ajoutant des nouveaux critères dans la barre de recherche. Conforme
  • 37. Définir le bouton Chercher -Indiquer les sites sources dans le code de développement. -Ajouter un bouton “Chercher” . -Extraire tous les profils adéquats aux critères définis. Conforme Filtrage des données scrappées. -Définir la date de création des profils comme un critère de filtrage. -Extraire que les données des profils qui ne se trouvent pas déjà dans la BDD. Conforme Tableau 7 : Tests fonctionnels du sprint 1 Après avoir vérifié le bon fonctionnement du code et des fonctionnalités, le premier livrable a été testé par le Product Owner. Ainsi, il nous a transmis la liste des améliorations, des fonctionnalités à ajouter et des bugs à signaler. 7. Problèmes rencontrés Au cours de la réalisation de ce sprint nous avons rencontré quelques problèmes, à savoir : -La structure des deux sites source auprès desquelles on fait l’extraction n’est pas la même. Ainsi, les données disponibles pour un site, n’ont pas disponibles pour l’autre. -Difficulté de trier les profils, vu l'absence d’un critère commun entre les deux sites qui permet de classifier les résultats d’une façon pertinente. Etude et réalisation du Sprint 2 : Tri et classement des profils 1-Analyse :
  • 38. Le but de ce deuxième sprint est de​ trier les profils trouvés p​our permettre à l’utilisateur d’identifier facilement les meilleurs talents. Une fois que la recherche à été effectuée, le Talent Manager a la possibilité d’afficher les profils classés selon un critère de préférence ​prédéfini pour chaque site. En effet, les deux sites sources n’ont pas la même structure ni les mêmes données disponibles. Donc, nous avons choisi un critère de tri pour chacun des sites. ​ Après l'étude effectué, on a trouvé que le critère le plus pertinent pour le site JOBI est le nombre d’années d'expérience et le “nombre de contribution” pour le deuxième source github. 2-Backlog du sprint : Ci-dessous, le tableau du backlog de sprint 2 : Tri des profils ID User Story(Fonctionnalité) Tâches Estimation Priorité 1 trier les profils de Jobi -Ajouter une commande qui permet de classer les profils selon les années d'expérience. 2 trier les profils de Github -Ajouter une commande qui permet de classer les profils selon le nombre de contributions. Tableau 8 : Backlog sprint 2 3. Spécification fonctionnelle a. Diagramme de cas d’utilisation Sprint 2 : La figure suivante illustre le raffinement du cas d'utilisation “Tri des profils”.
  • 39. Figure 26 : Diagramme de cas d'utilisation “tri des profils” b-Description Ce tableau illustre la description textuelle du cas d’utilisation “Tri des profils” Titre Tri des profils Résumé Classer les profils extraits selon un critère de préférence pour identifier les meilleurs talent. Acteur Talent Manager Pré-condition Les profils sont scrappés des deux sites et afficher dans deux tableaux différents. Post-condition Le système affiche la liste des profils classés dans le tableau selon le critère de préférence choisi. Scénario Nominal 1-Le Talent manager choisit le critère de tri des profils 2-Le système affiche les profils classés selon le critère choisi dans un tableau. Scénario Exception 1-L’utilisateur n’a pas fait l’extraction des profils. 1-1 Reprise de l’étape 3 du scénario nominal 1. Tableau 9: Description textuelle de cas d'utilisation “tri des profils” c. Diagramme de séquence détaillé :
  • 40. Figure 27 : Diagramme de séquence détaillé “Tri des profils” 4 Conception A-Diagramme de classe de sprint 2 Figure 28 : Diagramme de classe “Tri des profils” 5 Réalisation
  • 41. On va maintenant présenter le travail réalisé dans ce sprint : Comme illustré dans la figure ci-dessous, les profils sont classées en ordre descendant selon le nombre d’années d'expérience pour les profils venant de Jobi.tn et selon le nombre de contributions pour les profils venant de Github. Dans les deux figures suivantes on va présenter les deux tableaux contenant les profils triés : figure Figure 29 : Les profils triés de JOBI.tn figure Figure 30 : Les profils triés de GitHub 6 Test et validation Nous avons élaboré dans le tableau suivant un ensemble de cas de scénario de tests fonctionnels relatifs au sprint 2. Cas de test Démarche Comportement attendu Résultat Trier les profils extraits auprès de JOBI.tn -Création d’une commande qui permet de classer les profils selon le nombre d’années d’expérience -Les profils sont affichés classés dans un ordre descendant selon le nombre d’années d'expérience. Conforme Trier les profils extraits auprès de Github -Création d’une commande qui permet de classer les profils selon le nombre de contribution -Les profils sont affichés classés dans un ordre descendant selon le nombre de contribution Conforme Tableau 10 : test fonctionnel de sprint 2
  • 42. III. Étude et réalisation du Sprint 3 : Exportation et Stockage des données ​1 Analyse Le but de ce sprint est de donner la possibilité à l’utilisateur d’exporter les données après l’extraction. Le stockage des données demeure une étape primordial dans chaque stratégie data-driven pour pouvoir bien les exploiter dans une étape suivante. Le product owner nous a proposé l’outil google sheets pour la facilité de son utilisation. Ainsi, qu'il permet un ​stockage sécurisé et économique dans le cloud. 2 -Backlog du sprint : ID User Story (Fonctionnalité) Tâches Estimation Priorité 1 S’authentifier avec google - Ajouter un bouton qui permet de se connecter à un compte google un ​stockage sécurisé et économique dans le cloud. 4 1 2 Exporter les données vers un google sheet Ajouter un bouton pour exporter les données dans un google sheet. 5 1 3 Récupérer les résultats dans un google sheet - Afficher les résultats exportés dans un google sheet 7 1 Tableau 11 : Backlog sprint 3 3 Spécification fonctionnelle a-Diagramme de cas d'utilisation du Sprint 3
  • 43. Figure 29 : Diagramme de cas d'utilisation “Stockage des profils” b- Description Ce tableau va illustrer la description textuelle de cas d'utilisation “Stockage des profils” Titre Stocker les données Résumé Stocker les résultats de recherche dans une base de données Acteur Talent Manager Pré-condition L’opération d’extraction et bien exécutée. Post-condition L’opération d’exportation est bien exécutée et les profils sont stockés dans Google-Sheet. Scénario Nominal 1-Le Talent manager choisit d’exporter les résultats trouvés à Google-Sheet. 2-Le Talent Manager doit s’authentifier à Google-Sheet. 3-Le système va envoyer les profils trouvés à une Sheet définie. 4-Le talent Manager peut consulter Google-Sheet et voir toutes les données. Exception 1-L’utilisateur n’a pas fait l’extraction des profils. 1-1 Reprise de l’étape 3 du scénario nominal 1 de la première sprint. 2-L’utilisateur a saisi un login ou mot de passe erronées lors de l'authentification à Google Sheet . 2-1 Le système affiche un message d’erreur "Votre login ou mot
  • 44. de passe sont erronées" . 2-2-Reprise de l’étape 2 du scénario nominal de la deuxième sprint. Tableau 12 : Description textuelle de cas d’utilisation “stockage des profils” ​c-Diagramme de séquence détaillé Figure 30 : Diagramme de séquence détaillé “stockage des profils” 4 Conception a-Diagramme de classe du Sprint 3
  • 45. Figure 31 : Diagramme de classe “stockage des profils” 5 Réalisation Pour présenter notre travail réalisé dans ce sprint, la figure ci-dessous nous montre les profils extraits stockés dans notre base des données Google Sheet. Figure 32 : Interface des profils stockés dans Google Sheet 6 Test et validation Nous avons élaboré dans le tableau un ensemble de cas de scénario de tests fonctionnels relatifs au sprint 3. Cas de test Démarche Comportement attendu Résultat Exportation des profils extraits auprès de JOBI.tn -Création d’une bouton qui permet d’exporter les profils de JOBI et leur données vers un google sheet -Les profils de JOBI.tn sont bien exportés et stockés dans un Google sheet Conforme
  • 46. Exportation des profils extraits auprès de Github -Création d’une bouton qui permet d’exporter les profils de JOBI et leur données vers un google sheet. -Les profils de GitHub sont bien exportés et stockés dans un Google sheet Conforme Tableau 13 : tests fonctionnels de sprint 3 Etude et réalisation du Sprint 4 : Automatisation de l’outil d’emailing Le but de ce sprint est d’automatiser l’emailing et donc permettre au Talent Manager d’exploiter les données extraites pour contacter les profils. En effet, le but ultime de l’extraction des données des profils n’est pas seulement d’identifier les meilleurs talents mais aussi de bien communiquer avec eux en vue de les inciter à nous rejoindre. L’outil d'emailing MailChimp, qui était utilisé d’une manière traditionnelle en important les profils manuellement, nous allons automatiser son utilisation. importer la base de donnée des profils pour les contacter. Une campagne d'emailing automatique sera envoyée selon les données paramétrées. Enfin, le processus se termine par un entretien physique de “soft skills” pour ceux qui ont réussis le test de code. 2- Backlog du sprint : Ci-dessous, le tableau du backlog de sprint : ID User Story Tâches Estimation Priorité 1 Importer la base de données de profils. 1-se connecter à MailChimp. 2-Créer une liste des abonnées. 3-Importer les données extraites. 5 1
  • 47. 2 Créer une campagne d’emailing. 1-Créer une campagne d’emailing automatique. 2-Choisir une liste des abonnées. 3 2 3 Envoyer les emails 1-Concevoir les emails. 2-Paramétrer l’envoi des emails. 3-Enregistrer et envoyer les emails. 7 3 Tableau 14 : Backlog sprint 4 3. Spécification fonctionnelle a. Diagramme de cas d’utilisation Sprint 4 : La figure 3.2 illustre le raffinement du cas d'utilisation “Exploitation des données”. Figure 3.2: cas d'utilisation du sprint 1 “​Exploitation des données​” Figure 32 : Diagramme de cas d’utilisation “Exploitation des données” b. Description Le tableau suivant illustre la description textuelle du cas d'utilisation Exploitation des données. Titre Exploitation des données
  • 48. Résumé Contacter les profils par des emails à partir de l’outil d’emailing MailChimp pour les recruter. Acteur Talent Manager Pré-condition 1-Se connecter à un compte MailChimp. 2-Avoir une base de données des profils à contacter. Post-condition L’opération a été exécutée avec succès et les mails sont envoyés. Scénario Nominal 1- L’utilisateur se connecte à un compte MailChimp. 2- Créer des listes d’abonnés sur Mailchimp. 3- L’utilisateur importe la base de données des profils. 4-Créer la première campagne d’emails ( newsletter). 5- Paramétrer l’envoi des emails. 6- L’utilisateur choisit la liste des profils à contacter. 7- L’utilisateur va concevoir une série des emails automatiques 8- L’utilisateur clique sur le bouton “Commencer”, pour commencer l’envoi. 9- Analyser les résultats de votre campagne d’emails. Exception 1-L’utilisateur ne peut pas importer la base de données 2-2-Reprise de l’étape 2 du scénario nominal. Le tableau 15 : Description textuelle du cas d'utilisation ​Extraction des profils​. c. Diagramme de séquence détaillé
  • 49. Figure 33 : Diagramme de séquence sprint 4 4. Conception a- Diagramme de classe du sprint 4 Figure 34 : Diagramme de classe sprint 4 3. Réalisation On va maintenant présenter le travail réalisé dans notre quatrième sprint :
  • 50. Comme illustré dans la figure ci-dessous, l’utilisateur se connecte à MailChimp : Figure 35 : Interface d’authentification à MailChimp Ces deux figures illustrent la création d’une liste et l’importation des données des profils auprès d’un fichier “Google-Sheet”. Figure 36 : Interface d’ajouter contact
  • 51. Figure 37 : Interface d’importation des contacts via Google-Sheet Enfin, Mailchimp nous donne la possibilité d’automatiser nos campagnes pour avoir plus d’engagement et des meilleurs résultats comme il est présenté ci dessous: Figure 38 : Interface de création des emails automatiques
  • 52. Figure 39 : Interface d’analyse des résultats de la campagne d’e-mailing 4. Test et validation Pour ce fait, nous avons élaboré dans le tableau un ensemble de cas de scénario de tests fonctionnels relatifs au sprint 4. Cas de test Démarche Comportement attendu Résultat Importer des contacts -Créer une une liste d’abonnées. -Importer des profils d’abonnées. -Choisir le mode d'importation des profils . -Importation des profils enregistrés dans le Sheet. Conforme Envoyer les emails automatiquement . -Créer une campagne d’emailing. -Choisir une liste des contacts. -Les emails sont envoyés selon les paramètres définis à l’avance . Conforme
  • 53. -Concevoir les emails. Figure 16 : test fonctionnel de sprint 4 Conclusion Au cours de ce sprint, nous avons exploité les données des profils scrappées par le premier sprint. Nous avons fini par envoyer des emails à tous les candidats de la base de données. Le sprint a été présenté dans le cadre d'une réunion de dernier sprint de projet. Cette réunion était à la présence de l'équipe du projet et quelques responsable de département RH. Conclusion générale Le présent document est une présentation du travail réalisé durant notre stage de fin d'études au sein de l'entreprise xTECH. Le projet a pour objectif de réaliser une application d’extraction des données pour améliorer le recrutement et faciliter les tâches pour le “Talent Manager” dans le département RH de xTECH. Cet outil est multiplateforme et présente un niveau de portabilité élevé, vu la facilité de son utilisation dans différents environnements de travail. Nous avons commencé par comprendre les exigences de l’utilisateur et le contexte général du projet. Puis, nous avons préparé un planning de travail en respectant les priorités des besoins déjà fixés avec l'équipe Scrum. Malgré les contraintes de temps et les difficultés techniques que nous avons rencontré qui se résument principalement dans la compréhension du sujet et dans la complexité de la structure des sites auprès desquelles est faite l’extraction des données, nous avons réussi à réaliser presque la totalité de notre application “xTRACT”.
  • 54. Le travail dans le cadre de ce PFE, était d'une importance considérable dans la mesure où il nous a servi comme portail vers le monde professionnel et la vie d'entreprise. De point de vue technique, il nous a permis de mettre en oeuvre les acquis théoriques que nous avons appris tout au long de notre cursus universitaire et de les enrichir et approfondire des connaissances dans le domaine de gestion de ressources humaines. Outre, ce projet était aussi enrichissant pour les bonnes pratiques de la gestion de projet vu que nous avons eu l'opportunité d'organiser son déroulement dès le début. Finalement, notre travail ne s'arrête pas à ce niveau. En effet, parmi les fonctionnalités que nous pouvons envisager pour “xTECH” : - “l’outbound Recruiting” c’est la notion de chasse des têtes, chercher les meilleurs profils à recruter. - Automatiser le processus de recrutement par l’outil MailChimp en facilitant le contact avec les candidats par l’envoi automatique des emails. Bibliographie