portfolio

  • Des Tonnes de Têtes

    2017 - Un jeu sur tablette pour travailler et s'amuser autour des expressions des émotions.

  • Portail de documentation des API Overkiz

    2017 - Développement d'une appli web pour accéder à la documentation des API de la plateforme IoT d'Overkiz.

  • Meetup Développeurs Web des Savoie

    Depuis 2014 - Présentations pour le meetup Dev Web des Savoie.

  • Site web Voile Banque Populaire

    2016 - Refonte du site web de Voile Banque Populaire

  • Application mobile LCCP pour Lexmark

    2015 - Une application mobile pour gérer la collecte des cartouches vides

  • Les vaches et l'azote

    2015 - Installation interactive de vulgarisation scientifique pour l'INRA

  • World of Bacteria

    2015 - Les bactéries et le cycle du carbone, un jeu de vulgarisation scientifique pour l'INRA

  • ZenDay

    2014 - Application mobile de calendrier et gestion du temps

Site web Voile Banque Populaire

2016 - Refonte du site web de Voile Banque Populaire

Au sein de l'agence Oz Conseil, j'ai participé à la refonte du site Voile Banque Populaire, à l'aide de Drupal 8.

L'espace presse

Le projet a démarré en 2015, nous avons donc commencé le développement avec une version beta de Drupal 8. J'étais responsable entre autres des montées de version : ça a été un travail parfois complexe, certaines versions n'étant pas rétro-compatibles.

Galerie Photos

J'ai également développé un module de galerie photo s'appuyant sur Flickr. Lors de la création d'un album dans le backoffice du site, les photos et tags sont récupérés via l'API Flickr et mis en cache sur le serveur.

Une fois la sélection effectuée, une requête à l'API du site permet de générer l'archive et de la télécharger.

La galerie permet notamment de faire une sélection puis de télécharger une archive contenant les photos choisies. La sélection est simplement stockée côté client, il n'y a pas besoin d'avoir un compte.

Déploiement continu

J'ai également mis en place le système de déploiement continu avec l'aide de Gitlab CI, Dokku sur notre serveur local et gitreceive sur les serveurs distants. Nous disposions en effet de trois environnements différents :

  • dev (serveur local, accès root)
  • preprod (serveur distant, accès restreint)
  • prod (serveur distant, accès restreint)

Chaque environnement correspondait à une branche spécifique du dépôt Git, à savoir dev, preprod, master.

Seule la branche dev était accessible en écriture par les développeurs. Chaque push déployait automatiquement sur le serveur dev et ouvrait une nouvelle merge request sur la branche preprod. Si une merge request existait déjà, elle était simplement complétée.

Une fois la merge request revue et parfois corrigée, un développeur avec les droits nécessaires acceptait la merge request ce qui déclenchait le déploiement sur le serveur de preprod et ouvrait à nouveau une merge request, cette fois-ci sur la branche master. Le fonctionnement était ensuite équivalent pour la prod.

Le code et la configuration du site (exportée et versionnée) "montaient" donc de serveur en serveur jusqu'à la prod. A l'inverse, une tâche de synchronisation permettait de faire "descendre" quotidiennement un dump de la base de données et les fichiers uploadés jusque sur le serveur de dev ; les développeurs pouvaient alors récupérer manuellement ces données sur leur machine.

Même dans les meilleurs des mondes il faut parfois faire des correctifs en prod, le fait de pousser sur une branche nommée hotfix/... permettait d'ouvrir directement une merge request sur la branche master pour déployer directement sur la prod. Une merge request était également ouverte sur la branche dev pour pouvoir récupérer le correctif.

Liens