Site web de repositoring de CVs avec le framework Code Igniter
Page 1 de 22
Zahim Anas
Site web de repositoring de CVs avec le framework Code Igniter
Zahim Anas
Table des matières Remerciments.................................... Remerciments............. .............................................. .............................................. .............................................4 ......................4 Glossaire................................................................................................................5 Introduction...................................... Introduction............... .............................................. .............................................. ..............................................6 .......................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
................................. ...................... ...................... ....................... ....................... ...................... ...................... ...................... .......................................... ...............................9 Site Web......................
3.3.1
La charte graphique....... graphique.............................. ............................................... .......................................9 ...............9
3.3.2
Les fonctionnalités du site............ site.................................... .............................................1 .....................100
4 Conception et réalisation....................................................................................10 4.1
................................ ....................... ....................... ...................... ...................... ........................................ .............................10 Langages et outils utilisés..................... 10
4.1.1
Xmind...........................................................................................10
4.1.2
PHP...............................................................................................11
4.1.2.1 Tidy............ Tidy................................... .............................................. .............................................. .....................................11 ..............11 4.1.2.2 SimpleXML SimpleXML...................... .............................................. ............................................... ....................................11 .............11 4.1.2.3 JSON.......... JSON................................. .............................................. .............................................. .....................................12 ..............12 4.1.2.4 Le Framework Code Igniter................................................... Igniter......................................................12 ...12 4.1.3
MySQL..........................................................................................13
4.1.4
jQuery...........................................................................................13
4.1.4.1 jQuery AutoComplete AutoComplete....................... .............................................. .........................................14 ..................14 4.1.4.2 jQuery TableSorter.. TableSorter......................... .............................................. .............................................1 ......................144 4.1.4.3 jQuery Accordion....... Accordion.............................. .............................................. .........................................15 ..................15 4.1.4.4 jqTransform...... jqTransform............................. ............................................... ............................................... ............................15 .....15
4.2
4.1.5
Google Visualization API............. API..................................... .............................................1 .....................155
4.1.6
(x)HTML/CSS.............................................................................15
Base de données.............................................................................................................................. 15
5 Résultat final.................. final......................................... .............................................. ............................................... ..................................... .................17 ....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
................................ ....................... ....................... ........................................... ................................20 Problème d'encodage de caractères..................... 20
6.2
Perte de 30 000 enregistrements dans la base de données..........................................20 20
Conclusion................................... Conclusion............ .............................................. .............................................. ...................................................21 ............................21 Références.............. rences..................................... .............................................. .............................................. ..................................................22 ...........................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;
•
JeanChristophe BOURROUX , mon ma î tre tre de stage pour sa disponibili té en cas de besoin;
•
Amine CHAOUKI, 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, AKERKOUCH, développeur web qui m'a aid é à fixer les bogues auxquels je n'arrivais pas à trouver une solution moim ê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, 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 é GNU. gales de distribution des logiciels libres des projets GNU.
(x)HTML : acronyme pour eX e Xtensible HyperText Markup Language, format de données conçu pour représenter les pages web.
PHP : acronyme pour Hypertext PreP reProcessor, langage de programmation très utilisé dans le développement web.
XML : acronyme de « eX e Xtensible Markup Language », langage de balisage.
AJAX : acronyme de Asynchrone Javascript And Xml, est une technologie qui assure la communication client/serveur et viceversa 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
1
Zahim Anas
Introduction
C'est en cette fin d'ann ée universitaire 20092010, 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 rappor rapportt permettr permettra a donc 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, JeanChristophe 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 enmain, 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
3 3.1
Zahim Anas
Description et méthodologie de travail
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
3.2
Zahim Anas
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. 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
3.3.2
Zahim Anas
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 Une pa page ge de statis statistiq tique uess sera sera progr programm ammé afin afin d'av d'avoi oirr un peu peu plus plus d' inform informati ations ons sur sur le total total des des candi candida dats ts ainsi ainsi que que leurs leurs forma formatio tions, ns, expé riences. Toutes les fonctionnalités citées cidessus 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'entreaide, notamment sur les forums de discussions; ➔ Extensibilité; ➔ Portabilité. Vu que ces outils peuvent être utilisés indépen damment de la plateforme 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 3
Xmind est un logiciel de brain storming 2 et de mind mapping (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 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 mapping : Carte Carte heuristique heuristique est un diagramme diagramme qui représente représente les idées sous un format sémantique 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 cellesci. 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 extensions 4 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 code (x)HTML/XML, (x)HTML/XML, la validation consi consiste ste au fai faitt de rendr rendre e le code code (x)HT (x)HTML/ ML/XML XML compa compatib tible le av avec ec les standards imposés par le W3C 5. Mais elle a été surtout utilisé dans ce projet afin afin de rend rendre re la base base de donn 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; $tidy-> $tidy -> parseString( parseString (utf8_encode( utf8_encode ($reponse $reponse[['content' 'content'])); ]));
$tidy> $tidy > cleanRepair(); 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 tous les les besoi besoins ns du proje projet, t, mais mais aussi aussi pa parce rce que d'a d'autr utres es exten extensio sions ns comme domxml , reste très difficile à ma î triser, triser, quoi qu'elle soit assez puis 4
Les 3 premiers premiers outils ont été utilisés utilisés lors de l'mportat l'mportation ion des données données depuis la base de données 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" "langue" "Arabe",, "maitrise"::"(Lu, Parlé et Ecrit)" "maitrise" }, { "langue"::"Français" "langue" "Français",, "maitrise"::"(Lu, Parlé et Ecrit)"} "maitrise" 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 cution plus plus court court que 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 : •
7
Config Class : cette classe a été utilisé afin de modifier la configura tion du framework dans certaines fonctions.
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 actions à 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-> $this ->db db-> ->distinct distinct(); (); $this-> $this ->db db-> ->select select(('*' '*'); ); $this-> $this ->db db-> ->order_by order_by(('ville_natale' , 'asc' 'asc'); ); $query = $this $this-> ->db db-> ->get get(('candidats' 'candidats'); ); //équiva //équ ivaut ut à $q $que uery ry = my mysql sql_q _que uery( ry(SEL SELECT ECT DI DISTI STINC NCT T * FR FROM OM ca cand ndida idats ts OR ORDE DER R BY `ville_natale` ASC);
•
à Inpu Inputt Clas Classs : Cette tte class lasse e sert faci facililite terr 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 peu pa part rtou outt da dans ns le site site web, web, mais mais surt surtou outt da dans ns la pa page ge de re cherche de profils.
•
Pagination Class : Automatise la gestion des liens du genre : « < 1 2
3
4 5 > »
. Elle a été utilisée dans la page page de r ésultats de re
cherche. Afin d' éviter de rentrer dans des d étails encore encore plus plus techniques, techniques, seules les les classes cidessus 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 municati munication on serveur serveur/clie /client nt (généralem ralement ent av avec ec un script 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 cidessus 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 plugin 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 API 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( d'origine(Prov Provient ient de l'ancien l'ancien site de Menara Menara Jobs) ne contena contenait it 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 :
mrym ch
3 rue anqara appt 6 10000 Casablanca - Maroc
| Date de naissance : 28/05/2008 Tél : 0668566655 Email :
[email protected]
|
Cette étape consiste à extra extraire ire de de la ba base se de de donn donn ées citée cidessus 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 :
▪
12
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.
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 recherche personnalis 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'autocompl é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 ger la pa page) ge) pa parr nom/p nom/prrénom, Date de naissance, Ville, téléphone ou bien même une combinaison de ces derniers. ➔
Consultation d'un profil :
Comme son nom nom l'indique cette page page permet la visualisation 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
6
Zahim Anas
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 mantique (parsing) (parsing) devient devient impossibl impossible e pour SimpleXML, 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 UTF8. 6.2 Perte de plus de 30 000 enregistrements dans la BDD Vu que le script cr éé ne peut gérer toutes toutes les les anomal anomalie ies, s, vu le grand 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 _ voulai voulaitt dire dire un cara caract ctè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 gesti gestion on des des versi versions ons,, vu qu'ell qu'elle e s'est s'est avéré complètemen tementt inutile inutile,, car 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 gestion des des version versionss 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 Framework MVC. Certes Certes c'est transparent transparent pour pour le visiteur du site, mais 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 http://dev.mysql.com/doc/ .mysql.com/doc/refman/5.0 refman/5.0/fr/ /fr/
➔
Documentation CodeIgniter : http://codeigniter.com/user_guide/
➔
Documentation jQuery et ses plugins: ◦
http://docs.jquery.com/Main_Page
◦
http://tablesorter.com/docs/
◦
http://www .dfce.com/metiers/mult http://www.dfce.com/m etiers/multimedia/openso imedia/opensource/jqtrans urce/jqtrans form/
➔
Documentation Google Visualization API : http://code.google.com/intl/fr FR/apis/visualization/do FR/apis/ visualization/documentation/ cumentation/index.html index.html
➔
http://stackoverflow.com
➔
http://siteduzero.com
Page 22 de 22