Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
R AP P OR T DE P R OJ E T DE FI N DE T UDE S
P OUR L OB T E NTI ON DU DI P L OME DE L A L I CE NCE
Filire:InformatiqueApplique
RalisationduneapplicationWebCRM
Entreprise: DIS COVERY INFORMATIQUE
M. Elfaleh Tar ek
2009 - 2010
A mestrschersparents.
A meschersfrreset surs.
A mesgrands-parents.
A chaquecousinset cousines.
A mesmeilleursamis.
J eddiecetravail, mafamillequi
ma toujours soutenu, et men vers
lavant.
A machremre, masur, et
moncher fianc
Remerciement
Cest un plaisir et un moment trs agrable de rendre hommage et de
formuler des remerciements aux personnes qui, dune manire ou dune autre,
ont apport leur soutien et contribu finaliser ce travail.
Nous tenons, tout dabord, exprimer nos sincres gratitudes envers
notre encadreur Mr Aymen BOUCHHIMA, pour les conseils quil na cesss de
nous prodiguer, sa comprhension et la confiance quil a toujours tmoigne
notre gard.
Introduction
Chapitre
Prsentation
I.
Gnrale .................................................................
I.1. Introduction ....................................................................................
I.2. Prsentation de lorganisme daccueil ............................................
I.2.1.Les outils techniques utiliss par Discovery ...............................
I.2.2.Organigramme ...........................................................................
I.3. Concepts Customer Relationship Management (Gestionnaires de R
I.3.1.Dfinition dun CRM ...................................................................
I.3.2.Pourquoi utiliser une solution CRM .............................................
I.3.3.Fonctionnalits d'un CRM ...........................................................
I.4. Prsentation du sujet ......................................................................
I.5. Conclusion ......................................................................................
Chapitre
Analyse
II.
des besoins et spcifications ..........................................
II.1.Introduction ....................................................................................
II.2.Objectif ...........................................................................................
II.3.Etude de lexistant ..........................................................................
II.3.1.
Description de lexistant informatique .......................................
II.4.Spcification des exigences ............................................................
II.4.1.
Liste des exigences ....................................................................
II.4.2.
Scnarios et des cas dutilisation module recrutement ........
II.4.3.
Scnarios et des cas dutilisation module espace employes
II.5.Conclusion ......................................................................................
Chapitre
Ralisation
V.
...................................................................................
V.1.Introduction ....................................................................................
V.2.Environnement de travail ...............................................................
V.2.1.
Environnement matriel ............................................................
V.2.2.
Environnement logiciel ..............................................................
V.3.Choix techniques ............................................................................
V.3.1.
Choix du langage .......................................................................
V.3.2.
Choix de la technologie de scurit ...........................................
V.4.Gestion du projet ............................................................................
V.5.Phase dimplmentation .................................................................
V.5.1.
Contraintes ................................................................................
V.5.2.
La programmation avec Sugar et MVC .......................................
V.6.Phase de tests et validation ............................................................
V.7.Conclusion ......................................................................................
Bibliographie ...........................................................................................
Netographie. ...........................................................................................
Introduction
Comme nous vivons dans un monde o le march informatique se dveloppe trs rapidement
et les technologies se perfectionnent, le besoin dinformatiser les tches internes dans les
entreprises ne cesse daccrotre. Et ce, pour faciliter les manipulations et gagner du temps. Les
CRM (Customer Relationship Management) se trouvent au cur mme de cette volution, qui
modifie de manire significative, la gestion des systmes dinformation et la conception des
applications.
Dans cette perspective, et dans le cadre de notre projet de fin dtudes, ralis au sein
de lentreprise Discovery Informatique, nous allons nous intresser au
dveloppement dune
RalisationduneapplicationWebCRM
2009 - 2010
ChapitrePrsentation
I.
Gnrale
I.1. Introduction
Dans ce chapitre, nous commenons par la prsentation de lorganisme accueillant. Puis, nous
entamons les diffrentes activits ainsi que le cadre de travail qui englobe galement
lenvironnement matriel et logiciel du projet.
Cest une
I.2.1. Organigramme
La figure 1 prsente lorganigramme de la socit. Nous sommes intervenus au niveau de
lunit Nouvelles technologies dont la vocation est dintgrer les nouvelles technologies
au sein de la solution informatique propose par la socit.
RalisationduneapplicationWebCRM
2009 - 2010
RalisationduneapplicationWebCRM
2009 - 2010
Dans un premier temps, nous allons dfinir ce qu'est un CRM. Puis, nous verrons en
dtail les principales fonctionnalits de cet outil. Enfin, nous observerons les diffrents
acteurs du march des CRM.
ou encore d'e-mails
afin de fidliser au
Tous les employs peuvent y accder en mme temps, quelque soit leurs emplacements.
Pas de problme en cas de panne matriel d'un ou de plusieurs ordinateurs (logiciel externe).
RalisationduneapplicationWebCRM
2009 - 2010
RalisationduneapplicationWebCRM
2009 - 2010
I.5. Conclusion
Dans ce chapitre nous avons prsent lorganisme daccueil ainsi que ses diffrentes activits
et nous avons galement prsent le sujet de notre projet. Notre sujet sera expliqu plus en
dtaille dans le chapitre suivant, en exposant les besoins et les objectifs atteindre.
RalisationduneapplicationWebCRM
2009 - 2010
ChapitreAnalyse
II.
des besoins
et spcifications
II.1. Introduction
Dans ce chapitre, nous prsentons les motivations qui sont derrires
lide de ce projet.
Nous dtaillons la liste exhaustive des fonctionnalits attendues par lapplication raliser
et les objectifs viss par ce projet. Nous prsentons la fin quelques diagrammes des cas
dutilisation pour la modlisation des fonctionnalits de notre application.
II.2. Objectif
Notre projet consiste tendre une solution CRM existante est accessible travers le
portail web de Discovery en ajoutant deux modules .
Notre tche consiste trouver une solution pour rendre facile et rapide une recherche
spcifique dun profil de candidat, pour un ventuel recrutement. Nous allons donc grer des
candidatures des diffrentes ressources, en fonction de leurs comptences de leurs diplmes
de leurs certifications et de leur disponibilit.
Ces deux solutions de gestion de candidature au recrutement seront intgres
lensemble de fonctionnalits quoffre SUGAR CRM.
Dautre part la deuxime solution (Gestion des employes) se compose de deux
modules Fiche intervention et Timesheet qui rpondent la demande mise par la direction
gnrale (Mr. Elfaleh Tarek), de disposer dun module lui permettant :
De garder une trace lectronique des projets ou des tches effectues par les intervenants
en automatisant ces actions et en consultant ltat davancement de chaque tche faite chez les
clients.
De facilit le travaille de chaque chef de projet pour grer leurs quipes pour voir les
RalisationduneapplicationWebCRM
2009 - 2010
UNE COMPETENCE
SAVOIR
Connaissances
SAVOIR FAIRE
Techniques et
expriences
SAVOIR TRE
Comportements
observables
RalisationduneapplicationWebCRM
2009 - 2010
Cest pourquoi le facteur humain reprsente une ressource importante pour la survie et
le suivi des projets de lentreprise.
Pour chaque mission, Discovery a besoin de profils spcifiques de candidats. Un
responsable de recrutement affecte une mission un des employs en se basant sur sa
connaissance des comptences et expriences de ses employs.
Cette opration seffectue oralement mais si la recherche nest pas aboutissant ou la
personne correspondante au profil recherch nest pas disponible, Discovery lance des appels
doffre, fait de la publicit et emploie dautres moyens afin de dceler le bon profil des
candidats.
Avant on utilisait des simples offres demploi dans la presse et en envoyait par postes
les candidatures et donc c tait apaisant de rechercher dans tous ces documents le profil quon
recherche exactement.
Et si les activits, les projets, les clients ont bien volu de plus le nombre des
personnelles aussi est devenue trs important pareillement pour la gestion des tches des
employs, avant on travaillait sur des papiers sur lesquels chaque employes crit en dtaille
tout le travail quil a ralis mais cela ntait pas pratique vu quon ne pouvait pas savoir son
avancement en temps rel.
Cette opration seffectue chaque jour oralement ou dune manire tlphonique et ce
processus a besoins dtre automatiser pour faciliter les tches de tous les acteurs de ce
processus.
Le chef de projet : doit proposer une solution et affecter un consultant technique qui soit
disponible
RalisationduneapplicationWebCRM
2009 - 2010
externes lentreprise.
Gestion de lhistorique de tous les CV pour garder des traces de ces derniers.
Gagner en terme dallocation de ressource, dans le cas par exemple o lon affecte
la
bonne mission chaque profil, chacun effectuera au mieux sa tche et apportera plus de
solutions intressantes son projet et donc lEntreprise.
RalisationduneapplicationWebCRM
2009 - 2010
Discovery, il est charg de grer les ressources humaines. Son rle consiste affecter chaque
nouvelle candidature ou un employ de Discovery au poste qui le convient.
Candidat internaute : cest lun des acteurs qui va interroger le systme chaque
10
RalisationduneapplicationWebCRM
Cest le premier diagramme du
2009 - 2010
modle UML, celui o sassure
la relation entre
systme, dune classe ou dun composant tel quun utilisateur extrieur le voit. Il scinde la
fonctionnalit du systme en units cohrentes, les cas dutilisation, ay
acteurs.
Les cas dutilisation permettent dexprimer le besoin des utilisateurs dun systme, ils
constituent donc une vision oriente besoins utilisateur contrairement une vision
informatique.
employs.
11
RalisationduneapplicationWebCRM
2009 - 2010
Spcification : Lobjectif de ce cas dutilisation est que lors dun ventuel recrutement, le
recruteur demande au systme de vrifier si une ressource disponible existe dans la base ;
dans le cas contraire, il lance un appel doffre pour dposer de nouvelles candidatur es.
12
RalisationduneapplicationWebCRM
2009 - 2010
13
RalisationduneapplicationWebCRM
2009 - 2010
Acteur
Gestionnaire de candidats
Pr-condition
Post-condition
Gestion de recrutement
Acteur
Gestionnaire de candidats
Pr-condition
Post-condition
Acteur
Client
Pr-condition
Identification
Post-condition
14
RalisationduneapplicationWebCRM
2009 - 2010
Gestion de saisie de cv
Acteur
Candidat
Pr-condition
Post-condition
Chef de projet : cest un membre de Discovery , son rle est de grer son groupe et le
Service Technique : Cest un service destin pour les clien ts, son rle est denregistrer
les rclamations.
fonctionnel, son rle est de rparer et intgrer des logiciels chez les clients.
15
RalisationduneapplicationWebCRM
2009 - 2010
ils identifient
16
RalisationduneapplicationWebCRM
2009 - 2010
comptant .
17
RalisationduneapplicationWebCRM
2009 - 2010
18
RalisationduneapplicationWebCRM
2009 - 2010
Acteur
Chef de projet
Pr-condition
Post-condition
19
RalisationduneapplicationWebCRM
2009 - 2010
Acteur
Employe
Pr-condition
Post-condition
Acteur
Pr-condition
Le client a eu un problme.
Post-condition
II.5. Conclusion
Nous avons tudi lenvironnement de notre projet et analys lexistant et les besoins de la
socit tout au long de ce deuxime chapitre danalyse des besoins et spcification.
Dans le chapitre suivant, nous allons prsenter la conception de notre application, en
prsentant quelques diagrammes illustrant les diffrentes fonctionnalits de notre application.
20
RalisationduneapplicationWebCRM
2009 - 2010
Chapitre III.
Conception
III.1. Introduction
La phase de conception est considre parmi les phases les plus importantes dans le cycle de
vie d'un logiciel. Il s'agit en premier lieu de prsenter une modlisation par tape de la
conception de notre application et dcrire finalement l'architecture de la base de donnes.
III.2. Conception
Les diagrammes UML de modlisation dynamique nous montrent l'volution du systme
et les interactions entre objets. Nous allons prsenter comme exemple de cette modlisation
un ensemble de diagramme dactivit et diagramme de squence ensuite on va dcrir
: il montre
21
RalisationduneapplicationWebCRM
2009 - 2010
Attribut : chaque attribut dune classe est le mme pour chaque instance de cette classe.
Mthodes : elle dfinit le comportement dune classe elle -mme, et non le comportement
22
RalisationduneapplicationWebCRM
o
2009 - 2010
Candidat : classe entit qui reprsente les diffrents candidats qui postulent leurs cv, les
Diplme et formation : classe entit qui reprsente les diffrents diplmes et/ou
formations qua suivi chaque candidat. Cette classe regroupe donc les diffrents diplmes des
diffrents candidats.
o
Etablissement : classe entit, contient tous les tablissements relis aux diffrents
diplmes.
o
Exprience : classe entit qui reprsente les diffrentes expriences de chaque candidat.
chaque comptence.
o
Comptence : classe entit qui reprsente les diffrentes comptences que peut avoir un
candidat.
o
comptence du candidat.
o
Poste : classe entit qui reprsente les diffrents postes auxquels pourrait postuler un
Mission : classe entit qui reprsente les diffrentes missions qui peuvent tre affectes
diffrents candidats.
o
Projet : classe entit qui regroupe les diffrentes missions par projet ; cette classe
Planning Mission : classe entit qui reprsente lemploi du temps de chaque candidat
Certification : classe entit qui reprsente les diffrentes certifications que pourrait avoir
Elment certification : classe entit qui reprsente les diffrents lments de certification
23
RalisationduneapplicationWebCRM
2009 - 2010
24
RalisationduneapplicationWebCRM
2009 - 2010
25
RalisationduneapplicationWebCRM
2009 - 2010
Diagramme dactivit
Figure 15. Diagramme dactivit relatif au cas dutilisation Gestion de la demande de recr
26
RalisationduneapplicationWebCRM
2009 - 2010
Diagramme de squence
27
RalisationduneapplicationWebCRM
2009 - 2010
Diagramme dactivit
28
RalisationduneapplicationWebCRM
2009 - 2010
Diagramme de squence
Timesheet : classe entit, c'est--dire les feuilles de temps, en premier lieu ils
reprsentent une dure de travail ralise par lemploye une date donne.
o
Employe : classe entit hrite de la classe user, le timsheet traduit une relation avec la
classe Employe pour grer ses tches et son emplois de temps de chaque semaine. Cette
classe reprsente une liste des employs.
o
Fiche intervention : classe entit reprsente le travail fait par lemploy chez le client.
29
RalisationduneapplicationWebCRM
o
2009 - 2010
Chef Projet : classe entit hrite de la classe user et qui a un statut diffrent, elle prsente
Projet : classe entit qui reprsente une liste des projets des clients.
Service Technique : classe entit qui reprsente un utilisateur qui a le droit de recevoir
Rclamation : classe entit qui reprsente une liste des rclamations des clients.
systme.
30
RalisationduneapplicationWebCRM
2009 - 2010
31
RalisationduneapplicationWebCRM
2009 - 2010
#id_client, #id_tache_projet).
o
date_fin_projet).
o
Libell
Type de donnes
Identificateur du client
Numro Auto
Nom_client
Nom du client
Texte
Prenom_client
Prnom du client
Texte
Numero_telephone_client
Numrique
Adresse_client
Adresse du client
Texte
32
RalisationduneapplicationWebCRM
2009 - 2010
Libell
Type de donnes
Socit du client
Texte
Email_client,
Email du client
Texte
Piece_identite_client
Numrique
Identificateur de lutilisateur
Numro Auto
Login_user
Login de lutilisateur
Texte
Prenom_user
Prnom de lutilisateur
Texte
Fonction_user
Fonction de lutilisateur
Texte
Email_user
Email de lutilisateur
Texte
Telephone_user
Tlphone de lutilisateur
Numrique
Adresse_user
Adresse de lutilisateur
Texte
Sup_de_user
Superviseur de lutilisateur
Texte
Departement_user
Dpartement de lutilisateur
Texte
Etat_user
Etat de lutilisateur
Numrique
Statue_user
Statue de lutilisateur
Texte
Code_facture,
Code de la facture
Numrique
Date_inter
Date de lintervention
Date
Duree_inter
Dure de lintervention
Numrique
Objet_inter
Objet de lintervention
Numrique
Logiciel_rp
Logiciel rpar
Texte
Identificateur de la rclamation
Numro Auto
Etat_reclamation
Etat de la rclamation
Texte
Date_rclamation
Date de la rclamation
Date
Identificateur du projet
Numro Auto
Name_projet
Nom du projet
Texte
Statue_projet
Statue du projet
Texte
Priorite_projet
Priorit du projet
Texte
Date_debut_projet
Date
33
RalisationduneapplicationWebCRM
2009 - 2010
Libell
Type de donnes
Date_fin_proje
Date
Numro Auto
Nom_tache
Nom de la tche
Texte
Description_tache,
Description de la tache
Texte
Heure_debut_tache
Numrique
Heure_fin_tache
Numrique
Duree_tache
Dure de la tache
Numrique
Percent_complete_ tache
Numrique
Priorite_tache
Texte
Numro Auto
Duree_trav
Dure du travaille
Texte
Id_semaine
Identificateur de la semaine
Numro Auto
Journe de la semaine
Date
III.4. Conclusion
Au cours de ce chapitre, nous avons conu notre base de donnes ainsi que les diffrents
composants de notre systme.
Maintenant, notre application est prte tre code. Mais tout le prochain chapitre sera la
mise en vidence des technologies utilises dans notre application.
34
RalisationduneapplicationWebCRM
2009 - 2010
Chapitre IV.
Etat de lart
IV.1. Introduction
Le choix des technologies utilises dans une application agit sans doute sur la qualit du
travail ralis. Le succs ou lchec dun travail quelconque dpend, en partie, du choix des
technologies employes. Nous allons exposer dans ce chapitre la technologie envisageable et
relative au dveloppement de notre application, cest le
prsenter des petites comparaisons entre le SugarCRM et les autres diteurs de CRM.
SugarCRM est une solution CRM Open Source. Il comprend des modules de gestion des
Forces de Vente (SFA: Sales Force Automation), d'automatisation du marketing (EMA), de
reporting, et de gestion du service client. Il apporte des solutions de Gestion de la Relation
Cliente adaptes aux besoins des entreprises. SugarCRM permet une dmarche prcise et une
approche personnalise pour chaque client. A partir de lanalyse des besoins de lentreprise,
enjeux et contraintes, nous pouvons le personnaliser et ajouter de nouveaux modules. Voici la
conception des applications dans SugarCRM :
35
RalisationduneapplicationWebCRM
2009 - 2010
de
lURL voulu et qui devra lui ouvrir la fentre dun module donn; dans ce cas il sera rediri g
vers cette page pour sauthentifier en premier lieu. Une fois identifi, lutilisateur pourra
naviguer librement parmi les modules et les fonctionnalits du logiciel.
36
RalisationduneapplicationWebCRM
Dans ce qui suit, nous
2009 - 2010
SugarCRM :
Figure 21. Module Builder fait partie de la console Developer Tools de l'administration d
37
RalisationduneapplicationWebCRM
2009 - 2010
Les figures suivantes nous montrent des aperus de cration grce au gnrateur Module
Builder :
Figure 22. Lutilisateur commence par crer et nommer le nouveau package des modules pe
Une fois le nouveau package cr et enregistr, un cran est prsent l'utilisateur pour
crer un module personnalis. Lors de la slection de licne "Nouveau modu
le", un cran
apparait, indiquant six modles dobjets diffrents. Pour chaque module, nous pouvons crer,
en plus des champs par dfaut, des champs personnaliss, nous pouvons aussi les publier
grce lEdit View.
modules. Plusieurs autres manipulations divers et varies sont possibles avec le logiciel
SugarCRM, (Vous trouverez de plus amples dtails dans la partie Annexe A).
38
RalisationduneapplicationWebCRM
2009 - 2010
custom : Magasins de mise niveau de scurit des personnalisations telles que les
classe de base qui est SugarBean qui contrle l'application logique par dfaut pour tous les
objets des entreprises de sugar.
o
bibliothques que Sugar utilise dans le cadre de ses oprations. Plus particulirement, dans ce
rpertoire, on trouve le fichier utils.php qui contient toutes les fonctions utilitaires les plus
largement utilises.
o
Metadata : Ce fichier contient les relations mtadonnes de tous les liens des relations
modules : Ce dossier contient tous les modules du systme. Custom modules installs par
39
RalisationduneapplicationWebCRM
2009 - 2010
Concepts cls :
Tels sont les principaux dossiers, de classes et de l'application des concepts qui composent la
plate-forme de Sugar.
o
Controller : Il dirige toutes les demandes de pages. Il peut tre relu plusieurs fois, dans
chaque module pour modifier le comportement par dfaut. Il s'appuie sur des paramtres de point
d'entre, pour servir la page approprie.
o
Views : Un jeu de l'interface utilisateur, des actions gres par le contrleur, les vues par
langue a son propre ensemble de chanes d'affichage qui est la base de la langue de localisation.
o
l'utilisateur dans l'interface utilisateur. On peut crer et modifier des listes droulantes
(dropdown lists) et leurs valeurs via l'interface utilisateur dans l'outil d'admin Studio.
Fichiers :
SugarBean classe de base utilise par tous les objets de l'entit ou d'un module. Tout module qui
lit, crit ou affiche des donnes va tendre cette classe. Le SugarBean joue le levage lourd pour
les donnes d'interactions, des relations de manutention, etc.
o
variables qui dfinissent quels modules seront actifs et utilisables dans la demande.
Points d'entre :
Le point d'entre principal de l'interface utilisateur pour Sugar se fait par index.php situ la
racine du dossier Sugar (root sugar folder). Il y a trois paramtres principaux pour la plupart
des appels l'intrieur du Sugar, qui sont :
module : Le module est accessible dans le cadre de l'appel.
action : L'action prendre par l'application dans le module.
record (dossier): Le dossier est accessible l'id .
40
RalisationduneapplicationWebCRM
2009 - 2010
Model-View-Controller . Il
sagit d une mthode de conception qui cre une sparation entre le logique mtier ou de
traitement business-logic et la logique de prsentation display logic .
o
Model : C'est l'objet de donnes construit par l'entreprise ou par l'application logique
ncessaire pour la prsenter linterface utilisateur. Pour SugarCRM, il est reprsent par la
SugarBean et toutes les sous-classes de la SugarBean.
o
View : Il s'agit de la couche d'affichage, qui est responsable de rendre les donnes du
Controller : C'est la couche qui gre les utilisateurs des vnements tels que Enregistrer
Le traitement d'une demande d'un client se droule selon les tapes suivantes :
1. Le client fait une demande au contrleur. Ce contrleur voit passer toutes les demandes des
clients. C'est la porte d'entre de l'application. C'est le C de MVC.
2. Le contrleur traite cette demande. Pour ce faire, il peut avoir besoin de l'aide de la couche
mtier, ce qu'on appelle le modle M dans la structure MVC.
41
RalisationduneapplicationWebCRM
2009 - 2010
la partie Vue est prise en charge par un script (PHP ou autre langage) gnrant du HTML
la partie contrleur est reprsente par un script PHP qui dclenche des traitements lis
aux services (Use Case) auquel il est attach (Un contrleur par Use Case)
la partie Modle est reprsente par des scripts PHP grant les accs au SGBDR. Cela
peut tre par exemple des classes Mtier qui implmentent des fonctions vers un SGBDR.
Au fait il
nexiste pas de meilleure solution CRM mais plutt il existe la meilleure solution qui rpond
nos besoins. Tout dabord on dfinit les solutions CRM les plus rpondues sur le march. On
commence avec les solutions payantes :
Microsoft Dynamic On Demand : elle ne fonctionne que sur Internet Explorer et en plus
elle est un peu cher par rapport au x autres solutions cest partir de 42 par mois, en
plus,
Centric CRM : cest une solution Open Source qui est utilis par plus 500 compagnies
Tilliolive : elle aussi cest une solution Open Source mais elle nest pas ergonomique
cest dire les utilisateurs simple qui ne sy connaissent pa s vraiment en informatique auront
des difficults lutiliser et vu que nos utilisateurs finaux sont des personnes ordinaires donc
cette solution ne sera pas optimale pour nous.
42
RalisationduneapplicationWebCRM
2009 - 2010
Sugar CRM : cest la solution la plus utilise et la plus rpondue. Sugar a t tlcharg
plus de 3 millions de fois et plus de 12000 socits lutilisent, en plus il est crit en php et est
compatible avec la base de donnes Mysql.
Sugar profite dune plate -forme largement dploye et facilement accessible. En plus
nous avons choisi Sugar pour la facilit dintgrations de modules qui rpondent nos besoins
IV.4. Conclusion
Ce chapitre nous a permis dtudier la technologie SugarCRM pour llaboration de notre
systme. En outre la comparaison entre ces CRM nous a permis de dgager celle la plus
adquate pour la ralisation de notre projet.
43
RalisationduneapplicationWebCRM
2009 - 2010
ChapitreRalisation
V.
V.1. Introduction
La phase de ralisation est une tape trs importante dans le cycle de vie de notre application.
Cette phase permet de concrtiser notre projet par le dveloppement des interfaces et par des
ralisations concrtes des fonctionnalits du systme. Pou raliser notre application nous
avons en recourt plusieurs outils de dveloppement.
Dans ce chapitre, nous prsentons en premier lieu lenvironnement de travail. En seco nd
lieu, nous prsentant le choix techniques que nous avons adopt pour le dveloppement de
notre application.
Le premier ordinateur :
Le deuxime ordinateur :
44
RalisationduneapplicationWebCRM
2009 - 2010
Dreamweaver :
Dreamweaver fut l'un des premiers diteurs HTML. Ces innovations le propulsrent
rapidement comme l'un des principaux diteurs de site web, aussi bien utilisable par le
nophyte que par le professionnel.
Dreamweaver offre deux modes de conception par son menu affichage. L'utilisateur
peut choisir entre un mode cration permettant d'effectuer la mise en page directement l'aide
d'outils simples, comparables un logiciel de traitement de texte (insertion de tableau,
d'image, etc.) et un autre mode de code. Il est galement possible d'afficher et d'diter
directement le code (HTML ou autre) qui compose la page.
Rational Rose :
Pour la conception et la modlisation des diagrammes UML nous avons utilis le
logiciel Rational Rose. Comme tous les produit Rational Rose, il fournit un langage de
modlisation commun votre quipe et permet d'acclrer la cration de logiciels de qualit.
IBM Rational Rose Enterprise est l'un des produits les plus complets de la gamme
Rational Rose. Tous les produits Rational Rose prennent en charge le langage UML (Unified
Modeling Language), mais ils se diffrencient de par les technologies d'implmentation qu'ils
prennent en charge.
PHP :
45
RalisationduneapplicationWebCRM
2009 - 2010
HTML :
HTML (Hyper Text Markup Language / langage hypertexte) est le langage dans lequel sont
crites les pages du web. Un site web est constitu dun ou plusieurs documents HTML,
appeles aussi pages.
Pour se dplacer dune page lautre
lintermdiaire
d'hyperliens. Pour ajouter des objets graphiques on utilise le HTML dautre part p
our tester
des pages web html en local, il suffit d'ouvrir le fichier dans un navigateur.
Le HTML nest pas un langage de programmation comme le C+. Les langages
dynamiques comme PHP et Javascript vont d' ailleurs gnrer des pages HTML statiques.
Java script :
Javascript est un langage de programmation de scripts principalement utilis pour les pages
web interactives comme les pages HTML. Javascript est excut sur l'ordinateur de
l'internaute par le navigateur lui-mme. C'est une extension du langage HTML qui est incluse
dans le code.
Ce langage est un langage de programmation qui permet d'apporter des amliorations au
langage HTML en permettant d'excuter des commandes. Ce code est directement crit dans
la page HTML, c'est un langage peu volu qui ne permet aucune confidentialit au niveau
des codes.
Dans notre application on a cod de plusieurs fonctions javascript par exemple : pour
linteraction des pages en envoyant des variables dans ladresse URL pour filtrer la rsultat de
la requte on utilisant la mthode POST ou GET.
Ajax :
46
RalisationduneapplicationWebCRM
2009 - 2010
puis nous avons pass la partie conception qui a dur quatre semaines. Vers la fin de cette
dernire nous avons commenc la plus grande partie (plus que dix semaines) cest la partie de
programmation et la ralisatio n. Pour la partie du rapport nous lavons cre au fur et a mesure
de lavancement du travail (les deux dernires mois).
47
RalisationduneapplicationWebCRM
2009 - 2010
Le tableau qui illustre la rpartition du travail tout au long de ce projet est prsent dans
la figure ci-dessous:
bien entendu, dvelopper dautres classes et fonctions dans cette plateforme, on va donc
ajouter du code et le rpartir pas pas sur les diffrentes couches du modle.
48
RalisationduneapplicationWebCRM
La figure suivante reprsente
2009 - 2010
module.
49
RalisationduneapplicationWebCRM
2009 - 2010
La Vue : Il s'agit de la couche d'affichage qui est charg de rendre les donnes du modle
l'utilisateur final.
Le Contrleur : C'est la couche qui gre les vnements d'utilisateurs tels que
Enregistrer et dtermine les actions prendre la logique mtier pour construire le modle,
et cest pour rendre les donnes l'utilisateur final.
Le Model :
Les objets Sugar tendent la notion de sous classement un peu plus loin et vous permet de
sous classer la vardefs. Cela comprend l'hritage de champs, les relations, les index et les
fichiers de langue, mais la diffrence sous classement on nest pas limit un hritage
unique. S'il y avait un objet de Sugar pour les champs qui sont utiliss dans chaque module
comme id, supprim, date_modified, etc.
On peut avoir notre module hrit de deux objets : de base de Sugar et de la personne
objet du Sugar. Maintenant, disons que le type de base possde un champ "nom" de longueur
10. Et Candidat a un champ "nom" avec une longueur de 20. Si on hrite de la base d'abord,
puis de lentreprise sur le terrain sera de longueur 20. Maintenant disons quon a dfini un
50
RalisationduneapplicationWebCRM
2009 - 2010
champ "nom" dans notre module qui est de longueur 60. Notre module sera toujours la
priorit sur toutes les valeurs fournies par des objets du Sugar.
Actuellement, il existe 4 types de Sugarobject modles :
Contacts Personne (Contacts, Prospects, Leads)
Issue (Bugs, Cases)
Socit (Accounts)
De base (General Fields)
Les interfaces SugarObject et les modles SugarObject sont trs semblables les uns aux
autres, mais la principale distinction est que les modles ont une classe de base, on peut les
sous classer alors que ce nest pas
Le Contrleur :
La version 5.0 introduit un concept de contrleur en cascade. Il ya un contrleur
principal appel SugarController qui gre toutes les actions de base d'un module d'dition et
des vues de dtail pour larchivage d'un enregistrement. Chaque module peut remplacer ce
SugarController en ajoutant un fichier controller.php dans son rpertoire. Ce fichier devrait
tendre le SugarController et la convention de nommage pour les classes.
A lintrieur du
51
RalisationduneapplicationWebCRM
2009 - 2010
dveloppeur peut dfinir une URL de redirection, faire un peu de post traitement enregistrer
ou fixer un point de vue diffrent.
On peut galement ajouter un contrleur personnalis qui devrait tendre le contrleur
modules si le contrleur de ce type existe dj. Par exemple, si on souhaite tendre le
contrleur un module qui vient avec sortie SugarCRM 5.0, on doit vrifier si ce module a
dj un contrleur de module spcifique fourni avec le produit. Si oui, on peut tendre partir
de cette classe de contrleur sinon on tend de la classe SugarController. Dans les deux cas,
on doit placer le fichier contrleur personnalis classe custom / modules / <MyModule> /
Controller.php au lieu du rpertoire du module. Cela rend notre personnalisation forte. Par
exemple, si une requte arrive pour detailview c'est ainsi que le contrleur se chargera de cette
demande.
Sil n'est pas trouv, vrifier la mthode action_ <MyAction> dans le contrleur.
Sil n'est pas trouv, rapport d'erreur "L'action n'est pas dfini
On ce qui concerne le module Timesheet on a eu recourt plusieurs instance de
contrleur de base de Sugar comme pour la scurit on a fait appel scurit.php cest grce
ce contrleur que toute connestion sur le serveur sugar se fait en toute scurit et que chaque
utilisateur a des droits bien dfinis.
rpondent nos besoins tels que timesheet.php pour enregistrer les projets et les tches de
chaque employ, aussi pour pouvoir consulter son avancement et le temps qui passe sur
chaque projet.
Aussi pour le module recrutement on a utilis la mme procdure on a utilis basic
search pour faire une recherche basique dun candidat cest dire selon le nom seulement et
52
RalisationduneapplicationWebCRM
2009 - 2010
aussi Advanced search pour faire une recherche avanc selon le nom, crer par et le mail. En
ce qui concerne les contrleurs quon a ajout on a rajout des mthodes de recherche pour les
candidats selon le diplme les certifications les comptences, etc.
View :
Les vues sont pour la manipulation d'affichage des informations dans le navigateur. Elles ne
sont pas seulement limites des donnes HTML. Comme avec les contrleurs il ya une
classe par dfaut appel SugarView qui met en uvre un grand nombre de la logique de base
pour des vues telles que la manipulation des en-ttes et pieds de page.
En tant que dveloppeur, si on veut crer une vue personnalise quon place une vue.
<view_name>. Fichier php dans une vue de sous-rpertoire dans le module. Si un sousrpertoire vues n'existe pas, on doit en crer un. Dans le fichier, on doit crer une classe
nomme: <Module>. Par exemple, pour un affichage de liste dans des candidats du module
recrutement de la classe serait ContactsViewList. Il faut notez que la premire lettre de
chaque mot est en majuscule et toutes les autres lettres sont minuscules.
Principalement au niveau de laffichage on a eu recourt pour des classes qui sont par
dfaut dans Sugar tel que :
Listviewdefs (taille de laffichage taille des tableaux les valeurs par dfaut)
Editviewdefs (il faudrait avoir au moins un champ non vide afin de pouvoir enregistrer
un candidat)
53
RalisationduneapplicationWebCRM
2009 - 2010
Dans cette partie on va prsenter une liste des modules de test, scnarios de test et le
rsultat obtenu partir du tableau suivant :
Tableau 2. Liste des tests pour valider notre application
Module
Connexion lapplication
Connexion la BD
Scnarios de test
Rsultat obtenu
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Excution correcte
Insertion au BD
Excution correcte
V.7. Conclusion
Dans ce chapitre nous avons prsent en dtails le dveloppement de notre systme.
Nous avons commenc par prsenter lenvironnement matriel et logiciel, les choix
techniques et les outils de travail sur lesquels se base notre application.
De plus, nous avons expos lorganigramme chronologique du droulement de notre
travail et enfin nous avons conclu par les scnarios de test et de validation de lapplication.
54
RalisationduneapplicationWebCRM
2009 - 2010
Chapitre VI.
Interface de lapplication
VI.1. Introduction
Comme toute application, notre application doit tre facile utiliser et comprhensive par tout
type de cible. Dans ce qui suit, nous prsentons quelques interfaces pour faire expliquer les
principales fonctionnalits des diffrents modules de notre projet.
55
RalisationduneapplicationWebCRM
2009 - 2010
Et dans la figure suivante on va faire une recherche selon les comptences comme
exemple.
Mysql .
56
RalisationduneapplicationWebCRM
2009 - 2010
57
RalisationduneapplicationWebCRM
2009 - 2010
Dautre part voici linterface dajout dun candidat, le candidat doit remplir ces attributs
avec des sous listes de comptences, diplme, exprience, etc. Dans notre exemple on a un
popup qui prsente une liste de diplmes. Cette interface permet pour chaque candidat de
tlcharger son CV et voir lhistorique de ces CV.
58
RalisationduneapplicationWebCRM
Voici linterface de
2009 - 2010
Cette interface est une copie identique da la version papier de la fiche dintervention,
lemploye aprs chaque intervention il remplit ce formulaire pour tre valider par
ladministration.
VI.3. Conclusion
Dans ce chapitre nous avons prsent les principales interfaces de notre application et nous
avons galement expos les diffrentes tapes suivre par lutilisateur, et il est noter que ce
travail nous a pos quelques problmes mais enfin nous sommes contents, dans ce travail,
darriver raliser les principaux modules en rpondan
59
RalisationduneapplicationWebCRM
2009 - 2010
Conclusion Gnrale
La prennit dune socit nest pas forcment
lie son gigantisme mais avant tout son
pragmatisme et ses hommes.
Cest sur ces
nombreux clients
intgrable dans le logiciel libre SugarCRM, pour assurer la gestion de la relation avec le
client. Notre projet permet au responsable de recrutement de Discovery, de dceler en
quelques simples click les profils candidats adquats aux critres exigs pour un poste donn
ou un ventuel recrutement, aussi il peut affecter et grer son groupe
, partir de linterface
SugarCRM.
Ces nouveaux fonctionnalits de SugarCRM, dveloppe par ce projet offre ses
utilisateurs un moteur de recherche bien volu et dvelopp, la possibilit dentrer des
critres prcis de recherche, pour obtenir des rsultats cibls. Par ailleurs, il permet
dinformatiser la fiche d intervention, pour quelle soit plus pratique, scuriser, et fiable et
une interface Timesheet destines ou employes pour grer le droulement des projets et la
gestion des affectations.
60
RalisationduneapplicationWebCRM
2009 - 2010
61
RalisationduneapplicationWebCRM
2009 - 2010
Rfrences bibliographiq
Ouvrages
Auteur : Julien Maquet & Xavier Rigal
Guide Administrateur
Guide pour dbutants SugarCRM
Sugar Developer Guide Version 5.2, 2008
Cours
Auteur : Guillare Rossolini
PHP 5
Auteur : Bruno Mermet
Architecture MVC
Auteur : Fleur-Anne Blain
Quest ce quun CRM ?
Rfrences Netographiq
[1]: http://developers.sugarcrm.com/documentation.php
[2]: http://www.sugardev.net/search/node/sugarcrm
[3] : http://www.3acrm.com/logiciel-crm/solutions/sugarcrm/presentation.html
[4] : http://www.sugarforge.org/content/open-source/
[5] : http://www.commentcamrche.com
62
RalisationduneapplicationWebCRM
2009 - 2010
Tous les modules, modules de base ou les modules que vous crez et installez par l'intermdiaire
du moduleLoader, sont mis dans le dossier : <sugar root> / modules.
Gnralement les modules sont crs lorsque vous avez reprsenter un objet en sugar,
tels que le module 'Contact', et l'objet a des points de donnes qui doivent tre stocks dans la
base de donnes, ainsi quavoir une interface utilisateur pour l'utilisateur, pour crer, modifier et
supprimer des enregistrements pour l'objet.
Voyons un module Framework et comment il s'intgre dans l'ensemble de la plate-forme
de sugar. Dans la section Aperu de la Plate-forme, nous montrons un exemple d'un appel qui
serait typique d'une DetailView action l'intrieur d'un module. Il existe cinq grandes actions
pour un module :
recherche et la recherche de rsultats d'un module. partir de cet cran, l'utilisateur peut prendre
des mesures telles que la suppression, l'exportation et la mise jour de plusieurs enregistrements
de masse ou d'exercice, dans un enregistrement spcifique pour afficher et modifier les dtails.
L'utilisateur est tomb dans ce point de vue, par dfaut quand il clique sur un des onglets en haut
de l'application. Les fichiers de chaque module dcrivent le contenu de la liste de recherche et de
vue.
DetailView : A DetailView offre une lecture-seule de vue dtaille d'un objet particulier.
63
RalisationduneapplicationWebCRM
2009 - 2010
Contacts pour une Opportunity, apparatra dans SubPanels ci-dessous le projet ou les oppotunity.
<module> / mtadonnes / detailviewdefs.php : dfinit un module de la page layout DetailView.
<module> / mtadonnes / subpaneldefs.php : dfinit les SubPanels qui sont visibles dans le
cadre du module de la page DetailView.
EditView : Laction EditView est consulte chaque fois qu'un utilisateur cre un nouvel
enregistrement ou l'dition des dtails d'un existant. Il est possible d'accder directement
lEditView partir de la ListView.
<Module> / metadata / editviewdefs.php : dfinit un module de EditView partir de la page
layout.
Save : Ce contrleur de l'action est trait chaque fois que l'utilisateur clique sur le bouton
Delete : Cette action est traite chaque fois que l'utilisateur clique sur le bouton
Supprimer de la DetailView d'un enregistrement ou, comme un cas particulier, partir d'un
point figurant dans un SubPanel.
Ces actions sont conduites par le framework de l'interface utilisateur, ainsi que le
framework repose sur les fichiers mtadonnes dans les modules demands.
<Module> / metadata / listviewdefs.php dcrit la prsentation de la ListView.
<Module> / metadata / searchdefs.php formulaire de recherche dcr it les onglets au-dessus de
la ListView.
<Module> / metadata / editviewdefs.php dcrit la prsentation de la EditView.
<Module> / metadata / detailviewdefs.php dcrit la prsentation de la DetailView.
Outre les fichiers de l'action dcrite ci-dessus vous avez probablement remarqu certains
autres fichiers situs dans le dossier :
forms.php: Ce fichier contient deux fonctions pour rendre spcifiques le JavaScript, pour
validation ou autres actions que vous pouvez accomplir au cours des (edits/saves)
modifications/sauvegarde. Par dfaut, vous pouvez les laisser vides et ils retournent : return'';
menu.php: Ce fichier est responsable de l'affichage des raccourcis de menu, vous avez
l'habitude de les voir sur le ct gauche de l'cran. Par dfaut, vous avez gnralement un lien
pour crer un nouvel enregistrement, et un lien vers ListView pour la recherche.
64
RalisationduneapplicationWebCRM
2009 - 2010
Popup.php: Ce fichier agit entant que couverture (wrapper)de la classe Popup central situ
sous le dossier utils. Il est appel, si jamais un autre module veut obtenir une popup-list de
documents partir d'un module connexe. La classe Popup centrale utilise ensuite le
Popup_picker.html et le fichier <MODULE_NAME>/Mtadonnes/popupdefs.php pour rendre
la popup.
65
RalisationduneapplicationWebCRM
2009 - 2010
66
RalisationduneapplicationWebCRM
2009 - 2010
Annexe B : Le dveloppement du m
recherche des candidats
<body>
<table cellspacing="0" cellpadding="0" border="3" width="100%" class="listview">
<tbody><tr height="20">
<td nowrap="" width="100%" class="listViewThS1" scope="col">
<div align="left" width="100%" style="white-space: nowrap;">
<a class="listViewThLinkS1
"href="index.php?module=pfe_Recrutements&action=index&lvso=DESC&pfe_
Recrutements2_pfe_Recrutements_ORDER_BY=name">Name</a>
</div>
</td> </tr>
<?php
require_once ('Connections/connexion_recrutement.php');
mysql_select_db ($database_connexion_recrutement, $connexion_recrutement);
$and = '';$where = '';
$from = ' FROM pfe_candidats';
if(isset ($_POST['elem_comp']) && $_POST['elem_comp'] != "")
{
// Controle sur le champ elements de competences ///
$where .= $and."
pfe_elements_competences.id=pfe_candida_competences.pfe_elements_competences_idb AND
pfe_candidats.id=pfe_candida_competences.pfe_candidats_ida AND
pfe_elements_competences.libelle_element_competence='".$_POST['elem_comp']."'";
$from .= ", pfe_elements_competences, pfe_candida_competences";
67
RalisationduneapplicationWebCRM
2009 - 2010
68
RalisationduneapplicationWebCRM
2009 - 2010
69
RalisationduneapplicationWebCRM
2009 - 2010
$table .= '
</td>
</tr></tbody></table>
</body>
</html>
70