Mon cyberfolio

Où l'on parle de projets "made in Romain DUCHER".

Certains logiciels et certains sites possèdent des morceaux  de code écrits de ma main. En voici quelques uns.

Cyberfolio professionnel

Contribution à l'ERP Dolibarr

Mai 2014

Lien :  https://github.com/Dolibarr/dolibarr/pull/1605.

Suppression multiple pour les produits et les services  dans les devis, les factures et les commandes clients. C'est une  fonctionnalité que nous avions implémenté  pour notre propre Dolibarr et que nous avions voulu  reverser à la communauté.

Ce que j'ai réalisé :  codage de la solution, gestion de la contribution à Dolibarr.

Technologies notables : 
  • PHP : du bon vieux PHP bien cliché comme on n'en fait  plus et comme personne ne veut plus en faire.

CC Piwik

Juin 2014

Lien :  https://github.com/code-couleurs/cc_piwik.

CC Piwik est  une interface PHP pour la Piwik Reporting API.

Ce que j'ai réalisé :  création de la solution (architecture du code + codage).

Technologies notables : 
  • PHP 5 : La librairie a été écrite en PHP.

Piwik-autologin

Juillet 2014

Lien :  https://github.com/code-couleurs/drupal-piwik-autologin.

Plugin Drupal pour se connecter automatiquement à  partir d'un site sous Drupal à l'installation de  Matomo (anciennement "Piwik")  mesurant les statistiques Web de ce dernier.

Ce que j'ai réalisé :  codage du plugin, gestion de la soumission du plugin à Drupal.

Technologies notables : 
  • Drupal 7 : le projet est un plugin Drupal.

Contributions au CMS e-commerce Thelia

Mars-Septembre 2015

Contributions à Thelia que j'ai réealisé  dans le cadre de mon travail chez OpenStudio.

Ce que j'ai réalisé :  codage des contributions, relations avec les personnes s'occupant de Thelia concernant  lesdites contributions.

Technologies notables : 
  • Thelia 2 : l'objet de mes contributions.
  • PHP : Thelia est écrit en PHP.
  • Smarty : langage de template alors utilisé par Thelia 2.

Contributions à des modules Thelia 2

Mars-Septembre 2015

Maintenance et évolutions de modules Thelia existants.

Ce que j'ai réalisé :  codage de la maintenance (ou de l'évolution), soumission des travaux sous forme de contribution open-source, relations avec la personne responsable du module au sein de l'entreprise.

Technologies notables : 
  • Thelia 2 : ce sont des modules pour Thelia 2.
  • PHP : les modules sont écrits en PHP.
  • Smarty : langage de template alors utilisé par Thelia 2.
  • HTML : modifications dans les templates liées au module.

Page d'estimation de travaux

Avril-Mai 2015

Lien :  https://www.peretti.fr/estimez-vos-travaux-estimez-vos-gains.

Page de simulation de coûts de travaux et d'aides  financières pouvant financer ces travaux.

Ce que j'ai réalisé :  crétion du module Drupal chargé de calculer les  aides financières, codage du backend de celui-ci.

Technologies notables : 
  • Drupal 7 : la page est propulsée par un module Drupal.

Module Thelia "Free online products alert"

Juin 2015

Module Thelia permettant d'être averti lorsqu'un  produit devient gratuit. Il permet d'envoyer des courriels à  des clients intéressé par le produit gratuit.

Ce que j'ai réalisé :  création du module, gestion de la maintenance de celui-ci, soumission du module à l'équipe interne chargée  de gérer les modules Thelia.

Technologies notables : 
  • Thelia 2 : ce sont des modules pour Thelia 2.
  • PHP : les modules sont écrits en PHP.
  • Smarty : langage de template alors utilisé par Thelia 2.
  • HTML : modifications dans les templates liées au module.

Module Thelia "Diaporama manager"

Juin 2015

Module Thelia pour insérer des diaporamas dans des descriptions.

Ce que j'ai réalisé :  création du module, gestion de la maintenance de celui-ci, aide à l'intégration du module dans un projet, soumission du module à l'équipe interne chargée de gérer les  modules Thelia.

Technologies notables : 
  • Thelia 2 : ce sont des modules pour Thelia 2.
  • SQL : gestion des diaporamas dans la base de données de Thelia.

Simulations d'aides financières pour des travaux écologiques

Juillet-Septembre 2015

Lien :  https://www.hellobank.fr/fr/client/notre-offre/credit/credits-consommation/souscription.

