Vous êtes sur la page 1sur 80

Ministre de lenseigneMent suprieur

Universit du 7 Novembre Carthage

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

Ralis par : Mlle.. Nassim Hssairi

M. Med Jihed Belhadj

Sous la direction de : M. Aymen Bouchhima


M. Elfaleh Tar ek

2009 - 2010
DEDICACES DE BELHADJ MED JIHED

A mestrschersparents.
A meschersfrreset surs.
A mesgrands-parents.
A chaquecousinset cousines.
A mesmeilleursamis.
DEDICACES DE HSSAIRI NASSIM

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.

Nos sincres remerciements et notre profond respect tout le pe


de Discovery Informatique qui nous ont accueilli, fourni le cadre nces
la ralisation de notre projet de fin dtudes, en nous faisant partager leur
grande exprience et en se rendant toujours disponibles malgr leur t

En particulier Mr Karim GHORBEL, responsable financier qui nous


donn lopportunit deffectuer ce stage.

Nous remercions aussi Mr Tarek EL FALEH, responsable activit, d


nouvelles technologies.

Nous remercions galement Mr Ghazi BOUJNAH pour son estimab


collaboration et le soutien quil nous a apport.

Nous adressons galement nos sincres remerciements lensemb


monsieurs les membres du jury.

Nous associons ces remerciements tous les enseignants qui ont


contribu notre formation ainsi qu toutes les personnes qui travaillent
lESTI.
Table des matires
Introduction

ChapitrePrsentation
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 III. Conception ..........................................................................


III.1. Introduction ..................................................................................
III.2. Conception ...................................................................................
III.2.1. Module Recrutement ........................................................
III.2.2. Module Espace Employe ..................................................
III.3. Structure de la base de donne....................................................
III.3.1. Dictionnaire des donnes de la base des donnes .................
III.4. Conclusion ...................................................................................

Chapitre IV. Etat de lart ..........................................................................


IV.1. Introduction ..................................................................................
IV.1.1. Prsentation du SugarCRM .....................................................
IV.2. Architecture de lapplication MVC ...........................................
IV.3. Comparaison entre les technologies CRM ....................................
IV.4. 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 ......................................................................................

Chapitre VI. Interface de lapplication .....................................................


VI.1. Introduction .................................................................................
VI.2. Interfaces de lapplication ............................................................
VI.3. Conclusion ...................................................................................

Conclusion Gnrale ...............................................................................

Bibliographie ...........................................................................................

Netographie. ...........................................................................................

Annexe A : Vue densemble sur les diffrents rpertoires et fichier de Su

Annexe B : Le dveloppement du moteur de recherche des candidats ..


Table des figures
Figure 1. Structure et hirarchie de lorganisation ..................................
Figure 2. Diagramme de contexte ...........................................................
Figure 3. Diagramme des cas dutilisation globale...................................
Figure 4. Diagramme des cas dutilisation Gestion de la planification p
Figure 5. Diagramme des cas dutilisation Gestion de recrutement ..
Figure 6. Diagramme des cas dutilisation Gestion de proposition dune
Figure 7. Diagramme des cas dutilisation Gestion de la saisie des cv
Figure 8. Diagramme du contexte............................................................
Figure 9. Diagramme Cas Utilisateurs globale ........................................
Figure 10. Diagramme Cas Utilisateurs Gestion daffectation des employ
Figure 11. Diagramme Cas Utilisateurs des taches employes ...............
Figure 12. Cas Utilisateur de gestion des rclamations ...........................
Figure 13. Diagramme de classes ...........................................................
Figure 14. Diagramme dactivit relatif au cas dutilisation globale de sy
Figure 15. Diagramme dactivit relatif au cas dutilisation Gestion de
Figure 16. Diagramme de squences relatif au cas dutilisation Gestion
Figure 17. Diagramme dactivit relatif au cas dutilisation Gestion de
Figure 18. Diagramme de squences relatif au cas dutilisation Gestion
Figure 19. Les lments impliqus dans le MVC de SugarCRM................
Figure 20. La navigation entre les modules ............................................
Figure 21. Module Builder fait partie de la console Developer Tools de
Figure 22. Lutilisateur commence par crer et nommer le nouveau pac
Figure 23. Les rpertoires diffrents lintrieur du SugarCRM ..............
Figure 24. Larchitecture MVC dune application web .............................
Figure 25. Interface dauthentification ....................................................
Figure 26. Chronologique de la ralisation de notre projet ......................
Figure 27. Intgr un module dans SugarCRM ........................................
Figure 28. Recherche dun candidat ........................................................
Figure 29. Slection dun lment de comptence .................................
Figure 30. Rsultat ..................................................................................
Figure 31. Vrification du rsultat............................................................
Figure 32. Ajouter un candidat ................................................................
Figure 33. Dposer les cv et voir historique cv.......................................
Figure 34. Interface remplir Timesheet ...................................................
Figure 35. Remplir fiche dintervention ...................................................
Table des Tableau
Tableau 1. Dictionnaire des donnes ..........................................................
Tableau 2. Liste des tests pour valider notre application ...........................
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
solution de gestion automatise de candidatures au recrutement et de lespace employe afin
de lintgrer dans le portail CRM de lentreprise.

Et dans ce contexte, nous allons procder comme suit :

Chapitre1 : Prsentation gnrale

Dans ce chapitre, nous prsentons lentreprise daccueil, la problmatique rsoudre et


quelques concepts lis au CRM.

Chapitre 2 : Analyse des besoins et spcifications

Ce chapitre dtaille la spcification gnrale de notre futur systme avec Identification des
diffrentes fo nctionnalits de lapplication. Il prsente notamment diffrents cas dutilisation
du projet de point de vue utilisateur.

Chapitre 3 : Conception

Ce chapitre prsente la conception gnrale et dtaille de notre futur systme.

Chapitre 4 : Etude de lart


Dans ce chapitre on met laccent sur les diffrentes technologies existantes utilises pour
llaboration du projet (pendant la ralisation).

Chapitre 5 : Ralisation

Dans ce chapitre nous prsentons les tapes suivies jusqu limplmentation finale de n otre
systme.
Chapitre 6 : Interface de lapplication

Ce chapitre prsente les principaux choix ergonomiques adopts en prsentant quelques


interfaces graphiques de lapplication.
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.

I.2. Prsentation de lorganisme daccueil


Discovery Informatique est une socit du groupe Discovery Datasoft Group . Cest une
SSII Spcialise dans lingnierie logicielle et lintgration de solutions de gestion intgres
ERP et de solutions de gestion dentreprise.

Cre en 1993, Discovery est aujourdhui leader dans son domaine dactivit et la
premire certifie ISO 9001 sur le march Maghrbin. Discovery opre galement sur le
march Europen en menant des projets en sous-traitance ou en dlgation de comptences
avec une expertise en gestion de projet et une dmarche qualit.

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.

