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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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é
.
- 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.
- 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…
- 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.
- 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.
- 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.
- 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.
- 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
.
- 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.
- 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.