Vous êtes sur la page 1sur 22

Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Page 1 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Table des matières
Remerciments........................................................................................................4
Glossaire................................................................................................................5
Introduction...........................................................................................................6
 1  Présentation de de l'entreprise Acticiel...........................................................6
 2  Objectifs du développement ................................................................…...….7
 3  Description et méthodologie de travail...........................................................8
3.1 Méthodologie de travail...............................................................................................................8
3.2 Mise en place de la base de données......................................................................................9
3.3 Site Web..............................................................................................................................................9
 3.3.1  La charte graphique.....................................................................9
 3.3.2  Les fonctionnalités du site.........................................................10
 4  Conception et réalisation....................................................................................10
4.1 Langages et outils utilisés..........................................................................................................10
 4.1.1  Xmind...........................................................................................10
 4.1.2  PHP...............................................................................................11
 4.1.2.1  Tidy...............................................................................................11
 4.1.2.2  SimpleXML..................................................................................11
 4.1.2.3  JSON.............................................................................................12
 4.1.2.4  Le Framework Code Igniter......................................................12
 4.1.3  MySQL..........................................................................................13
 4.1.4  jQuery...........................................................................................13
 4.1.4.1  jQuery AutoComplete................................................................14
 4.1.4.2  jQuery TableSorter......................................................................14
 4.1.4.3  jQuery Accordion.......................................................................15
 4.1.4.4  jqTransform.................................................................................15
 4.1.5  Google Visualization API..........................................................15
 4.1.6  (x)HTML/CSS.............................................................................15
4.2 Base de données..............................................................................................................................15
 5  Résultat final.........................................................................................................17

Page 2 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

 6  Difficultés rencontrées........................................................................................20
6.1 Problème d'encodage de caractères.......................................................................................20
6.2 Perte de 30 000 enregistrements dans la base de données..........................................20
Conclusion.............................................................................................................21
Références..............................................................................................................22

Page 3 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Remerciements

Je tiens à remercier tout particulièrement :

• La société Acticiel pour m'avoir accueilli pour ce stage;

• Jean­Christophe BOURROUX, mon maître de stage pour sa disponibili­
té en cas de besoin;

• Amine CHAOUKI, mon encadrant pour ce stage et chef du départe­
ment des services informatiques, qui m'a assisté et guidé au fur et à 
mesure de mon avancement dans l'application;

• Mbark AKERKOUCH, développeur web qui m'a aidé à fixer les bogues 
auxquels  je n'arrivais pas à trouver une solution moi­même.

Page 4 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Glossaire

BDD : Acronyme de Base De Données.

CSS  : acronyme pour  Cascading  Style  Sheets, langage utilisé pour décrire 


la mise en page et le style d'un document écrit en HTML (page web). 

Framework : Ensemble de bibliothèques(classes) qui fournissent des services 
communs à une grande partie de  logiciels, un framework est mis à disposi­
tion du développeur afin de lui faire gagner du temps au lieu de coder des 
choses qu'il refait normalement sur tout ses projets

GNU/GPL  :  GNU  General  Public  License, licence qui fixe les conditions lé­


gales de distribution des logiciels libres des projets GNU. 

(x)HTML  : acronyme pour eXtensible  HyperText  Markup  Language, format 


de données conçu pour représenter les pages web. 

PHP  : acronyme pour  Hypertext  PreProcessor, langage de programmation 


très utilisé dans le développement web. 

XML : acronyme de « eXtensible Markup Language », langage de balisage. 

AJAX :  acronyme de Asynchrone Javascript And Xml, est une technologie 
qui assure la communication client/serveur et  vice­versa via  le protocole 
HTTP sur une page web sans avoir à la recharger.

Page 5 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

 1  Introduction

C'est en cette fin d'année universitaire 2009­2010, et plus exactement en 
mois de Juin, que j'ai passé mon stage d'études au sein de la société Acti­
ciel, qui sera présentée en détails dans la partie qui suit. Et c'est grâce à l'in­
térêt que je porte au développement web que j'ai pu décrocher ce stage 
au sein de ma société d'acceuil.

J'essaierai de présenter dans ce rapport les objectifs de mon développe­
ment, ainsi que la méthodologie de travail employée pour arriver aux résul­
tats voulus.

Ce rapport permettra donc   de découvrir d'une façon globale la société 
Acticiel, mais surtout l'application web que j'ai réalisé durant ce stage, les 
outils utilisés pour y arriver, tout en citant vers la fin de ce rapport les difficul­
tés rencontrées durant ce stage.

 1.1  Présentation de l'entreprise Acticiel