1
RalisationduneapplicationWebCRM 2009 - 2010

Figure 1. Structure et hirarchie de lorganisation

I.3. Concepts Customer Relationship Management


(Gestionnaires de Relation Client)
Associes aux techniques de marketing modernes, les entreprises ne peuvent plus chapper
aux technologies et outils du moment savoir dans notre cas les Gestionnaires de Relation
Client (GRC) dont le terme le plus couramment utilis est CRM pour Customer Relationship
Management.

2
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.

I.3.1. Dfinition dun CRM


Un CRM, soit Customer Relationship Management ou encore GRC pour Gestion de la
Relation Client, est un outil rvolutionnaire dans le domaine du marketing. En effet, un CRM
dpasse l'approche marketing traditionnelle focalise sur la relation entre un produit/service et
son client ou encore la notorit et l'image de marque.

Il existe de nombreuses fonctionnalits offertes par le CRM telles que la gestion des
prospects, gestion des clients et de leurs achats, etc. Il est possible pour l'entreprise de
personnaliser l'offre, sous forme de publicits ou encore d'e-mails afin de fidliser au
maximum le client, d'amliorer sa satisfaction et par la mme occasion d'accrotre l'efficacit
des employs.

I.3.2. Pourquoi utiliser une solution CRM


De nombreuses socits et organismes de secteurs dactivit varis font appel des
spcialistes pour mettre en place une solution CRM.

La mise en place dune solution CRM au sein dune entreprise est donc une dmarche
rsolument stratgique base sur le dsir daugmenter la satisfaction du cli ent et avec pour
consquence la croissance de lactivit et des profits.

I.3.2.1 Avantages dun logiciel CRM en ligne


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).

Interface unifie, regroupant toutes les fonctionnalits ncessaires l'activit.

I.3.3. Fonctionnalits d'un CRM


I.3.3.1 Module Vente
Le Module Vente gre tous les aspects de la vente (relation client) :

Informations principales d'un client ou d'un prospect.

Mise jour et suivi des contrats et des affaires en cours.

3
RalisationduneapplicationWebCRM 2009 - 2010

Gestion des rfrences produits et des tarifs.

Organisation du plan de vente.

Gestion du cycle de vie d'un client.

I.3.3.2 Module Marketing

Le module Marketing analyse et gre le comportement des clients en fonction des diffrentes
mthodes de communication :

Envoi de documents (fax, e-mail, papier, sms) en masse.

Sauvegarde de documents (commercial/marketing).

Suivi et analyse des secteurs de chaque vendeur

Analyse de l'entreprise par rapport la concurrence.

Mise jour et suivi du site internet.

Gestion des appels tlphoniques.

Analyse de la transmission de l'information dans l'entreprise.

I.3.3.3 Module Gestion

Le Module Gestion gre au sein de l'entreprise l'ensemble de la documentation :

Stockage des documents.

Analyse et suivi des vnements.

Import/export d'une base de donnes informatique.

Gestion du courrier lectronique.

Agenda mutualis de l'entreprise.

Indicateurs sur le fonctionnement de l'entreprise.

I.3.3.4 Module Service

Le Module Service regroupe les services proposs par les diteurs de CRM :

Gestion des commissions vendeurs.

Gestion de plusieurs devises.

Hirarchie sur les droits d'accs.

4
RalisationduneapplicationWebCRM 2009 - 2010

Gestion du partage de l'information.

Possibilit de travailler sur PC portable.

Possibilit de travailler lorsque le systme n'est pas connect.

Association possible avec d'autres logiciels.

Modification possible des champs de donnes.

I.4. Prsentation du sujet


Notre sujet de proj et de fin dtude consiste tendre une application Web CRM base sur la
plateforme SugarCrm en ajoutant deux modules CRM.

Le premier est un module de recrutement. Il reprsente un sujet dactualit qui


commence se propager dans plusieurs entreprises informatises, on le retrouve aussi, dans
les mdia interactifs de recrutement comme keejob.com.

Le deuxime module reprsente un sujet primordial dans chaque entreprise qui est la
gestion dun groupe demployes (fiche dintervention, timesheet) et ces projets ont pour
objectif afin d augmenter la fiabilit de ce module, dassurer des gains de temps et de
contrler les intervenants de suivre les affaires en cours ainsi que la rpartition des cots et du
temps entre elles et aussi de donns un accs au client pour voir le calendrier de chaque
employe de champ.

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.

5
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 minimiser les cots, la perte de temps et assurer la disponibilit de main duvre.

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
employes disponibles dans une date fixe.

6
RalisationduneapplicationWebCRM 2009 - 2010

De garantir la scurit en limitant laccs pour chaque participant, un ensemble de


procdures et dactivits, en fonction des rles quil tient.

Sachant que ces modules CRM sera mis en place dans le portail de Discovery ; ce projet
entre dans le cadre dextension de solutions pour la gestion de la relation avec le client.

II.3. Etude de lexistant


Nous allons, tout dabord, tudier lexistant informatique et fonctionnel de Discovery. Cette
tude nous permettra de dployer progressivement le projet et de ressortir quelques critiques,
partir desquelles nous allons expliciter la solution adquate implmenter.

II.3.1. Description de lexistant informatique


Discovery a adopt le logiciel SugarCRM et a dcid de crer des modules sur-mesure qui
rpondent ses besoins.

Et aprs plusieurs annes de travail, les activits de DISCOVERY ont volu et le


nombre de ses projets et de ses activits est devenu trs important. Pour russir, la socit a
toujours su sentourer de comptences fort potentiel. Suite sa grande et large activit, elle
recourt souvent au recrutement pour occuper de nouveaux emplois.

Tout emploi existe pour produire des rsultats, et pour produire des rsultats, il faut
mobiliser de la comptence.

Une comptence est lensemble de trois composants mises en uvre dans une situation
donne pour produire un rsultat : un savoir, un savoir faire et un savoir tre.

UNE COMPETENCE

SAVOIR SAVOIR FAIRE SAVOIR TRE

Connaissances Techniques et Comportements


expriences observables

7
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 client : appelle le Service technique de Discovery pour passer une rclamation.

Service Technique : appelle le chef de projet et lui informe de la rclamation du client.

Le chef de projet : doit proposer une solution et affecter un consultant technique qui soit
disponible

Le consultant technique : se dirige aux clients et fait sa mission propose et retourne


Discovery la fin de la journe pour remplir sa fiche dintervention.

Et pour rsoudre tout ces problmes on va intgrer ces modules CRM pour donner une
solution automatiser et fiable qui rpond tous ces besoins.

8
RalisationduneapplicationWebCRM 2009 - 2010

II.4. Spcification des exigences


II.4.1. Liste des exigences
Dans cette section, nous identifions une liste des exigences fonctionnelles et non
fonctionnelles du projet.

II.4.1.1 Exigences fonctionnelles


