CV

Analyste / Développeur web 2.0

Expériences professionnelles

Depuis avril 2011 : Multi-Impact (Reims) – Analyste / Programmeur

  • Développement d’applications liées à l’assurance de prêts

Septembre 2010 – Mars 2011 : Informatique Pour Vous (Reims) – Développeur web

  • Développement de projets relatifs aux annonces légales
  • Développement d’un moteur WebService REST (PHP/MySQL) pour communication interserveurs (4D et PHP) et utilisateur (RSS)
  • Développement d’une interface web enrichie (HTML / JS / CSS / XML)

Juin 2007 – Août 2010 : Cabinet d’ingénierie AIDA (Reims) – Développeur web

  • Analyse de projets : choix techniques et technologiques
  • Gestion nom de domaines, messagerie, hébergement
  • Développement d’applications web (planning, annuaire, gestion)
  • Création et suivi de sites web applicatifs (intranet) et/ou informatifs (internet) en HTML / CSS / Javascript / XML / PHP / MySQL
  • Installation / gestion de serveurs Linux (Debian) et Mac (OSX Server)
  • Configuration d’installations réseau (routeurs, VPN etc.)
  • Infogérance : hotline / télé-maintenance pour aider les clients en difficulté

Avril 2004 – Décembre 2006 : IUFM Champagne Ardenne (Reims) – Webmestre
Juin 2001 – Septembre 2003 : Divers – Technicien réseau


Formations

Septembre 2003 – Avril 2004 : CNAM (Reims) – Formation Webmestre

Septembre 1999 – Juin 2001 : IUT Génie Télécommunications et Réseaux


Informations complémentaires

  • J’ai le permis B et une voiture
  • Je privilégie les solutions open-source (Joomla, jQuery etc.) et standardisées pour offrir le plus d’évolutions et de passerelles possibles vers d’autres applications
  • Je suis grand consommateur d’univers heroic-fantasy et fantastiques au cinéma, en littérature et bande dessinée et en jeux.

Moteur WebService REST (2010)

Objectif : greffer sur l’existant une communication inter-serveurs pour faire circuler l’information automatiquement

Mon rôle

  • Etude du modèle REST
  • Analyse des besoins et des spécificités propres aux applications et aux technologies en place
  • Développement du moteur (PHP / MySQL / XML)

Fonctionnement

  • réagit aux instructions CRUD (Create / Read / Update / Delete) du protocole HTTP (POST / GET / PUT / DELETE)
  • réponse proprietaire en XML pour rétrocompatibilité avec l’existant
  • développement objet avec héritage de classes
  • système d’abonnement webservice qui permet de pousser l’information en convertissant les champs pour s’adapter aux serveurs distants

Applications

Une application développée en externe alimente une base de données d’un serveur en production. Impossible de modifier la structure des tables SQL (risques d’effets de bord imprévus importants), le moteur s’adapte à la base et réagit comme prévu aux instructions REST et permet à l’application en production d’être alimentée par deux autres sources supplémentaires (un serveur Apache et un serveur 4D).

Une application interne de référence disposant d’informations cruciales est maintenue à jour et à chaque modification d’enregistrement (mise à jour ou nouvel enregistrement), informe les serveurs qui sont abonnés à ses données des changements effectués pour qu’ils les répercutent sur les applications qu’ils hébergent.

Une application interne est mise à jour par cinq serveurs différents, réagit aux changements qui lui sont appliqués par les utilisateurs et en informe le serveur d’origine.

Projet Scan / OCR (2010)

Objectif : avoir une information issue de différents médias (dans ce cas des journaux), qualifiée et regroupée dans une base commune

Mon rôle

  • participation à l’étude et à l’évolution du projet
  • étude et choix techniques : recherche de solution de reconnaissance de caractères (Abbyy, Tesseract), recherche de scanners adaptés, recherche d’outils graphiques etc.
  • étude et mise en place de la base de données
  • développement de l’application web en HTML (PHP / MySQL / JS / CSS / XML)

