Mise en place de la solution open source « EGGcrm » Sous « UBuntu 9.10 »

I. Introduction générale :
Si les relations clients constituent le cœur de toute activité professionnelle, alors la gestion de la relation client est la valvule indispensable à la circulation sanguine de l'entreprise, il est difficile de construire, développer des relations avec eux, les fidéliser à long terme, et optimiser l'interaction sur tous les aspects de la relation, particulièrement lorsque l’entreprise possède des milliers (voire des millions) de clients qui communiquent avec celle-ci de multiples manières, par conséquence, elle représente un facteur déterminant du succès de l’entreprise.
Un impact prépondérant sur l'organisation et les modes de travail des équipes commerciales et marketing est marqué lors de l’utilisation d’un outil de gestion de la relation client (ou CRM) car il aide les responsables d’entreprise de mieux comprendre leurs clients pour adapter et personnaliser leurs produits ou leurs services et donne des moyens de prendre des décisions rapides sur la base d'informations actualisées, qu'il s'agisse d'opportunités de vente croisée et de vente maximale.
Lorsqu’une entreprise souhaite se doter d’une solution CRM pour la gestion de son activité, elle pense à choisir une solution CRM reposant sur des technologies traditionnelles ou à l’inverse un CRM open source, autrement dit : choisir un Outil packagé ou Solution sur Mesure ?
Il existe pas mal de solution open source qui gère les relations client tel que : SugarCRM, VTiger, on a pris le choix sur EGGcrm.
II. Présentation de « EGGcrm »
EGGcrm (Easy Graphical Genuine) permet de gérer, en temps réel, le processus d’entreprise relatifs à la gestion de la relation client et d’optimiser le travail collaboratif entre tous les acteurs impliqués.
EGGcrm est le logiciel développé par les deux fondateurs de Cogivea, sous la licence libre CeCILL-C. Connu auparavant sous le nom de cligraphcrm, le logiciel a pris le nom d’EGGcrm en février 2009.
Il est doté de nombreuses fonctionnalités tel que la gestion des rendez-vous, suivie des affaires, prospection, édition des documents, envoie d’e-mailing à l’aide d’un logiciel de gestion de mailings, un logiciel pour la gestion de factures et bien plus encore. EGGcrm permet de gérer efficacement les fichiers des clients à l’aide d’un logiciel de gestion des dossiers et fait gagner un temps précieux.
C'est un logiciel multiutilisateur qui centralise les informations issues des utilisateurs en une même base de données à des fins d'organisation et d'optimisation du travail. Il s’intègre facilement dans l’environnement de l’entreprise.
Une solution « Full Web », permettant le suivi et la gestion commerciale de toute l’entreprise.
EGGcrm est capable de rassembler des données provenant de toutes les sources disponibles au sein de l'organisation et répond aux besoins de centralisation de l'information dans une base unique tout en privilégiant la souplesse de saisie et la richesse de restitution de l'information, et assure un suivi dynamique des actions engagées à toutes les étapes du cycle de vente d’achat avec l’élaboration des devis, commandes, factures couplée à une interface évoluée d’envoi et de suivi. Des tableaux de bords paramétrables exploitent les informations servant à l’analyse du marché, du chiffre d’affaires généré, de la localisation des ventes et des achats...
III. Avant installation
A- Système d’exploitation : Ubuntu 9.10 (« The Karmic Koala »)
Ubuntu est une distribution GNU/Linux qui réunit stabilité et convivialité.
Ubuntu 9.10 est la onzième version, elle s'adresse aussi bien aux particuliers qu’aux professionnels, débutants ou confirmés qui souhaitent disposer d'un système d'exploitation libre et sécurisé.
La distribution Ubuntu apporte l’esprit Ubuntu au monde logiciel.
-  Le monde de l’audio et de la vidéo numérique est à vous !
-  Exploitez pleinement Internet
-  Tous les outils de graphisme à votre disposition
-  Une suite bureautique reconnue et compatible
B- Serveur Web : XAMPP
XAMPP est une distribution issue de la voisine Germanie qui, à partir d’Apache, est un produit qui installe très rapidement et facilement un ensemble complet de services qui propose en fait un serveur web complet car il permet au néophyte d'avoir un serveur de test en quelques clics, sans avoir à choisir ni connaître les différents services à installer. Cette solution est très pratique pour créer un serveur de développement Toutefois, XAMPP n'est pas destiné à un environnement de production car il est peu sécurisée du côté des applications. Pour un serveur de production, il est grandement recommandé de préférer l'installation de chaque service individuellement, à l'aide des paquets précompilés fournis par Ubuntu. Afin d'installer un serveur sécurisé facilement, vous pouvez utiliser LAMP comme base Apache, MySQL et PHP et rajouter ensuite uniquement les services dont vous avez besoin.
Il y a deux versions, une normale et une légère.
- La plus petite propose PHP, MySQL, Apache, Perl "en modèle réduit" et PHPMyAdmin ; en outre, elle permet le "mod_auth" sous MySql, ce qui représente une solution intéressante pour la sécurité.
- La normale comprend en plus des bibliothèques supplémentaires dont SSL et des logiciels aussi variés que Webalizer, Mercury Mail Transport System, JpGraph, FileZilla FTP Server afin d’optimiser la maîtrise de son serveur.
IV. Installation de XAMPP
A- Etape 1: Téléchargement
A travers ce lien, on trouve les différentes versions récentes et même anciennes de XAMPP pour Linux : http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/, on va télécharger une version xampp-linux-1.7.3a.tar.gz.
B- Etape 2: Installation
1- Passer en mode commande (shell) Linux en ouvrant le terminal (Applications > Accessoires > Terminal) et on doit se connecter en tant qu'administrateur système (root). Soit on utilise : su (ou sudo –s) puis on met le mot de passe sinon on ajoute sudo avant tout opération qu’on va effectuer.
2- Effectuez l'extraction du fichier téléchargé (vers /opt) :
sudo tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt
XAMPP est maintenant installé sous le répertoire /opt/lampp , on peut vérifier :
ls /opt on trouvera le dossier lampp.
Les dossiers de XAMPP sont :
Figure 1 - Emplacement des fichiers et répertoires de XAMPP*
C- Etape 3: Démarrage
Pour démarrer XAMPP, il s'agit d'exécuter la commande suivante :
/opt/lampp/lampp start
On aura des messages semblables à ceux-ci :
Starting XAMPP 1.7.3a... LAMPP: Starting Apache... LAMPP: Starting MySQL... LAMPP started.
Ready. Apache and MySQL are running.
D- Etape 4: Test
Nous allons vérifier le fonctionnement de XAMPP en accédant : http://localhost
Maintenant, la page d'accueil de XAMPP devrait apparaître; elle contient des liens pour vérifier l'état du logiciel ainsi que quelques petits exemples de programmation.
Figure 2 - Page de démarrage de XAMPP