Une solution rapide et efficace pour lancer des recherches automatiques.

Matriser lallocation des comptences et connaissances de son personnel et des candidats


externes lentreprise.

Gestion de lhistorique de tous les CV pour garder des traces de ces derniers.

Grer les emplois du temps de chaque personne travaillant Discovery

Informatiser la t che fiche dintervention.

Grer le droulement de chaque tche du projet.

Grer les rclamations des clients.

II.4.1.2 Exigences non fonctionnelles


Garder sa clientle et les fidliser en les satisfaisant au mieux.

Elargir sa gamme de clients en offrant des services rapides et faciles manipuler.

Gagner du temps lintrieur de lentreprise.

Eviter les cots et pertes engendres par lancien moyen de recrutement.

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.

II.4.2. Scnarios et des cas dutilisation module recrutement


II.4.2.1 Identification des acteurs
La mise en marche du systme ncessite essentiellement trois acteurs :

9
RalisationduneapplicationWebCRM 2009 - 2010

Gestionnaire des candidats : il se reprsente comme un membre du personnel de


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
disposition dune nouvelle candidature.

Client : il a pour fonction lautorisation daccder au systme pour rechercher un profil


anonyme dans la base des CV de Discovery.

II.4.2.2 Diagramme de contexte

Les flux reprsents ci-dessous entre systme et acteurs sont pris en charge par le diagramme
de contexte dynamique. Ce diagramme montre une vue globale du droulement de notre
projet.

Figure 2. Diagramme de contexte

II.4.2.3 Les cas dutilisation

Le diagramme de cas dutilisation reprsente la structure des grandes fonctionnalits


ncessaires aux utilisateurs du systme.

10
RalisationduneapplicationWebCRM 2009 - 2010

Cest le premier diagramme du modle UML, celui o sassure la relation entre


lutilisateur et les objets que le systme met en uvre.

Un diagramme de cas dutilisation capture le comportement dun systme, dun sous -


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 ant un sens pour les
acteurs.

Les cas dutilisation permettent dexprimer le besoin des utilisateurs dun systme, ils
constituent donc une vision oriente besoins utilisateur contrairement une vision
informatique.

Diagramme des cas dutilisation global :

Le diagramme qui suit reprsente un cas dutilisation globale de lapplication.

Figure 3. Diagramme des cas dutilisation globale

Diagramme du cas dutilisation Gestion de la planification priodique :

Spcification : Lobjectif de ce cas dutilisation est de planifier les projets en cours de


Discovery, et organiser les missions de chaque projet, et de grer la disponibilit des
employs.

11
RalisationduneapplicationWebCRM 2009 - 2010

Figure 4. Diagramme des cas dutilisation Gestion de la planification priodique

Diagramme du cas dutilisation Gestion de recrutement

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

Figure 5. Diagramme des cas dutilisation Gestion de recrutement

Diagramme du cas dutilisation Gestion de proposition dune mission :

Spcification : Lobjectif de ce cas dutilisation est de visualiser linteraction entre le client et


notre systme. Le client remplit des formulaires en ligne qui seront plus tard traits par le
systme.

Figure 6. Diagramme des cas dutilisation Gestion de proposition dune mission

Diagramme du cas dutilisation Gestion de la saisie des cv :

Spcification : Ce cas dutilisation reprsente la synchronisation entre la base du web et la


base oprationnelle afin de mettre jour nos donnes.

Figure 7. Diagramme des cas dutilisation Gestion de la saisie des cv

13
RalisationduneapplicationWebCRM 2009 - 2010

II.4.2.4 Raffinement des cas dutilisation


Raffinement du premier cas dutilisation :

Intitul du cas dutilisation Gestion de la planification priodique

Acteur Gestionnaire de candidats

Localisation lapplication entant


Pr-condition quAdministrateur.

Post-condition Des projets planifis

Le gestionnaire de candidats rectifie et planifie ces


Description du cas dutilisation
projets en dcrivant tous ces projets.

Raffinement du deuxime cas dutilisation:

Intitul du cas dutilisation Gestion de recrutement

Acteur Gestionnaire de candidats

Pr-condition Localisation lapplication entant quAdmin.

Recruter des candidats ou attribuer des missions


Post-condition
aux employs
Lors dune nouvelle mission ou projet le recruteur
Description du cas dutilisation interroge la base de cv pour trouver le profil du
candidat adquat, sinon il lance un appel doffre

Raffinement du troisime cas dutilisation :

Intitul du cas dutilisation Gestion de proposition dune mission

Acteur Client

Pr-condition Identification

Post-condition Manipuler ces missions

Un client peut demander une mission ou mettre


Description du cas dutilisation jour lune de ces missions qui existe dj ou bien
annuler lune de ces missions.

14
RalisationduneapplicationWebCRM 2009 - 2010

Raffinement du quatrime cas dutilisation :

Intitul du cas dutilisation Gestion de saisie de cv

Acteur Candidat

Pr-condition Dpt de nouveaux cv quil nexiste pas

Post-condition Mise jour de la base de cv

Les candidats demande un recrutement en ligne, il


Description du cas dutilisation saisit alors un formulaire de cv. saisies les cv
comme ils peuvent aussi consulter afin de mettre
jour leur cv pour toute modification.

II.4.3. Scnarios et cas dutilisation module espace employes


II.4.3.1 Identification des acteurs
Chef de projet : cest un membre de Discovery , son rle est de grer son groupe et le
droulement de chaque projet.

Client : Il a pour fonction lautorisation daccder au systme pour voir le droulement


de son projet et de nous contacter.

Service Technique : Cest un service destin pour les clien ts, son rle est denregistrer
les rclamations.

Employe : cest un employe de champ il est dsign comme un consultant technico


fonctionnel, son rle est de rparer et intgrer des logiciels chez les clients.

15
RalisationduneapplicationWebCRM 2009 - 2010

II.4.3.2 Diagramme de contexte


Ce diagramme montre une vue globale du droulement de notre projet.

Figure 8. Diagramme du contexte

II.4.3.3 Les cas dutilisation


Comme on a expliqu dans le module prcdent, lutilit des cas utilisations est dexprimer
les besoins des utilisateurs dun systme.

Ces diagrammes ne prsentent pas des solutions dimplmentation mais ils identifient
les utilisateurs du systme (acteurs) et leurs interactions du systme.

16
RalisationduneapplicationWebCRM 2009 - 2010

Diagramme des cas dutilisation global :

Le diagramme qui suit reprsente un cas dutilisation globale de lapplication.

Figure 9. Diagramme Cas Utilisateurs globale

Diagramme Cas utilisateur Gestion daffectation des employes :

Spcification : Ce cas dutilisation reprsente linteraction du chef de projet et notre systme,


ce diagramme explique lenchainement du cas utilisateur Affecter lemploye disponible
comptant .

17
RalisationduneapplicationWebCRM 2009 - 2010