Projet scindé en deux parties : une partie "scan" et une partie "qualification de l’information".

Scan des journaux

Résumé des actions :

  • l’utilisateur se connecte sur l’application web. L’administrateur lui a assigné des journaux qu’il est chargé de traiter et l’utilisateur choisi celui qu’il va scanner. Il saisit également la date de parution et le numéro de l’édition.
  • en fonction du format du journal, il utilise le scanner et le logiciel adéquat qui enregistre les images dans un dossier partagé sur le serveur.
  • l’utilisateur valide les scans qu’il vient d’effectuer et recommence sa procédure pour un autre journal.

Informations techniques :

  • partage Samba sur serveur Debian. Chaque utilisateur a son répertoire partagé qu’il alimente avec les scans qu’il produit.
  • l’application déplace les fichiers du dossier de l’utilisateur vers un dossier commun, renomme les fichiers avec un nom unique, converti les scans au format de fichier adéquat et enregistre toutes les informations nécessaires dans une base de données.
  • utilisation des lignes de commandes Unix en PHP, utilisation de ImageMagick, utilisation de la librairie GD en PHP pour rotation des images en cas de besoin.

Qualification de l’information

Résumé des actions :

  • l’utilisateur se connecte à l’application web et obtient la liste des scans à qualifier, triés par importance.
  • l’utilisateur choisit la zone de la page à traiter qui correspond à un article, l’application convertit la zone en texte.
  • l’utilisateur corrige éventuellement le texte et le qualifie à l’aide d’outils à sa disposition.
  • lorsque toute la page a été traitée, l’utilisateur le signale et l’application lui soumet une autre page à qualifier.

Informations techniques :

  • utilisation de la librairie "interface" de jQuery pour tracer des zones (en drag & drop) en surbrillance à l’image
  • utilisation de la librairie GD en PHP pour découper les zones désignées et enregistrer des fichiers images temporaires et modifier l’image pour neutraliser les zones traitées
  • utilisation de l’OCR Open Source Tesseract (package b52) pour convertir les images temporaires en texte
  • utilisation d’expressions régulières pour trouver dates, URL, email etc pour mise en surbrillance dans le texte produit, que l’utilisateur n’ai qu’à cliquer dessus pour aider à la qualification

Projet : Planning web 2.0 (2009)

Objectif : offrir une gestion de planning adaptée aux besoins du client

Mon rôle

  • Analyse des besoins du client, suivi de l’application, gestion des demandes d’évolution
  • Creation et gestion de la base de données
  • Développement de l’application web (PHP / MySQL / JS / CSS / XML)

Contexte

Ce projet s’inscrivait dans le cadre d’une recherche d’alternative au langage de programmation 4D dont la mise à jour de l’époque (v11) était incompatible avec l’ERP développé et utilisé par le cabinet d’ingénierie dans lequel je travaillais. L’ERP (proprietaire) fournit une gestion de contacts/clients, de collaborateurs, de stocks, de facturation, un planning et d’autres outils développés spécifiquement. Je me suis donc inspiré de l’expérience issue du développement de cet ERP pour en construire une version web.

Besoins du client (un institut médicalisé pour enfants)

  • gestion (ajout/suppression) des adultes et des enfants et agencement en groupes
  • possibilité d’un temps de déplacement associé au rendez-vous
  • iconographie et couleurs spécifiques pour représenter les déficiences des enfants
  • statistiques
  • duplication de planning "type"

Informations

  • interface en drag & drop (saisie des rendez-vous par sélection de la plage horaire, déplacement des rendez-vous etc.) : utilisation de la librairie "interface" de jQuery
  • Menus personnalisés (des administrateurs, des utilisateurs pouvant saisir, d’autres ne pouvant que consulter etc.)

Aperçu

Exemple du planning

Suivre

Recevez les nouvelles publications par mail.