On fait le choix de la langue, on aura alors :
 Figure 3 - Interface de gestion XAMPP
E- Etape 5 : Sécurité
En choisissant sécurité dans le panneau XAMPP on aura cette fenêtre :
Figure 4 - Panneau de sécurité XAMPP
On remarque qu’une liste d’éléments de sécurité est manquante dans XAMPP tel que :
1. L'administrateur MySQL (root) n'a pas de mot de passe.
2. Le serveur MySQL est accessible depuis le réseau.
3. ProFTPD utilise le mot de passe "lampp" pour l'utilisateur "nobody".
4. phpMyadmin est accessible depuis le réseau.
5. Les exemples sont disponibles depuis le réseau.
6. MySQL et Apache sont en exécution sous le même utilisateur (nobody).
Pour corriger la plupart de ces faiblesses de sécurité, veuillez exécuter la commande suivante :
/opt/lampp/lampp security
Cette commande effectue une petite vérification de sécurité et rend votre installation de XAMPP plus sécuritaire.
root@ubuntu:/opt/lampp# sudo ./lampp security
XAMPP: Quick security check...
XAMPP: Your XAMPP pages are NOT secured by a password.
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Password protection active. Please use 'lampp' as user name!
XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL pma password.
XAMPP: Setting phpMyAdmin's pma password to the new one.
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Write the password somewhere down to make sure you won't forget it!!!
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL root password.
XAMPP: Change phpMyAdmin's authentication method.
XAMPP: The FTP password for user 'nobody' is still set to 'lampp'.
XAMPP: Do you want to change the password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Reload ProFTPD...
XAMPP: Done.
On va accéder de nouveau au localhost : 127.0.0.1
Figure 5 - XAMPP sécurisé par mot de passe
Figure 6 - - Panneau de sécurité XAMPP
Maintenant, tous est prêt, dans le dossier : /opt/lamp/htdocs on va mettre les solutions php, dans notre cas on va utiliser EGGcrm.
Le lancement de XAMPP se fait en ligne de commande dans le terminal, ce tableau nous présente les différentes possibilités pour lancer ou arrêter XAMPP.
Figure 7 - Paramètre de démarrage et d'arrêt(http://www.apachefriends.org/fr/xam pp-linux.html#1059)
On peut utiliser un panneau de contrôl pour lancer XAMPP ou lancer individuellement ces composants : ProFTPD ou Apache ou MySQL.
Nous ouvrant le terminal : sudo apt-get install ia32-libs
Puis on relance XAMPP s’il est démarré déjà : /opt/lampp/lampp restart et on tape : sudo gedit ~/.local/share/applications/xampp-control-panel.desktop et on copie ce code dans le nouevau fichier vide sousn gedit :
[home Entry]
Comment=Start and Stop XAMPP
Name=XAMPP Control Panel
Exec=gksudo python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py
Icon[en_CA]=/usr/share/icons/Humanity/devices/24/network-wired.svg
Encoding=UTF-8
Terminal=false
Name[en_CA]=XAMPP Control Panel
Comment[en_CA]=Start and Stop XAMPP
Type=Application
Icon=/usr/share/icons/Humanity/devices/24/network-wired.svg
Et on aura ce panneau sous : Applications > Other Figure
Figure 8 - Panneau de contrôle de XAMPP
V. Installation et configuration de « EGGcrm »
A- Présentation
EGGcrm s'appuie sur différentes technologies que nous allons décrire ici. Cette partie un peu plus technique s'adresse donc plus particulièrement aux curieux et aux connaisseurs.
Le logiciel repose sur une technologie LAMP/WAMP :
- système d'exploitation Linux, Windows
- serveur web apache : http://httpd.apache.org
- langage php : http://www.php.net
- base de données MySQL : http://www.mysql.com
- langage Javascript
D'autres produits sont intégrés dans EGGcrm :