Figure 10. Diagramme Cas Utilisateurs Gestion daffectation des employes

Diagramme Cas utilisateur des taches employes :

Spcification : Ce cas dutilisation reprsente linteraction de chaque employe avec notre


systme. Ce diagramme pressente les tches employes.

Figure 11. Diagramme Cas Utilisateurs des taches employes

18
RalisationduneapplicationWebCRM 2009 - 2010

Diagramme gestion des rclamations :

Spcification : Ce cas utilisateurs reprsente linteraction du Client et Service Technique avec


notre systme. Ce diagramme explique le rle dune timesheet dans la gestion des
rclamations.

Figure 12. Cas Utilisateur de gestion des rclamations

II.4.3.4 Raffinement des cas dutilisation


Raffinement du premier cas dutilisation :

Intitul du cas dutilisation Gestion daffectation des employes

Acteur Chef de projet

Le chef de projet reoit une rclamation du


Pr-condition
service technique.

Selon les comptences de chaque membre de son


Post-condition groupe el leur disponibilit le chef de projet
affecte lemploye.

Le chef de projet reoit une rclamation alors il


Description du cas dutilisation faut la grer rapidement et donne la solution pour
la satisfaction des clients.

19
RalisationduneapplicationWebCRM 2009 - 2010

Raffinement du deuxime cas dutilisation :

Intitul du cas dutilisation: Gestion des taches employes

Acteur Employe
Lemploye reoit une mission faire du chef de
Pr-condition
projet.
Lemploye faire son travail demand et remplir
son fiche de chaque intervention faite, aussi
Post-condition
remplir son emploie du temps de chaque
semaine.
Les taches demploye et leur interaction avec les
Description du cas dutilisation
acteurs du systme.

Raffinement du troisime cas dutilisation :

Intitul du cas dutilisation Gestion des rclamations

Acteur Client et service technique

Pr-condition Le client a eu un problme.

Post-condition Le client exprime son besoin au service technique

Comment la gestion des rclamations et le rle


Description du cas dutilisation dun timesheet pour minimiser le nombre des
rclamations.

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 e
larchitecture de la base de donnes.

Le diagramme dactivits nest autre que la transcription dans UML de la reprsentation du


processus telle quelle a t labore lors du travail qui a prpar la modlisation : il montre
lenchanement des activits qui concourent au processus.

Le diagramme de squence reprsente les interactions entre objets au cours du temps par des
messages (synchrone et asynchrone).

III.2.1. Module Recrutement


III.2.1.1 Diagramme de classe
Le diagramme de classes est considr comme le plus important de la modlisation oriente
objet, il est le seul obligatoire lors dune telle modlisation.

Le diagramme de classes montre la structure interne du systme. Il permet de fournir


une reprsentation abstraite des objets du systme qui vont interagir ensemble pour raliser les
cas dutilisation. Il sagit dune vue statique car on ne tient pas compte du facteur temporel
dans le comportement du systme. Les principaux lments de cette vue statique sont les
classes et leurs relations : association, gnralisation et plusieurs types de dpendances, telles
que la ralisation et lutilisation.

21
RalisationduneapplicationWebCRM 2009 - 2010

Une classe de conception est compose par :

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
de ses instances qui peut tre diffrent.

Figure 13. Diagramme de classes

22
RalisationduneapplicationWebCRM 2009 - 2010

o Candidat : classe entit qui reprsente les diffrents candidats qui postulent leurs cv, les
attributs de cette classe reprsentent les diffrents champs dans le cv.

o 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.

o Domaine comptence : classe entit qui reprsente le domaine de comptence pour


chaque comptence.

o Comptence : classe entit qui reprsente les diffrentes comptences que peut avoir un
candidat.

o Comptence lmentaire : classe entit qui reprsente les diffrents lments de


comptence du candidat.

o Poste : classe entit qui reprsente les diffrents postes auxquels pourrait postuler un
candidat. Il contient diffrents comptences lmentaires exigs par le poste, il a un profil
poste, et est reli plusieurs mission.

o Profil : classe entit qui reprsente les profils poste et candidat.

o 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
reprsente les projets sur lesquels travaille lentreprise.

o Planning Mission : classe entit qui reprsente lemploi du temps de chaque candidat
affect une mission, pour pouvoir grer sa disponibilit.

o Client : classe entit qui reprsente les diffrents clients de lentreprise.

o Certification : classe entit qui reprsente les diffrentes certifications que pourrait avoir
chaque candidat et qui regroupe diffrents lments de certification.

o Elment certification : classe entit qui reprsente les diffrents lments de certification
que pourrait avoir chaque candidat.

23
RalisationduneapplicationWebCRM 2009 - 2010

III.2.1.2 Diagramme dactivit globale


Pour des raisons de lisibilit, nous allons schmatiser les figures Diagramme dactivit de la
gestion de la demande de recrutement et Diagramme dactivit globale du systme en
largeur de la page. La figure suivante reprsente le diagramme dactivit global de la gestion
de candidatures aux recrutements.

24
RalisationduneapplicationWebCRM 2009 - 2010

Figure 14. Diagramme dactivit relatif au cas dutilisation globale de systme

25
RalisationduneapplicationWebCRM 2009 - 2010

III.2.1.3 Diagrammes dactivit et de squence dtaills


Analyse du cas dutilisation Gestion de la demande de recrutement :
Diagramme dactivit

Figure 15. Diagramme dactivit relatif au cas dutilisation Gestion de la demande de recr

26
RalisationduneapplicationWebCRM 2009 - 2010

Diagramme de squence

Figure 16. Diagramme de squences relatif au cas dutilisation Gestion de la demande de re

27
RalisationduneapplicationWebCRM 2009 - 2010

Analyse du cas dutilisation Gestion de la demande de recrutement :


Diagramme dactivit

Figure 17. Diagramme dactivit relatif au cas dutilisation Gestion de la planification pr

28
RalisationduneapplicationWebCRM 2009 - 2010

Diagramme de squence

Figure 18. Diagramme de squences relatif au cas dutilisation Gestion de la planification p

III.2.2. Module Espace Employe


III.2.2.1 Diagramme de classe
Dans cette partie on va prsenter une liste des classes pour montrer la structure interne du
module Espace employe.

o 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 Client : classe entit qui reprsente les diffrents clients de lentreprise.
o Fiche intervention : classe entit reprsente le travail fait par lemploy chez le client.

29
RalisationduneapplicationWebCRM 2009 - 2010

o Chef Projet : classe entit hrite de la classe user et qui a un statut diffrent, elle prsente
le chef de projet qui affecte lemploy .
o Projet : classe entit qui reprsente une liste des projets des clients.
o Tche projet : classe entit reprsente les t ches dun projet.
o Service Technique : classe entit qui reprsente un utilisateur qui a le droit de recevoir
du client une liste de rclamation.
o Rclamation : classe entit qui reprsente une liste des rclamations des clients.
o Semaine : classe entit qui reprsente les jours de la semaine