• Historique
En 2008, Jean­Christophe Bourroux, français résident au Maroc, expert inter­
national en nouvelles technologies et en logiciels libres, créa Acticiel.
En Février 2010, deux jeunes acteurs du web marocain, Oussama Benham­
mou (éditeur du site N°1 de foot au Maroc, elbotola.com) et Mohammed El 
Ghaissani (éditeur de sites de cinéma) sont rentrés dans le capital. 
Acticiel   est   une   startup   marocaine,   une   Société   de   Services   en   Logiciels 
Libres – ou SS2L, Société de Services en Ingénierie Informatique spécialisée 
dans les logiciels libres – dont les deux principales activités sont l’intégration 
et le développement de solutions et de projets Open Source pour le Web, 
et l’édition et la co­édition de sites web. 

Page 6 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Au Maroc, Acticiel accompagne les entreprises, les offices et les institutions 
du Royaume dans leur développement en ligne, et propose des offres  clés­
en­main, de sites internet, intranet, extranet et des solutions autour des logi­
ciels libres.

• L'équipe

Acticiel   est   constitué   d’une  équipe  de   3  développeurs,  un   infographiste, 


ainsi qu'un administrateur serveur, et qui s'occupe aussi des relations clients, 
autrement dit il joue le rôle d'un commercial.

 2  Objectifs du développement

La préparation d'une base de données exploitable de CVs à partir d'enre­
gistrements sous format XML était le premier objectif de ce développement.
Après cela venait la création d'une application web permettant la manipu­
lation de la base de données créée( j'entend par manipulation tout ce qui  
est   Recherche/Consultation/Modification/Suppression)   créée   grâce   au 
Framework Code Igniter   principalement, ainsi que d'autres outils qui seront 
détaillés par la suite dans ce même rapport.

Ce travail a été confié à ZAHIM Anas, étudiant en 1ère année à l'Ecole Supé­
rieure   de   Technologie   de   Salé,   filière   « Génie   Informatiique »,   et   stagiaire 
entre le 31 Mai 2010 jusqu'aù 26 Juin 2010, sous l'encadrement du chef du 
département des services informatiques, ainsi que le développeur web de 
la société.

Page 7 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

 3  Description et méthodologie de travail

 3.1  Méthodologie du travail
Afin de toujours assurer un produit livrable au client, l'équipe au sein de la­
quelle j'ai dû m'intégrer se base sur les principes de la  méthode agile,  no­
tamment Scrum.
La méthode agile Scrum consiste à focaliser les efforts d'une équipe sur des 
fonctionnalités définis au préable(ou par la suite). Ceci afin de livrer un logi­
ciel partiellement fonctionnel et enrichie au fur et à mesure.
Le point fort de cette méthode est que le client est impliqué dans toutes les 
phases du développement pour que le produit soit en final ce qu'il espèrait.
Le projet est divisé en fonctionnalités à finir dans une durée allant d'une se­
maine à un maximum de 2 mois, et chaque fonctionnalité est divisée en 
plusieurs tâches, tout en prenant soin de bien s'assurer que la même fon­
tionnalité ne devra pas être modifié après suite à l'ajout d'une autre. 

Page 8 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

 3.2  Mise en place de la base de données

La   base   de   données   fournise   contenait   des   données   stockés   en   format 


HTML, donc inutilisables. Le but de ce travail est d'extraire ces données, et 
de les stocker dans une base de données relationnelle.

 3.3  Site web
 3.3.1  La charte graphique
La charte graphique de cette application se divise principalement en 3
parties:
➔ Une entête (Header) : Contient le logo, ainsi qu'un menu.
➔ Le bloc principale : C'est dans ce dernier où la majorité des manipu­
lations vont être réalisées.
➔ Un pied de page (Footer) : Contiendra les informations légales, mais il 
n'est là que pour ne pas faire exception aux autres sites webs, mais 
aussi pour que le deisgn du site web soit plaisant.

Page 9 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

 3.3.2  Fonctionnalités du site
Le   site   sera   doté   d'une   page   de   recherche   avancée   de   profils   afin   de 
permettre un accès aisé aux candidats. 
Après visualisation d'un profil, il sera possible de le modifier si on dispose des 
droits d'accès, sinon une connexion autant qu'administrateur s'impose.
Une   page   de   statistiques   sera   programmé   afin   d'avoir   un   peu   plus   d'­
informations   sur   le   total   des   candidats   ainsi   que   leurs   formations,   expé­
riences.