- un éditeur WYSIWYG pour la création de documents, mails, news, etc....Il s'agit de FCKeditor (http://www.fckeditor.net).
- les graphiques (hors géomarketing) sont générés grâce à chartdirector, produit d'advsofteng (http://www.advsofteng.com).
- FPDF qui est une classe php permettant de générer des fichiers PDF en pur PHP. (http://www.fpdf.org).
- Tinybutstrong. Une librairie qui permet de créer dynamiquement des pages HTML. Nous nous en sommes servis afin d'effectuer le publipostage des documents html générés avec l'éditeur WYSIWYG. (http://www.tinybutstrong.com).
- Writeexcel : génération de documents excel (jmcnamara@cpan.org).
B- Etape 1 : Téléchargement
Nous allons télécharger la dernière version à travers ce lien : http://garr.dl.sourceforge.net/project/eggcrm/EGG%20crm%201.50%20stable/eggcrm_1.50.tar.gz
C- Etape 2 : Installation et configuration
1- Nous passant en mode Terminal :
On fait l’extraction de fichier téléchargé : tar xzvf eggcrm_1.50.tar.gz il va extraire dans un dossier nommé eggcrm.
On va renommer le fichier extrait en un nom personnalisé mv eggcrm myproject
On supprime le fichier compressé : rm eggcrm_1.50.tar.gz
On attribut les permissions 755 au dossier : chmod -R 755 myproject
Nous devons changer la configuration de PHP dans le fichier php.ini (sous /opt/lampp/etc), on va changer la valeur de l’attribut :
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED pour enlevez le message d'erreur car on utilise une version PHP supérieur à 5.
Nous lançant par la suite notre projet pour l’installer :
2- Installation d’EGGcrm : //localhost / myproject
Figure 9 - Accepter la licence d'utilisation
Figure 10 - Paramétrage de module
Figure 11 - Configuration base des données
Figure 12 - Installation
Il faut attribuer tous les droits 777 à tous le dossier car on n’a pas de droits d’écriture dans certains dossiers tels que : CRM, /LOG, /VAR, /PARTAGE, /STOCKAGE, ….
Figure 13 - Paramétrage du CRM
Figure 14 - Fin de l'installation
VI. Fonctionnalités de « EGGcrm »
On accède au CRM en utilisant les identifiants paramétré pendant l’installation (admin1, admin1).
Figure 15 - Page d'accès au CRM
Problème avec chartdirector :
Figure 16 - Erreur de chargement de ChartDirector
Chartdirector sert à générer les graphiques de statistiques. L’installation de chartdirector peut se faire par le programme EGGcrm si celui-ci possède les droits d'écriture dans le php.ini et dans le répertoire des modules d'extension de php. Sinon, voici l'installation manuelle :
Une fois l'archive de EGGcrm décompressée, allez dans le répertoire myproject/install/modules_php. Choisissez ensuite dans le répertoire qui vous convient puis le répertoire CHARTDIRECTOR (http://www.advsofteng.com/download.html).
Par la suite, copier les fichiers libchartdir.so et phpchartdir530.dll ainsi que le répertoire fonts dans le répertoire des modules d'extension PHP.
Pour le fichier phpchartdir530.dll, 530 correspond à la version de php5.3. Puis rajoutez la ligne extension=phpchartdir530.dll dans le php.ini. Enregistrez le php.ini puis relancez le serveur apache. Et on aura comme résultat :
Figure 17 - Tableau statistique
Ses principales fonctionnalités sont les suivantes :
A- Agenda graphique (Voir Agenda.ovg)
Tous les collaborateurs de l'entreprise peuvent visualiser les événements d’un collaborateur en particulier pour une meilleure vision globale des activités. EGGcrm solution propose un agenda graphique ainsi qu'un planning multi - utilisateurs.
Figure 18 - Agenda - 1-
Figure 19 - Agenda - 2-
Figure 20 - Agenda - 3 -
B- Création de documents (Voir CreationDocument.ogv)
Publipostés au format html grâce à un éditeur WYSIWYG performant pour des e-mailings.
C- Messagerie :
Toutes les campagnes marketing peuvent être automatisées en passant par EGGcrm.
D- Listes de démarchage :
Une fonctionnalité puissante d’automatisation de la force de vente pour éditer des listes et lancer des actions de communication (clients actuels et prospection).
E- Gestion des documents
Import, organisation, de documents, création de répertoires, gestion de l’espace de stockage personnel ou de l'espace de stockage commun.
F- Gestion des comptes (voir Comptes.ogv)
Vision à 360°, historique des actions, des affaires, des produits.... pour faciliter la gestion de la relation client.
Figure 21 - Gestion des comptes
G- Contacts
Gestion des contacts par rapport aux comptes créés.
H- Base de connaissance
Partage d’informations utiles par le biais de forums (réponse à une question, à un problème bloquant, aide aux autres utilisateurs...).
I- Démarchage de la prospection téléphonique avec suivi des appels et des actions
Pour automatiser la force de vente.
J- Affaires
Automatisation marketing pour le déclenchement et le déroulement de campagnes. Avec le suivi des dossiers importants pas à pas : événement, produits, documents, commentaires, étapes...
K- Evénements
Gestion des événements avec rappels au préalable.

Figure 22 - Création d'un événement
Figure 23 - Alerte de l'événement
L- Tâches
Les notions de statut et de priorité permettent une gestion efficace des multiples actions programmées au sein de l'entreprise.
M- Devis/factures (voir Devis_vente.ogv et DevisHP.ogv)
Gestion avancée des devis et factures avec de nombreuses options. Puissant et rapide, un devis est édité en 30 secondes un devis puis transformé très simplement en facture.
N- Produits (voir GestionProduis.ogv)
Importation de catalogues produits avec téléchargement d’images.
Figure 24 - Ajouter produits avec image
Figure 25 - Lister les produits disponible
Figure 26 - Gestion des catégories
O- Cartes
EGGcrm est le seul logiciel CRM à proposer en standard et gratuitement du géomarketing : affichage de la répartition géographique des clients, prospects, partenaires ou concurrents et des zones de couverture de la force de vente et où se vendent les produits.
P- Paramétrage (voir gestionutilisateur.ogv et gestiondesagents.ogv)
Configuration et paramétrage du logiciel avec gestion des utilisateurs et des droits d'accès, modification des listes de choix, import/export de données....
Figure 27 - Gestion des agents
VII. Conclusion
Le choix de cette solution est dû à sa simplicité d’utilisation, richesse de l’interface, répond aux besoins des entreprises voulant mettre en place un CRM dont le but de fidéliser leurs clients et ordonner leur travail à travers les événements, les agendas et les rappels du système.