Projet de construction de mon portfolio, en utilisant des technologies de haut niveau et en centrant le développement sur les données. L'idée était d'abord d'écrire mes expériences, mes projets, mon profil, ma formation, etc. et ensuite de construire un site web de portfolio autour de cela. Cela s'est terminé par un simple fichier yaml, un site web et des scripts python.

Vous lisez probablement ceci sur le site web résultant de ce projet (https://antoine.mandin.dev).

La première - et principale - partie de ce projet, ce sont les données proprement dites. J'ai condensé mes expériences, mes projets et mes compétences dans un seul fichier yaml.

La deuxième partie du projet est le site web portfolio. Il est construit en utilisant Jekyll, et hébergé en tant que page GitHub. J'ai utilisé un thème préexistant (nommé Beautiful Jekyll) auquel j'ai ajouté des styles personnalisés inspirés d'autres thèmes Jekyll. En utilisant un plugin, j'ai réussi à créer presque entièrement le site web à partir du fichier de données yaml. J'ai également implémenté une barre de recherche en utilisant la bibliothèque MiniSearch. Enfin, j'ai introduit la traduction de mon site web, initialement en anglais, et ici en français!
Au final, j'ai construit un site web statique, hébergé sur les pages GitHub, avec son propre style, son propre moteur de recherche et son propre nom de domaine.

Enfin, la troisième partie du projet était un petit module python dédié à la gestion des données du portfolio. Cela inclus la vérification du format des données et leur traduction intéligente. J'ai construit un fichier de grammaire en yaml, représentant le contenu attendu des données (par exemple, un projet doit avoir un titre, qui est un texte, et peut avoir une date de fin au format jj-mm-aaaa). En effet, l'idée était d'avoir un site web cohérent, où les projets peuvent être liés à un emploi, et un emploi à une entreprise, etc.
Ce module python a été accompagné de formateurs et de linteurs, et utilisé dans un workflow d'intégration continue, pour s'assurer que les données sont bien formatées tout au long de leur durée de vie.

Jekyll GitHub pages GitHub actions GitHub Git JavaScript CSS HTML Web UI Design Python CI/CD VS Code

View it online Source code