Toutes les fonctionnalités citées ci­dessus seront réalisées grâce aux outils 
expliqués en détails dans la partie qui suit.

 4  Conception et réalisation

 4.1  Langages et outils utilisés
Tous les outils et langages qui ont été utilisés pour la réalisation de ce projet 
sont  à code ouvert (Open Source), ce choix est dû au fait que ces derniers 
sont caractérisés par leurs:
➔ Accès libre;
➔ Performance, robustesse, mais sans négliger la sécurité;
➔ Facilité de se documenter sur un outil ou un autre, vu que 
n'importe qui peut contribuer à l'enrichissement des docu­
mentations;
➔ Large communauté d'entre­aide, notamment sur les forums 
de discussions; 
➔ Extensibilité; 
➔ Portabilité. Vu que ces outils peuvent être utilisés indépen­
damment de la plate­forme sur laquelle ils sont hébergés.

P.S : Le développement a eu lieu sous le système d'exploitation Ubuntu 9.04 
(Jaunty Jackalope), et grâce à l'IDE1 Aptana Studio, tout le code a été écrit 
dessus.

 4.1.1  Xmind
Xmind est un logiciel de brain storming2  et de mind mapping3(carte heu­
ristique). Il sert à stocker ses idées, puis la mise en oeuvre de diagramme 
d'un tel ou tel projet, tout en gérant l'état d'avancement de chaque fonc­
1
IDE : Integrated Development Environment ( Environnement de développement intégré)
2
Brain storming : Collecte d'idées sans tenir compte ni de l'ordre ni de l'absurdité de celles-ci.
3
Mind mapping : Carte heuristique est un diagramme qui représente les idées sous un format sémantique et hié-
rarchique

Page 10 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

tionnalité du projet, ainsi que son degré d'importance, ainsi que les dépen­
dences entre celles­ci.

Voici   un   exemple   d'un   diagramme   réalisé   à   l'aide   de   Xmind   lors   d'une 


étape donnée de la réalisation du projet faisant objet de ce rapport :

 4.1.2  PHP
PHP a été utilisé afin d'assurer le dynamisme du site web côté serveur. Plu­
sieurs extensions4 et framework ont été utilisés dans ce projet, nous citons à 
titre d'exemple :

 4.1.2.1  Tidy
Cette extension pour PHP sert à valider  du code (x)HTML/XML, la validation 
consiste   au   fait   de   rendre   le   code   (x)HTML/XML   compatible   avec   les 
standards imposés par le W3C5. Mais elle a été surtout utilisé dans ce projet 
afin  de     rendre  la  base  de  données  XML   'parsable'6    par la  librairie  Sim­
pleXML .
L'extension Tidy pour PHP se caractérise par sa simplicité d'utilisation, mais 
surtout par son extrême difficulté à être  trouvée/installée.
Voici un exemple de son utilisation dans un code PHP :
 

$tidy = new tidy;


$tidy->parseString(utf8_encode($reponse['content']));
$tidy­>cleanRepair();

 4.1.2.2  SimpleXML
SimpleXML est une extension pour PHP permettant le traitement des docu­
ments XML, le choix de cette librairie et non pas une autre, se justifie par sa 
simplicité d'utilisation (comme son nom l'indique d'ailleurs) et qu'elle répond 
à   tous   les   besoins   du   projet,   mais   aussi   parce   que   d'autres   extensions 
comme  domxml, reste très difficile à maîtriser, quoi qu'elle soit assez puis­
4
Les 3 premiers outils ont été utilisés lors de l'mportation des données depuis la base de données XML, en ce qui
concerne le framework CodeIgniter, il a surtout servi à la réalisation du site web.
5
W3C : World Wide Web Consortium est une organisation mondiale à but non-lucratif dont le but est d'assurer une
compatibilité entre les technologies, et ceci en les standarisant.
6
Parsable : On entend par le parsing, l'analyse sémantique d'un code donné

Page 11 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

sante et complète, et dotée de plusieurs fonctionnalités … qui seront com­
plètement inutile pour ce projet.

C'est grâce à SimpleXML que l'extraction des données sous format XML a 
eu lieu.

 4.1.2.3  JSON
JSON pour « JavaScript Object Notation », est un format de représentation 
de données, sous une forme nom/valeur.