Système de calcul de coûts de travaux et  d'aides financières pour des travaux. L'utilisateur rentre  les résultats de son  DPE  ainsi que des données personnelles. Sachant cela, le système  calcule les économies énergétiques possibles  ainsi que de potentielles aides financières pouvant financer  les travaux (crédit d'impôts, prêts à taux  zéro…). Dans le cas de ce client (Hello Bank), on  rajoute la possibilité d'un prêt de la part de la banque.
Voir le lien nécessite d'avoir un espace client chez Hello  Bank. N'ayant pas un espace personnel chez eux, je suppose que le lien que je vous donne est celui vers le projet auquel j'ai contribué  à l'époque.

Ce que j'ai réalisé :  mise en place des aides financières, suivi des formules de calcul des aides et des avantages  proposés par Hello Bank, codage de l'export des données, codage de diverses tâches en backend.

Technologies notables : 
  • Thelia 2 : le système est propulsé par Thelia 2.

Cyberfolio personnel

Reyn Tweets

Décembre 2011-Août 2013

Client Twitter pour Windows, Linux et Symbian^3  écrit en Qt.
J'avais décidé de créer ce client Twitter car  je ne trouvais pas de clients Twitter qui me satisfasse. J'ai alors  pris la décision d'utiliser mes talents de développeur  afin de me créer quelque chose qui soit comme je le désire.
Le client Twitter devait tourner sur mes plateformes du moment : Windows,  Linux et Symbian^3 (mon smartphone du moment était un  Nokia N8-00).  D'oû le choix de Qt pour ce développement multiplateformes.
Le nom "Reyn Tweets" vient de ma passion pour le jeu vidéo  Xenoblade Chronicles.  L'une des citations les plus connues du jeu est Now it's Reyn time!,  que j'ai déformé en now it's Reyn Tweets!  afin de nommer ce logiciel.

Technologies notables : 
  • Qt : la technologie de base sur laquelle reprose le logiciel.
  • QML : le langage utilisé pour la conception de l'interface.
  • JavaScript : utilisé pour l'interface, avec en plus l'intégration  de librairies JavaScript n'étant pas conçues pour  fonctionner sur une interface en QML.
  • QMake : pour l'automatisation de la compilation.
  • Architecture REST : l'API de Twitter est une API REST, qu'il aura fallu dompter.
  • OAuth : méthode d'authentification utilisée par Twitter.
  • Python 3 : gestion du multiplateforme pourles cibles Makefile supplémentaires.
  • Doxygen : pour la documentation.

Traduction de Tweetian

Novembre 2012-Mai 2013

Lien :  https://www.transifex.com/dicksonleong/tweetian/tweetian/.

Collaboration à la traduction du client Twitter Tweetian.
Tweetian était à l'époque mon client Twitter de prédilection sur mon smartphone Nokia sous Symbian (Nokia N8-00). L'application n'était initialement disponible qu'en anglais. Mais un jour son développeur a décidé de l'ouvrir aux autres lanques moyennant une traduction communautaire. Je me suis dit que si je voulais mon client Twitter en français alors c'était une occasion en or pour aller me le chercher. C'est ainsi que j'ai participé à sa traduction en français et à la maintenance de celle-ci.

Technologies notables : 
  • Transifex : la plateforme de traduction.
  • Anglais : la langue de base de Tweetian, à connaître pour bien traduire.

libRT

Août 2013-Septembre 2013

Librairie pour gérer des API REST en Qt.
La conception de cette librairie est en fait plus ancienne que le  Août 2013 mentionné ici. LibRT est  à l'origine la partie du code de Reyn Tweets chargée  d'interagir avec Twitter ainsi que tous les autres services tiers  (parmi lesquels TwitLonger).  La création de cette librairie vient d'une volonté  de ma part d'isoler la brique connexion de Reyn Tweets afin d'en  faire une lbrairie séparé qui soit réutlisable  dans d'autres projets.
J'ai ensuite décidé d'aller encore plus loin en  mettant en place une structure générique sur laquelle  tous les services utilisant libRT viendraient s'appuyer de  maniére indépendante les uns des autres, sans par  exemple que la partie Twitter n'ait des dépendances chez  Disqus ou TwitLonger et vice-versa.
Le nom "libRT" signifie librairie  Reyn Tweets, en  référence à ses origines. J'ai aussi choisi  ce nom car l'abréviation sonne comme le mot liberté.

Technologies notables : 
  • Qt : la technologie de base sur laquelle reprose le logiciel.
  • QMake : pour l'automatisation de la compilation.
  • Architecture REST : libRT doit gérer des API REST.
  • OAuth : isolé parmi les utilitaires de la librairie.
  • Python 3 : gestion du multiplateforme pourles cibles Makefile supplémentaires.
  • Doxygen : pour la documentation.

Reyn Tests

Octobre 2013

Surcouche de Qt  Test afin de simuler des suites de tests.
Lors de l'écriture de tests unitaires pour un projet personnel,  probablement Reyn Tweets ou libRT, je déplorais l'absence de  la possibilité d'écrire des suites de tests. J'ai alors  décidé d'écrire cette surcouche afin de pouvoir  simuler ces suites de tests à la manière de xUnit  (JUnit, PHPUnit, …) que je voulais utiliser.
Le nom est de ce projet est composé du Reyn commun  à mes précédents projets ainsi que du mot  Tests pour souligner ce dont il est question.

Technologies notables : 
  • Qt : la base pour la surcouche, notamment le module Qt Test.
  • QMake : pour l'automatisation de la compilation.
  • Python 3 : gestion du multiplateforme pourles cibles Makefile supplémentaires.
  • Doxygen : pour la documentation.

Bing Wallpaper

Mai-Septembre 2015

Lien :  https://github.com/air-dex/bing_wallpaper.

Calendrier d'images Bing du jour pour Windows et Linux.
Je voulais une telle application, qui au passage permettrait de  pouvoir définir lesdites images en tant que papier-peint.  J'avais alors trouvé un site Internet affichant les images  Bing selon leur pays et leur date. J'avais aussi réussi  à percer les mystères de son API maison et à  récupérer les images comme je le voulais grâce  à elle. Mais le site n'existe plus depuis quelques temps…

Technologies notables : 
  • Qt : la technologie de base sur laquelle reprose le logiciel.
  • QML : le langage utilisé pour la conception de l'interface.
  • JavaScript : utilisé pour l'interface, avec en plus l'intégration  de librairies JavaScript n'étant pas conçues pour  fonctionner sur une interface en QML.
  • QMake : pour l'automatisation de la compilation.

Dumper

Septembre-Octobre 2015

Lien :  https://gitlab.com/air-dex/Dumper.

Module Thelia 2 pour réaliser facilement un  export de la base de données à partir de l'administration  de Thelia.
C'est un projet personnel inachevé qui m'a un peu servi de  sas de décompression à la fin de mon contrat chez  OpenStudio.
Le nom vient du mot anglais dump parce qu'avec un anglicisme  ce module réalise des dumps de base de données.

Technologies notables : 
  • Thelia 2 : ce sont des modules pour Thelia 2.
  • PHP : les modules sont écrits en PHP.
  • Smarty : langage de template alors utilisé par Thelia 2.

Reyn Disqus

Avril-Mai 2016

Lien :  https://github.com/air-dex/reyn-disqus.

Client Disqus pour  Windows, Linux et Android écrit en Qt.
À l'instar de Reyn Tweets avec Twitter, ce projet a  été motivé par la volonté d'avoir un client  Disqus qui me convienne sur les plateformes que j'utilise courramment.  J'utilisais souvent l'application Disqus de mon Windows Phone d'alors  (un Lumia 1020) et je voulais la même chose sur mon nouveau  smartphone de l'époque, à savoir un LG G5.
Le nom est composé de mon traditionnel Reyn ainsi que  du service ici visé, à savoir Disqus.

Technologies notables : 
  • Qt : la technologie de base sur laquelle reprose le logiciel.
  • QMake : pour l'automatisation de la compilation.
  • Architecture REST : pour pouvoir communiquer avec l'API de Disqus.
  • OAuth : afin de s'authentifier auprès de Disqus sur ce logiciel.
  • Python 3 : gestion du multiplateforme pourles cibles Makefile supplémentaires.
  • Doxygen : pour la documentation.

DoxyQBS

Août 2017

Lien :  https://github.com/air-dex/doxyqbs.

Module Qbs  pour générer de la documentation avec  Doxygen.
Le module a été conçu à une époque  où les développeurs de Qt envisagaient une solution  maison nommée Qbs  comme successeur de QMake à l'horizon de Qt 6. Utilisant  beaucoup Qt dans mes projets personnels, j'avais décidé  de m'intéresser de plus prêt à Qbs. J'avais  codé ce projet afin de pouvoir facilement générer  la documentation de mes futurs projets Qt utilisant Qbs. Mais la roue  a tourné depuis et les développeurs de Qt ont  abandonné Qbs au profit de CMake  pour remplacer ce bon vieux QMake…
Le nom du module est bien évidemment un mot-valise entre  Doxygen et Qbs.

Technologies notables : 
  • Qbs : le projet est un module Qbs.
  • QML : Qbs utilisait QML pour ses fichiers de configuration.

Flickr Browser

Janvier-Avril 2019

Lien :  https://gitlab.com/air-dex/flickr-browser.

Visionneuse photo pour données personnelles  Flickr hors-ligne.
Flickr fut pendant longtemps mon service de prédilection  pour publier des photos et des albums photos, qu'ils soient publics  ou plus confidentiels (avec une visibilité limitée).  J'utilise la version gratuite de Flickr depuis longtemps, mais  celle-ci fut fortement limitée début 2019, avec  notamment une limite de 1000 photos maximum que mon compte  dépassait largement.
Afin de ne pas perdre les précieux; souvenirs contenus dans  ces photos, j'ai alors décidé de télécharger  mes données personnelles Flickr et de bâtir un programme  capable de consulter les photos et les albums en consultant  uniquement les données hors-ligne récupérées  auprès de Flickr. Flickr Browser est également  conçu pour pouvoir tourner de manière portable,  sur une clé USB contenant le programme et les données  Flickr. Enfin, la visionneuse est conçue en priorité  pour Windows car c'est le système d'exploitation  majoritairement utilisé par ceux souhaitant consulter mes  (anciennes) photos Flickr sur leurs ordinateurs.
Le nom du logiciel vient du fait qu'il permet de parcourir  (Browse) ce qui était autrefois des données Flickr.

Technologies notables : 
  • Qt : la technologie de base sur laquelle reprose le logiciel.
  • QML : le langage utilisé pour la conception de l'interface.
  • QMake : pour l'automatisation de la compilation.
  • JSON : les données récupérées  auprès de Flickr sont au format JSON.
  • Powershell : gestion du multiplateforme pourles cibles Makefile supplémentaires.
  • CMake : pour la compilation de certaines dépendances du projet.

Cielo

Juin 2019

Lien :  https://gitlab.com/air-dex/cielo.

Simulation de classements de football suivant la  méthodologie  ELO.
Ce projet est né d'une question toute bête que je me  suis posé un jour : et si le classement de Ligue 1  était un classement ELO ? Je connais depuis longtemps le  site World Football Elo Ratings  qui calcule ça pour les sélections nationales, du coup j'ai eu  envie de savoir ce que cela donnait pour un championnat national, en  l'occurence la Ligue 1.
J'ai choisi Rust pour développer ce programme car je venais  d'apprendre Rust en autodidacte et je voulais voir ce que je valais  en Rust loin des tutoriels.
Le projet est actuellement en pause parce que je recherche un moyen  plus satisfaisant de récupérer les données  footballistiques. Et aussi parce qu'il a déjà rempli  son principal objectif, à savoir satisfaire ma curiosité.
Le nom du programme est un mot-valise entre  ChampIonnat et  Elo. La logique aurait voulu que je conserve  le h du ch initial de championnat,  mais je n'aime pas la consonnance fécale du mot Chielo  que cela aurait produit. Il y a le mot ciel dans Cielo,  ce qui est nettement plus joli que chier dans Chielo.

Technologies notables : 
  • Rust : Cielo est écrit dans ce langage.
  • CSV et JSON : formats dans lesquels sont les données actuellement utilisées.
  • Mathématiques : pour calculer les points des équipes.

Site personnel

Janvier 2020-

Vous êtes ici. Pour plus  d'informations, veuillez aller sur la  page de ce site qui en parle.

Technologies notables : 
  • HTML, CSS et JavaScript : les classiques du Web front-end.
  • Sass (format SCSS) : pour les feuilles de style, CSS étant trop archaïque.
  • Sculpin : le générateur de site statique utilisé  pour concevoir ce site.
  • Twig : pour les templates HTML.
  • Powershell : script automatisant la génération du site.
  • GitLab : forge logicielle utilisée pour gérer le projet.
  • GitLab CI : pour déployer le site en ligne.
  • Bootstrap : pour les composants graphiques et le reset.
  • Inkscape : pour dessiner la favicon.
  • Apache HTTP Server : pour tester le site en local, au delà du PC de  développement.