Voici le diagramme de classe qui reprsente les classes et les associations de notre
systme. .

Figure 19. Diagramme de classe gestion employe

30
RalisationduneapplicationWebCRM 2009 - 2010

III.2.2.2 Diagramme dactivit globale


Pour des raisons de lisibilit, nous allons schmatiser seulement le diagramme dactivit
globale du module gestion demployes .

31
RalisationduneapplicationWebCRM 2009 - 2010

Figure 20. Diagramme dactivit global

III.3. Structure de la base de donne


Nous allons prsenter la structure des tables pour le deuxime module. Les cls primaires sont

soulignes et les cls trangres sont prcdes par un dise.

o Client : (id_client, nom_client, prenom_client, numero_telephone_client, adresse_client,

societe_client, email_client, piece_identite_client).

o Users : (id_user, login_user, prenom_user, fonction_user, email_user, telephone_user,

adresse_user, sup_de_user, departement_user, etat_user, statue_user).

o Fiche_Intervention : (code_facture, date_inter, duree, objet_inter, logiciel, #id_user,

#id_client, #id_tache_projet).

o Rclamation : (id_reclamation, etat_reclamation date_rclamation, #id_client).

o Projet : (id_projet, name_projet, statue_projet, priorite_projet, date_debut_projet,

date_fin_projet).

o Tche_projet : (id_tache_projet, nom_tache, description_tache, heure_debut_tache,

heure_fin_tache, duree_tache, percent_complete_tache, priorite_tache, #id_projet).

o Timesheet: (id_timesheet, duree_trav, #id_user #id_projet #id_tache_projet).

o Semaine : (id_semaine, jour_sem, #id_timeshhet).

III.3.1. Dictionnaire des donnes de la base des donnes

Nom des champs Libell Type de donnes


Id_client (cl primaire) Identificateur du client Numro Auto

Nom_client Nom du client Texte

Prenom_client Prnom du client Texte

Numero_telephone_client Numro de tlphone de lagent Numrique

Adresse_client Adresse du client Texte

32
RalisationduneapplicationWebCRM 2009 - 2010

Nom des champs Libell Type de donnes


Societe_client, Socit du client Texte

Email_client, Email du client Texte

Piece_identite_client Carte didentit du client Numrique

Id_user (cl primaire) 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

Id_reclamation (cl primaire) Identificateur de la rclamation Numro Auto

Etat_reclamation Etat de la rclamation Texte

Date_rclamation Date de la rclamation Date

Id_projet (cl primaire) 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 de dbut du projet Date

33
RalisationduneapplicationWebCRM 2009 - 2010

Nom des champs Libell Type de donnes


Date_fin_proje Date de fin du projet Date

Id_tache projet (cl primaire) Identificateur de la tache projet Numro Auto

Nom_tache Nom de la tche Texte

Description_tache, Description de la tache Texte

Heure_debut_tache Heure de dbut de la tache Numrique

Heure_fin_tache Heure de la fin de tache Numrique

Duree_tache Dure de la tache Numrique

Percent_complete_ tache Pourcentage complte de la tache Numrique

Priorite_tache Etat dun PDA Texte

Id_timesheet (cl primaire) Identificateur du type dune question Numro Auto

Duree_trav Dure du travaille Texte

Id_semaine Identificateur de la semaine Numro Auto

Jour_sem (cl primaire) Journe de la semaine Date

Tableau 1. Dictionnaire des donnes

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 SugarCRM . Aussi nous allons
prsenter des petites comparaisons entre le SugarCRM et les autres diteurs de CRM.

IV.1.1. Prsentation du SugarCRM


Quest ce que SugarCRM ?

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 :

Figure 19. Les lments impliqus dans le MVC de SugarCRM

35
RalisationduneapplicationWebCRM 2009 - 2010

Le schma de la figure est un diagramme de squence qui met en lumire quelques-uns


des principaux lments impliqus dans le Framework SugarCRM.

IV.1.1.1 Mthode pour intgrer un nouveau module

La personnalisation des applications peut se faire de deux manires : Nous pouvons crer de
nouveaux modules en utilisant le Module Builder ou personnaliser des modules existants
en utilisant le Studio parmi les outils du dveloppeur (developper tools) directement
partir de linterface SugarCRM. Le Module Builder est un gnrateur, qui nous permet de
construire de nouveaux modules pour tendre les fonctionnalits de SugarCRM. La
fonctionnalit du Module Builder permet aux programmeurs de crer des modules et de crer
des relations entre ces modules sans crire du code. Parfois, la personnalisation dun module
peut ncessiter une modification dans le code source.

Nous pouvons aussi construire et personnaliser de nouveaux modules entirement


partir du code source de lapplication tout en respectant larchitecture MVC quadapte
SugarCRM, et les points dentres sans avoir utiliser le g nrateur du Builder.

SugarCRM est bas sur une structure modulaire et sur la scurit des points d'entre de
lapplication (par exemple index.php : qui est laiguilleur de lapplication permet daccder
aux diffrentes interfaces). Avant chaque accs lu tilisateur doit obligatoirement passer pour
sauthentifier. Cette demande dauthentification est affiche lors de la premire demande de la
page de SugarCRM ou lorsquun utilisateur entre directement dans la barre dadresse 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 2009 - 2010

Dans ce qui suit, nous allons illustrer une dmonstration de lutilisation du logiciel
SugarCRM :

Figure 20. La navigation entre les modules

Si lutilisateur identifi est ladministrateur admin alors il aura en plus, un accs la


page Admin o plusieurs fonctionnalits sont proposes, parmi lesquelles nous avons le
developper tools :

Figure 21. Module Builder fait partie de la console Developer Tools de l'administration d

A partir de l, nous pouvons accder au Module Builder pour crer de nouveaux


modules, ou accder dautres fonctionnalits du Developper Tools .

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. Nous pouvons grer les relationship du module avec les autres
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

IV.1.1.2 La structure des rpertoires du code source de SugarCRM


Cette figure prsente une liste des sous-rpertoires sous le dossier Sugarcrm :

Figure 23. Les rpertoires diffrents lintrieur du SugarCRM

Le code de SugarCRM rside dans des rpertoires diffrents l'intrieur de la Sugar


Installation. La structure des rpertoires au sein de l'application du Sugar se compose des
rpertoires suivants:

o custom : Magasins de mise niveau de scurit des personnalisations telles que les
dfinitions de champ, prsentation de l'interface utilisateur et le logique mtier.

o data : systme de fichiers de cls se trouvent dans ce dossier, et plus particulirement la


classe de base qui est SugarBean qui contrle l'application logique par dfaut pour tous les
objets des entreprises de sugar.

o include : comporte beaucoup de fonctions utilitaires du Sugar, ainsi que d'autres


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
entre les donnes et les objets mtiers (Business Object).

o modules : Ce dossier contient tous les modules du systme. Custom modules installs par
le biais de Module Loader existe ici aussi.

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
dfaut dans Sugar comportent les DetailView, EditView et ListView.

o Display Strings : SugarCRM est entirement internationalis et localisable. Chaque pack de


langue a son propre ensemble de chanes d'affichage qui est la base de la langue de localisation.

o Dropdown Lists: ils sont reprsentes comme des nom=>'valeur' paires de tableaux
situs dans l'application strings comme indiqu ci-dessus.

La valeur du nom est stocke dans la base de donnes et la valeur est affich
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 :
o sugarBean.php : Ce fichier se trouve sous le <sugar root> / data contient le dossier
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 modules.php : Le fichier modules.php est un fichier critique Sugar. Il contient plusieurs


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

IV.2. Architecture de lapplication MVC


Larchitecture de notre application est larchitecture MVC 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
modle de lutilisateur final.

o Controller : C'est la couche qui gre les utilisateurs des vnements tels que Enregistrer
Candidat et dtermine la logique des mesures prendre pour construire le modle, et la
charge de rendre les donnes au utilisateur final.

Utiliser l'architecture MVC dans les applications Web/PHP :

Le modle MVC (Modle-Vue-Contrleur) cherche sparer nettement les couches


prsentation, traitement et accs aux donnes. Une application web respectant ce modle sera
architecture de la faon suivante :

Figure 24. Larchitecture MVC dune application web

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

3. Le contrleur reoit une rponse de la couche mtier. La demande du client a t traite.


Celle-ci peut appeler plusieurs rponses possibles. L exemple classique est une page d'erreurs
si la demande n'a pu tre traite correctement ; une page de confirmation sinon.

4. Le contrleur choisit la rponse (= vue) envoyer au client. Celle-ci est le plus souvent
une page contenant des lments dynamiques. Le contrleur fournit ceux-ci la vue.

5. La vue est envoye au client. C'est le V de MVC.

Le modle MVC adapt au Web est une rponse une division des responsabilits :

la partie Vue est prise en charge par un script (PHP ou autre langage) gnrant du HTML
(sans autre logique de traitement)

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.

IV.3. Comparaison entre les technologies CRM


Dans le monde de CRM on retrouve plusieurs solutions ; il y en a celles qui sont payantes et
dautres qui sont libres et notre choix de Sugar CRM repose sur plusieurs raisons. 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,
plus on ajoute des fonctionnalits plus le prix augmente.

Centric CRM : cest une solution Open Source qui est utilis par plus 500 compagnies
mais la version gratuite vient seulement avec 5 licences dutilisateurs ce qui ne la rend pas
pratique pour une entreprise qui contient plus de 100 employs.

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.

V.2. Environnement de travail


V.2.1. Environnement matriel
Tout au long de la priode de stage nous avons dispos de deux ordinateurs, un ordinateur
pour chacun avec un serveur CRM.

Le premier ordinateur :

Marque : DELL VOSTRO 1015


Systme : Microsoft Windows XP Professionnel version 2002 service pack3
Ordinateur : INTEL Core2 Duo CPU T 6570 @ 2.10 GHz
1,19 GHz 2,96 Go de RAM

Le deuxime ordinateur :

Marque : Mac OS X version 10.6.3


Systme : Macintosh HD
Ordinateur : INTEL Core2 Duo 2.26 GHz
2 Go 1067 MHz DDR3

44
RalisationduneapplicationWebCRM 2009 - 2010

V.2.2. Environnement logiciel


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.

V.3. Choix techniques


V.3.1. Choix du langage
PHP :
Notre application a t dveloppe en PHP. Un extrait du code est prsent lannexe B. Il
concerne le dveloppement du moteur de recherche des candidats.

PHP (HyPertext Preprocessor) est un langage de programmation qui s'intgre dans nos
pages HTML. Il permet entre autres de rendre automatiques des tches rptitives, notamment
grce la communication avec une base de donnes .

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 dans nos modules on passe par 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 :

AJAX (Asynchronous Javascript And Xml) il dsigne un nouveau type de conception de


pages Web permettant l'actualisation de certaines donnes d'une page sans procder au
rechargement total de cette page. AJAX n'est pas une technologie en elle-mme, mais un
terme qui voque l'utilisation conjointe d'un ensemble de technologies libres couramment
utilises sur le Web

Les applications AJAX peuvent tre utilises au sein des navigateurs Web qui
supportent les technologies dcrites prcdemment. Parmi eux, on trouve Mozilla Firefox,
Internet Explorer et on a utilis ce concept pour recharger un seul bloc dans la page timesheet.

46
RalisationduneapplicationWebCRM 2009 - 2010

V.3.2. Choix de la technologie de scurit


La scurit de lapplication est assure par les sessions de SugarCRM et les points dentres.
En effet, tous les points d'entre dans lapplication de sugar sont prdfinis, afin que des
mesures de scurit et d'authentification soient appliques de manire cohrente travers
l'ensemble de l'application.

Le passage obligatoire de nos pages dvelopps, par le point dentre index.php, permet
de rediriger tout utilisateur non authentifi, la page dauthentification de sugarCRM :

Figure 25. Interface dauthentification

V.4. Gestion du projet


Dans cette partie nous reprsentons lorganigramme chronologique de la ralisation de notre
projet. Cet organigramme comporte les principales tches effectues tout au long du projet.
Nous avons commenc durant trois semaines par analyser lexistant et spcifier les besoins,
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:

Figure 26. Chronologique de la ralisation de notre projet

V.5. Phase dimplmentation


V.5.1. Contraintes
Dans le cas du dveloppement dune simple application web, le dveloppeur est libre de
dvelopper sans aucune limitation ni contrainte une application correspondante exactement
ses diffrents besoins. Mais dans notre cas, nous allons dvelopper une application qui doit
tre intgre lensemble des modules et solutions quoffrent SugarCRM.

La plateforme de SugarCRM nest gure simple ou facile comprendre. La


comprhension de larchitecture de la plateforme, la matrise de lensemble de ses dossiers, le
cheminement des informations et la rpartition du code dans SugarCRM sont relativement
compliqus. Cette plateforme est conue en MVC cette architecture est trs bien adapt aux
grands projets tel que le CRM de Sugar.

Notre plus grande contrainte est de se limiter dans le dveloppement de lapplication


selon larchitecture de la plateforme, ses bibliothques, ses classes et ses fonctions. On peu t
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 2009 - 2010

La figure suivante reprsente une solution propose pour lintgration dun nouveau
module.

Figure 27. Intgr un module dans SugarCRM

La partie droite reprsente les fonctionnalits offertes par SugarCRM, un simple


utilisateur, et la partie gauche reprsente les fonctionnalits offertes au dveloppeur. Nous
entant que dveloppeurs nous devront sintresser la partie gauche, du dessin, pour bien
sre, aboutir la fin de notre dveloppement la ralisation de notre application dans la partie
droite du schma, c..d. lajout de notre application (recrutement et gestion demploye) dans
linterface utilisateur, comme une fonctionnalit et des modules de plus, parmi, les
fonctionnalits et modules quoffre SugarCRM .

49
RalisationduneapplicationWebCRM 2009 - 2010

V.5.2. La programmation avec Sugar et MVC


Avec lavnement de SugarCRM 5.0, une nouvelle architecture MVC est ne. Cette
architecture a t dsigne pour liminer les tches pnibles dans la construction des modules
dans Sugar. Ainsi, a u lieu davoir tracer manuellement des modles et de mettre en place
leurs interactions et leurs relations, on pourra fa cilement tirer profit du Framework laide
des modles standardiss et les fichiers de dfinitions pour la construction de divers vues. Le
systme est aussi trs extensible permettant de nouvelles vues et Templates personnaliss.

V.5.2.1 MVC (Model-View-Controller):

MVC est un modle de design qui cre une sparation nette entre le logique mtier et la
logique d'affichage.

Le Model : C'est l'objet de donnes construite par l'entreprise logique de l'application /


besoin de prsenter l'interface utilisateur. Pour SugarCRM, il est reprsent par le
SugarBean et toutes les classes de la SugarBean

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.

V.5.2.2 SugarCRM 5.0 Mis en uvre avec MVC :


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 cas des interfaces. Si on regarde dans la structure du
fichier, on remarquera que les modles comprennent de nombreux fichiers supplmentaires, y
compris un rpertoire de mtadonnes compltes. Ceci est principalement utilis par
ModuleBuilder pour obtenir les mises par dfaut partir de celui-ci.

Structure du fichier : include/SugarObjects/interfaces

include/SugarObjects/templates

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
contrleur on dfinit les mthodes daction.

Il y a plusieurs mcanismes de contrle quun dveloppeur peut utiliser pour remplacer


le traitement de commande. Par exemple, si un dveloppeur a voulu crer une sauvegarde de
nouvelles actions, il y a 3 endroits o ils pourraient ventuellement remplacer.

Action_save : ce serait le plus large cahier des charges et donnerait l'utilisateur un


contrle total sur le processus d'enregistrement.
Pre_save : un utilisateur peut rcrire les paramtres de la forme.

51
RalisationduneapplicationWebCRM 2009 - 2010

Post_save : c'est l o la vue est le programme d'installation en cours. ce point, le


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.

Dmarrer dans index.php nous chargeons de l'instance SugarApplication


SugarApplication instancie SugarControllerFactory
ChargesSugarControllerFactory le contrleur appropri
Vrifiez les custom / modules / <MyModule> / controller.php
Sil n'est pas trouv, vrifier les modules / <MyModule> / controller.php
Sil n'est pas trouv, la charge SugarController.php
Appel sur les mesures appropries
Vrifiez les modules / <MyModule> / <MyAction>. Php
Sil n'est pas trouv, vrifier la mthode action_ <MyAction> dans le contrleur.
Sil n'est pas trouv, recherchez un action_file_mapping
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. Cela nempche quon rajoute des contrleurs qui
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 sous-
rpertoire 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)

Detailsviewdefs (des boutons pour ajouter ou supprimer).

V.6. Phase de tests et validation


En informatique, un test dsigne une procdure de vrification partielle d'un systme
informatique. Le but en est de trouver un nombre maximum de comportements
problmatiques du logiciel, car il est impossible de prouver qu'un logiciel fonctionne bien
dans tous les cas. Plus d'erreurs sont trouves, plus il y a de chances qu'il y ait davantage
d'erreurs dans le composant logiciel vis. Les tests de vrification ou de validation visent
s'assurer que ce systme ragit de la faon prvue par ses concepteurs (spcifications) ou est
conforme aux attentes du client l'ayant command (besoins), respectivement.

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 Scnarios de test Rsultat obtenu

Entrer un login et un mot de passe Excution correcte


Connexion lapplication correcte
1
Entrer un login et un mot de passe faux Excution correcte

2 Connexion la BD Slectionner des donnes de la BD Excution correcte

Insertion des donnes statique Excution correcte


Gestion des donnes
3
statiques
Consultation des donnes Excution correcte

Gestion des interfaces Insertion des donnes alphabtique la Excution correcte


4
graphique place des numrique

Insertion des donnes existantes Excution correcte

Slection des donnes inexistantes dans Excution correcte


la BD

Transfert correct des informations entre Excution correcte


5 Gestion des exceptions les interfaces

Mise jour de BD chaque modification Excution correcte

Envoyer une requte au serveur 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.

VI.2. Interfaces de lapplication


Cette figure reprsente linterface principale du module gestion des candidats (Recrutement). Elle
prsente un formulaire de recherche selon comptence, exprience, diplme, etc.

Figure 28. Recherche dun candidat

55
RalisationduneapplicationWebCRM 2009 - 2010

Et dans la figure suivante on va faire une recherche selon les comptences comme
exemple.

Figure 29. Slection dun lment de comptence

Le gestionnaire de recrutement slectionne dabord un domaine de comptence


(Informatique, Gestion, Finance). Puis il slectionne un lment de comptence du domaine
slectionn pour exemple (Mysql). Et il lance la recherche .

Figure 30. Rsultat

Voici le rsultat de la recherche, une liste des candidats qui ont une exprience
Mysql .

56
RalisationduneapplicationWebCRM 2009 - 2010

Figure 31. Vrification du rsultat

Le gestionnaire de candidat peut vrifier on utilisant la page view de candidat ou il peut


consulter le CV.

Figure 32. Ajouter un candidat

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.

Figure 33. Dposer les cv et voir historique cv

Figure 34. Interface remplir Timesheet

58
RalisationduneapplicationWebCRM 2009 - 2010

Voici linterface de remplir son timesheet, cette interface peut tre recharger suivant
deux champs cls la date et le projet.

Aprs la slectionne dune date prcis e notre page se recharge et une semaine saffiche
(Si vous slectionnez le 26/06/2010 qui est un samedi notre systme affiche tout les jours de
cette semaine). Dautre part on a un autre filtre selon les projets slectionns.

Figure 35. Remplir fiche dintervention

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 t aux contraintes et en rpondant
parfaitement lattente de lentreprise.

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 bases, que DISCOVERY Informatique a conquis de nombreux clients
prestigieux lchelle nationale et internationale et a bti sa notorit sur leur totale
satisfaction. Au- del de lexpertise, de la technologie et du savoir -faire dans le domaine de
lintgration des ERP, base indispensable de son mtier.

Forte dune quipe dirigeante prenne, de collaborateurs assidus, dune stratgie de


dveloppement claire, DISCOVERY Informatique aborde lavenir avec ralisme autour de
projets ambitieux : recrutement de nouvelles comptences, rapprochement auprs de grands
partenaires mtier et de nouveaux diteurs, mener des projets dintgration russis,
dploiement linternational, continuit en matire de recherches et dveloppement.

Cest dans cette perspective que nous avons opt linformatisation de la tche de
recrutement et dautre part la gestion des employes . Et on a dvelopp cette application
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

Ce travail nous a donn lopportunit de sinitier la vie professionnelle dans un milieu


rel et avoir un dbut dexprience significatif. Ce stage nous a appris comment ds le matin
on peut prendre le parti de la gaiet, comment russir de bonnes relations pour assurer un
travail de groupe, comment compter sur soi pour rsoudre les problmes au cas o ils se
prsentent, comment tre mticuleuses dans notre travail, comment tre attentives aux
indications de nos suprieurs, comment tre bien organises pour accomplir dans les meilleurs
dlais, et meilleures conditions les tches qui nous sont confies.

Cette application devenue une rfrence, dans les sites web dynamiques, nous a permis
de dcouvrir le monde professionnel, le plaisir du dveloppement des applications, la
crativit, le monde passionnant de linformatique dans la ralit des entreprises.

Durant cette priode de stage, nous avons appris de nouveaux langages de


programmation P HP5, Ajax, JavaScript Nous avons appris matriser le dveloppement
sur le logiciel SugarCRM, la manipulation de la base de donnes avec MySQL.

Nous avons aussi rencontr quelques problmes au dbut du projet, faute de


documentation sur le logiciel, manque dexprience et dexpertise dans la manipulation des
logiciels libres. Il reste beaucoup damliorations et extensions qui peuvent tre apporte s ce
module.

En consquence de tout ce qui prcde, nous esprons avoir t au niveau de la tche


qui nous a t affecte.

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
[6] : http://www. Developpez.com
[7] : http://www. wikipedia.com
[8] : http://www.siteduzero.com/

62
RalisationduneapplicationWebCRM 2009 - 2010

Annexe A : Vue densemble


diffrents rpertoires et fich
SugarCRM
Aperu des modules du Framework :

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 :

ListView : Ce contrleur d'action existe pour fournir l'utilisateur le formulaire de la


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.
Typiquement, l'utilisateur aura accs un enregistrement DetailView par l'intermdiaire d'un
ListView. L'utilisateur peut consulter les dtails de l'objet lui-mme et, en dessous des dtails, il
va voir la liste des articles connexes qui sont dnomms SubPanels dans Sugar.

Les SubPanels agissent en tant que mini-ListView d'objets qui sont lis l'objet parent
consulte avec le DetailView action. Par exemple, les tches assignes un projet ou aux

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
Save de lEditView d'un enregistrement.

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.

Metadata: Comme de plus en plus de mtadonnes et l'extension qui a t construite dans la


plate-forme de sugar, des spcifiques modules de fichiers de mtadonnes ont t ajouts ce
dossier. Certains des plus importants dossiers en ce rpertoire comprennent:

Additionaldetails.php : dfinit le contenu de la popup s'affichant dans la ListView.

Listviewdefs.php : dfinit les colonnes affiches dans la page du module ListView.

Popupdefs.php : dfinit les champs de recherche et la liste des colonnes pour un module de
popup.

SearchFields.php : dfinit la recherche de base et recherche avance des Formulaire vues dans
les pages ListView.

Studio.php : dfinit la manire dont l'outil Studio interagit avec un module de fichiers de
mtadonnes.

65
RalisationduneapplicationWebCRM 2009 - 2010

Maintenant, regardons les diffrents modules dans le dossier module et comme


exemple pfe_candidats pour complter la vue d'ensemble de la structure du module aussi les
fichiers dans le sous-dossier metadata .

Figure 36. Fichiers sous le dossier metadata

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&amp;action=index&amp;lvso=DESC&amp;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

$and = " AND ";

// Controle sur le champ elements de certification ///

if(isset ($_POST['elem_cert']) && $_POST['elem_cert'] != "")

$where .= $and."
pfe_elements_certification.id=pfe_candidaertification.pfe_elements_certification_idb AND
pfe_candidats.id=pfe_candidaertification.pfe_candidats_ida AND
pfe_elements_certification.libelle_cert='".$_POST['elem_cert']."'";

$from .= ",pfe_elements_certification ,pfe_candidaertification ";

$and = " AND ";

// Controle sur le champ diplome ///

if(isset ($_POST['diplome']) && $_POST['diplome'] != -1)

$where .= $and." pfe_diplomes.id=pfe_candidapfe_diplomes.pfe_diplomes_idb AND


pfe_candidats.id=pfe_candidapfe_diplomes.pfe_candidats_ida AND
pfe_diplomes.libelle_diplome='".$_POST['diplome']."'";

$from .= ", pfe_diplomes, pfe_candidapfe_diplomes";

$and = " AND ";

if(isset ($_POST['mots']))

$where .= $and." 'pfe_candidats.adresse' LIKE '%".$_POST['mots']."%'";

$and = " AND ";

if(isset ($_POST['permis']) && $_POST['permis'] != "")

68
RalisationduneapplicationWebCRM 2009 - 2010

{ if( $_POST['permis'] == "O")

$where .= $and."pfe_candidats.permis_de_conduire = 'on'";

$and = " AND ";

else

$where .= $and."pfe_candidats.permis_de_conduire = 'off'";

$and = " AND ";

if(isset ($_POST['niveau_exp']) && $_POST['niveau_exp'] != -1)

$where .= $and." pfe_candidats.type_experience = '".$_POST['niveau_exp']."'";

$and = " AND ";

$query = "SELECT distinct pfe_candidats.id , pfe_candidats.name , pfe_candidats.prenom";

if($from != "")

$query .= $from;

if($where != "")

$query .= ' WHERE ' . $where;

$res=mysql_query($query);

69
RalisationduneapplicationWebCRM 2009 - 2010

$table = '<table width="100%">';

while($row=mysql_fetch_assoc($res))

$table .= '<tr>';

$table .= ' <td nowrap="" bgcolor="#ffffff" width="1%" class="oddListRowS1">

<input type="checkbox" value='.$row[id].' name="mass[]"


class="checkbox" onclick="sListView.check_item('.this.', document.MassUpdate)"/>
</td>';

$table .= '

<td bgcolor="#ffffff" align="left" valign="top" class="oddListRowS1" scope="row">

<a
href="http://localhost/sugarcrm/index.php?module=pfe_Candidats&offset=1&stamp=124023887
5095607600&return_module=pfe_Candidats

&action=DetailView&record='.$row['id'].'">'.$row['name']."&nbsp;".$row['prenom'].'</a></t>';

$table .= ' </tr>';

$table .= '</table>';

echo $table;

?> </tbody></table> </td>

</tr></tbody></table>

</body>

</html>

70