Il a été utilisé dans ce projet pour stocker les langues ainsi que les niveaux 
de maitrises pour chacune dans un seul champ dans la BDD.En  voici un 
exemple :
[{
"langue":"Arabe",
"maitrise":"(Lu, Parlé et Ecrit)"
},
{
"langue":"Français",
"maitrise":"(Lu, Parlé et Ecrit)"}
}]

 4.1.2.4  Le framework CodeIgniter
La majorité de la réalisation du site web a été faite grâce à ce framework.
L'utilisation d'un framework est dû au fait qu'il propose des librairies/fonc­
tions aides, et beaucoup d'outils qui sont communs à tous les sites web, il 
aurait été complètement inutile de recoder ces choses là.

En ce qui concerne le choix de CodeIgniter, il a été fait vu 
que ce dernier a un temps d'exécution plus   court que ses 
concurrents,   ainsi   que   pour   sa   documentation   complète 
(quoi que disponible qu'en anglais). Mais aussi pour son sup­
port natif de l'architecture MVC(Model/View/Controller), qui 
sépare template(s), classes et contrôleurs7. 
Le tout est orienté objet, même la communication avec la base de don­
nées ce qui rend le code beaucoup plus structuré.

Les classes utilisées parmis celles offertes par ce framework sont :

• Config Class : cette classe a été utilisé afin de modifier la configura­
tion du framework dans certaines fonctions.

7
Contrôleur : Gère l'interaction entre l'utilisateur et le modèle(une base de données en général), contrôle aussi les ac-
tions à déclencher.

Page 12 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

• Database Class  : La classe de gestion de BDD de CodeIgniter gère 
automatiquement la connexion à cette dernière une fois les identi­
fiants   fournies.   Voici  un  exemple  de   requête  réalisé   grâce   à   cette 
classe :

$this->db->distinct();
$this->db->select('*');
$this->db->order_by('ville_natale', 'asc');
$query = $this->db->get('candidats');
//équivaut à $query = mysql_query(SELECT DISTINCT * FROM candidats ORDER BY
`ville_natale` ASC);

• Input   Class  :   Cette   classe   sert   à   faciliter   la 


récupération/vérification/sécurisation des données entrées par un uti­
lisateur( dans un champ de recherche par exemple). Je l'ai utilisée un 
peu   partout   dans   le   site   web,   mais   surtout   dans   la   page   de   re­
cherche de profils.

• Pagination Class : Automatise la gestion des liens du genre :
« < 1 23 4 5 > »  . Elle a été utilisée  dans la page de résultats de re­
cherche.

Afin d'éviter de rentrer dans des détails encore plus techniques,  seules les  
classes  ci­dessus ont été citées, et les fonctions d'aide ont été omises aussi.

 4.1.3  MySQL
J'ai utilisé MySQL comme base de données durant ce projet, pour les 
mêmes raisons pour lesquelles les autres outils ont été 
choisis8.

 4.1.4  jQuery
Comme PHP assure la dynamicité du site web côté serveur, jQuery l'assure 
côté client.
  JQuery est une bibliothèque javascript qui assure la com­
munication   serveur/client   (généralement   avec   un   script 
PHP),   sans   avoir   à   recharger   la   page,   on   entend   par   là 
AJAX9, mais pas seulement ça, il gère aussi les animations 
des éléments de la page, et dispose d'un sélecteur CSS très 
puissant, et qui fait toute sa puissance.

8
Voir 4.1 pour plus de détails sur ces raisons.
9
AJAX : pour Asynchrone Javascript And Xml, (cf. voir glossaire)

Page 13 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

JQuery a été utilisé sur plusieurs parties du site dont la plus intéressante est 
celle du formulaire de recherche, dans laquel les villes varient selon le pays 
choisi(chargé grâce à la technologie AJAX).

Toutefois, ses plugins ne font qu'enrichir ses fonctionnalités, deux d'entres 
eux ont été utilisés dans ce site web à savoir :

 4.1.4.1  jQuery Autocomplete
Afin d'assister l'utilisateur lors de sa saisie dans un champ texte, une liste de 
suggestions lui est affiché selon ce que le visiteur est en train de taper, et 
cela en temps réel.

 4.1.4.2  jQuery TableSorter
Ce plugin est implémenté dans la page de résultats de recherche, il permet 
de trier les résultats selon une colonne ou plus.

Dans  l'exemple ci­dessus le tableau a été trié suivant la ville PUIS le champ 
'Nom/Prénom'.

Page 14 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

 4.1.4.3  jQuery Accordion
Utilisé dans la page des statistiques, le plug­in jQuery Accordion permet 
d'afficher un bloc tout en prenant soin de cacher celui qui est visible avec 
un joli effet d'accordéon. Il est utilisé à des fins d'accessibilité pour la page, 
vu qu'elle est chargée de graphs/cartes.
 4.1.4.4  JqTransform
