Une note sur web_cv

Posted on June 25, 2019 | 5 minute read

Comme promis dans l’édito précédent, je vais vous présenter ici mon projet web_cv, ce que c’est, où ça en est et quel est son objectif.

Si vous me suivez un peu, vous connaissez sans doute mon cv en ligne. Mais voilà, il est vieillissant, en PHP, et surtout, il est statique. C’est à dire qu’il n’y a aucune base de données derrière. Chaque fois que je rajoute une compétence ou un diplôme, c’est un array ou un champs de plus dans le code PHP. Je commit, puis je met à jour la DocumentRoot sur le conteneur via une tâche Ansible. Pas très 2019, tout ça.

J’ai commencé à penser à développer un simple CV web en Flask, un micro-framework web en Python.

Note : J’aime beaucoup le Python et je trouvais Django bien trop lourd pour ce développement. En effet, contrairement à Flask, Django est “clef en main”, il embarque donc tous les modules nécessaires dans le package original. Flask est beaucoup plus léger et simple, vu qu’il n’embarque que le strict nécessaire, le reste étant disponible sous la forme de plugins, d’où la notion de micro-framework.

Ce simple CV serait donc un gros CRUD, affichant et mettant en forme le contenu d’une base de données. De ce fait, je comptais rentrer les infos à la main en base (via un PHPMyAdmin par exemple), ce qui aurait été toujours plus agréable qu’à la main dans le code PHP. Puis je me suis dit que je voulais encore moins m’embêter, j’ai donc imaginé un backoffice permettant de populer la base de données, une fois loggué à celui-ci.

Et partant de là, qu’est-ce qui empêche de rêver à une version “nue” de cela, qui serait déployable/auto-hébergeable, un peu à la Wordpress mais pour un CV? Petit à petit, l’idée s’est transformée en une idée de CMS de CV en ligne. Et pour ce faire, voici les technos choisies/utilisées :

Maintenant que je vous ai exposé le projet, laissez-moi vous exposer l’avancement et ce qu’il reste à faire dessus. Ne vous affolez pas, il y a encore du boulot. J’utilise Trello pour mesurer l’avancement du projet, définir des tâches et des objectifs. J’ai donc terminé :

Note n°2: Je sépare et différencie évidemment les vues et les templates. Je ne vais pas faire un cours de développement Python MVT mais la vue est le code Python qui implémente les routes et passe la donnée (récupérée dans le modèle) à la template, qui elle, est en Jinja+HTML.

Modèle -> Vue -> Template

Comme vous le constatez, il reste du job. Voici donc ce que j’imagine pour la suite :

La plupart de ces tâches sont en cours. Je suis conscient que le projet est ambitieux, peut-être vous direz-vous que je n’en suis qu’au début et c’est sûrement vrai. Mais pour moi, c’est un projet de fond un peu laboratoire et c’est surtout quelque chose que je fais par plaisir.

Une fois que j’aurais une première version de mon CV en ligne, je ferais un autre article… Et encore un autre lorsque la version nue et utilisable par tous sera en ligne. Peut-être même que je ferais des articles intermédiaires au fur et à mesure que je testerais des technos, comme un article sur CodeStar.

J’écris, je teste, je scratch, je recommence… Mais je travaille activement. Ça sortira quand ça sortira mais lorsque ça sortira (répétition voulue), j’en serais fier. Cet article avait simplement vocation à vous présenter ce projet de fond que j’ai et son avancement, j’espère donc qu’il vous aura plu.

Enfin, comme dirait l’autre, more to come soon !

tags:python projets développement