Académique Documents
Professionnel Documents
Culture Documents
Elaboré par
Siwar Jbeli
Mayssa El Béji
Sujet
Conception et développement d’une application web
d’extraction de données
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
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
Conclusion
Conclusion générale
Bibliographie
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.
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é :
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.
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 :
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).
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:
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.
- 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.
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.
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.
3.2
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.
Les profils dans notre premier source JOBI.tn se présente comme suit :
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
Résumé Chercher des profils à partir des sites de recrutement selon des
critères pour un poste donné.
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.
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 ».
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.
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.
2-Backlog du sprint :
Ci-dessous, le tableau du backlog de sprint 2 : Tri des profils
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”
Pré-condition Les profils sont scrappés des deux sites et afficher dans deux
tableaux différents.
4 Conception
A-Diagramme de classe de sprint 2
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.
Trier les profils -Création d’une -Les profils sont affichés Conforme
extraits auprès commande qui permet classés dans un ordre
de JOBI.tn de classer les profils descendant selon le
selon le nombre nombre d’années
d’années d’expérience d'expérience.
Trier les profils -Création d’une -Les profils sont affichés Conforme
extraits auprès commande qui permet classés dans un ordre
de Github de classer les profils descendant selon le
selon le nombre de nombre de contribution
contribution
2 -Backlog du sprint :
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”
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.
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.
6 Test et validation
Nous avons élaboré dans le tableau un ensemble de cas de scénario de tests
fonctionnels relatifs au sprint 3.
2- Backlog du sprint :
Ci-dessous, le tableau du backlog de sprint :
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”
b. Description
4. Conception
a- Diagramme de classe du 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 :
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”.
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.
Importer des -Créer une une liste -Importation des profils Conforme
contacts d’abonnées. enregistrés dans le
-Importer des profils Sheet.
d’abonnées.
-Choisir le mode
d'importation des
profils .
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.
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.
Bibliographie