Afin de rendre les formulaires du site web plus « jolis », le plugin jqTransform a 
été utilisé afin d'assurer cette tâche.

 4.1.5  Google© Visualization API10
L'API Google© Visualization permet de créer des visualisations en se basant 
sur les données qu'on lui a fourni, 2 types(mais 4 vues différentes) de visuali­
sations ont été utilisés dans ce projet dans la page statistiques notamment :
• Geomap : C'est avec ce package que les visualisations pour les villes, 
et les pays ont été créés.
• Corechart : le camembert ainsi que les graphiques à barres ont été 
réalisé à l'aide de ce package.

 4.1.6  (x)HTML/CSS
Nul besoin de préciser que ces deux langages sont à la base de toute 
page web présente sur internet (du moins une grande partie).
Le (x)HTML a surtout été utilisé dans la partie vue/view du MVC11.

Sinon le CSS a été utilisé pour la mise en forme de la page web.

 4.2  Base de données
 4.2.1  Export/Import de la base de données en XML
La BDD d'origine(Provient de l'ancien site de Menara Jobs) ne   contenait 
qu'une seule table avec cette structure :

avec :
➔ url : l'adresse vers le CV sur l'ancien site web de Menara Jobs.

10
API : Application Programming Interface, Interface de programmation d'application, ensemble d'outils implémentés
permettant la mise en place d'applications
11
Voir plus haut, dans la partie Framework

Page 15 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

➔ content  : contient tout le CV aspiré depuis Menara Jobs, dont voici 
un aperçu :

<td>
<b>
mrym ch
</b>
<br/>

3 rue anqara appt 6 10000<br/>

Casablanca - Maroc
</td>

<td>
Date de naissance : 28/05/2008<br/>

Tél : 0668566655<br/>

Email :
<a href="mailto:yasminmeryem@yahoo.fr">

yasminmeryem@yahoo.fr
</a>
                    </td>
Cette   étape  consiste  à   extraire   de   la     base   de  données   citée  ci­dessus 
toutes les données qu'elle contient afin de les enregistrer dans une autre 
BDDR MySQL « exploitable » qui ressemblera à la fin après maintes manipu­
lations12 à ça : 

▪ Table candidats : Contient les informations personnelles(tout ce 
qui   est   coordonnées   du   déteneur   du   CV,   le   champ 
candidat_photo contient un lien direct vers la photo du candi­
dat.
12
SimpleXML, ainsi que les RegEx ont été les principaux outils utilisés pour extraire les données

Page 16 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Il reste à préciser que : 
• la base de données initiale faisait presque 200Mo, après extraction 
elle ne pesait pas plus  de 30Mo.

 5  Résultat final
➔ La page d'acceuil 
Contient tout d'abord un formulaire rapide de rechercher de profils, 
suivi de 3 profils tirés aléatoirement de la BDD.

➔ Recherche de profils : 

La page de recherche de profils contient un formulaire réparti en 3 
grandes parties (dites  Fieldset  en anglais, comprenez par cela « un 
ensemble de champs »)  à savoir :
▪ Informations personnelles.
▪ Expériences.
▪ Formations
Et ceci afin  d'assurer une recherche personnalisée et ciblée de pro­
fils.
Il est bien de préciser aussi que toutes les listes déroulantes (Pays/Ville,Do­
maine …), sont complétement dynamiques, vu qu'elles sont générées de­
puis la base de données selon les choix disponibles.
En ce qui concerne les champs de type « text«   ils sont dotés d'une 
aide sous forme d'auto­complétation(on reviendra dessus par la suite).

➔ Résultats de la recherche :

Page 17 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

10 résultats sont affichés par page, et peuvent être trié (sans avoir à rechar­
ger   la   page)     par   nom/prénom,   Date   de   naissance,   Ville,   téléphone   ou 
bien même une combinaison de ces derniers.

➔ Consultation d'un profil :

Comme son nom l'indique cette page permet la visualisation  de la totailité 
du CV d'une personne donnée.

➔ Statistiques :
La page de statistiques affichent des graphs/cartes géographiques en se 
basant à chaque fois sur un critère des 5 disponibles:

Page 18 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Domaine de formation Secteur d'acitivité

Pays13 Ville

Type de contrat

13
Le fait que le Sahara Marocain soit indépendant du Maroc dans cette carte géographique n'exprime en aucun cas
l'avis ou bien un engagement politique de la part de l'autreur du site web. Vu que cette même carte est fournise Par
Google Visualization API qui est indispensable pour assurer une meilleure présentation des statistiques.

Page 19 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

 6  Difficultés rencontrées
 6.1  Problème d'encodage de caractères 

Lors de la validation du contenu de la base de données d'origine, l'exten­
sion Tidy  de PHP crée des caractères dit html entity, qui à cause d'eux l'a­
nalyse   sémantique   (parsing)   devient   impossible   pour   SimpleXML,   ce   qui 
rend l'importation impossible, ceci est dû au fait que la base de données 
initiale n'est pas bien formatée, ce qui rend son exploitation très difficile.

Afin de remédier à ceci, plusieurs expressions régulières ont été créées afin 
de supprimer tous les caractères qui posent problème (la plupart étant des 
espaces blancs) qui sont incompatibles avec l'encodage UTF­8.

 6.2  Perte de plus de 30 000 enregistrements dans la BDD
Vu   que   le   script   créé   ne   peut   gérer   toutes   les   anomalies,   vu   le   grand 
nombre de CVs (au début il y en avait vers les 20 000, même si toutes celles  
qui ont été rencontrées lors de la réalisation du projet ont toutes été répa­
rées),   des   maintenances   s'imposaient,  durant   cela  la   requête  suivante  a 
été exécuté
DELETE FROM `formations` WHERE `nom` LIKE "%_%"

Requête qui veut dire : Supprimes de la table formations tous les enregistre­
ments qui contient un caractère.

Ce   que   j'ignorais   c'est   que   le    underscore  _   voulait   dire   un   caractère, 


concernant le pourcentage %, placé au début et en fin de la chaine veut 
dire, commençé ou/et terminé par un caractère. Ce qui est un peu le cas 
pour toutes formations, ce qui a causé le vidage de la table entière.
Et même si une sauvegarde existe déjà, son utilisation reste très difficile, vu 
qu'elle pèse 24mo, et il n'y a qu'une seule table qui devait être restauré. Ce 
qui requit un PC très puissant pour faire cette sélection.
Au moment où ces lignes ont été rédigés seul 900 enregistrements ont été 
récupérés, le reste sera récupéré au fur et à mesure.

Page 20 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Conclusion
Ainsi,   j'ai effectué mon stage de fin d'année d'études en Génie informa­
tique au sein de l'entreprise Acticiel.

Toutes les fontionnalités qui ont été fixé dès le départ, ou bien dont la plani­
fication   a   été   ajoutée   par   la   suite   ont   été   réalisées,   à   part   celle   de   la 
gestion   des   versions,   vu   qu'elle   s'est   avéré   complètement   inutile,   car   la 
gestion des versions vise tout d'abord la mise en disposition du code aux 
profits des autres participants au projet, or une seule personne s'était occu­
pé du projet, et il n'y aura qu'une seule version de la même application, rai­
son pour laquelle la fonctionnalité de la   gestion des versions a été abon­
donnée.

En ce qui me concerne, ce stage m'a été très instructif, vu que j'ai dû chan­
gé ma logique de développement pour qu'elle s'adapte avec la logique 
des Framework MVC. Certes c'est transparent pour  le visiteur du site, mais 
c'est une architecture qui donne droit à un code plus structuré et plus or­
ganisé pour le développeur, Et qui peut s'avérer utile pour une ultérieure 
modification.

Enfin, j'ai été très honoré d'avoir eu la chance de vivre une telle expérience 
au sein d'une équipe aussi motivée et expérimentée dans le domaine du 
développement web, domaine qui, je tiens à le préciser, me tient à coeur.

Page 21 de 22
Site web de repositoring de CVs avec le framework Code Igniter Zahim Anas

Références
➔ Documentation PHP, SimpleXML, Tidy : http://fr.php.net/ 
➔ Documentation MySQL : http://dev.mysql.com/doc/refman/5.0/fr/ 
➔ Documentation CodeIgniter : http://codeigniter.com/user_guide/
➔ Documentation jQuery et ses plug­ins: 
◦  http://docs.jquery.com/Main_Page 
◦  http://tablesorter.com/docs/ 
◦  http://www.dfc­e.com/metiers/multimedia/opensource/jqtrans ­ 
form/
➔ Documentation Google Visualization API : 
http://code.google.com/intl/fr­
FR/apis/visualization/documentation/index.html
➔  http://stackoverflow.com 
➔  http://siteduzero.com 

Page 22 de 22