Des exemples de semainiers étalés sur une table

Projet Weekly : présentation et cadrage

Publié le 2024-04-26 par DarkChyper

Il y a quelques jours, j'ai eu la chance de suivre une formation sur VueJS dans le cadre de mon emploi. Quatre jours intensifs que j'aimerais rapidement mettre à profit afin de ne pas trop oublier la quantité d'informations que j'ai ingurgité. Même si je vais en avoir besoin dans le cadre de mon travail, il risque de se passer plusieurs semaines avant que je ne puisse refaire du front-end.

Cela tombe bien, j'ai toujours une idée de projet personnel à réaliser qui n'attendait qu'un prétexte pour que je le développe.


Mais je me connais assez pour savoir que si je pars directement sur le code, le projet ne verra jamais le jour, comprendre ici : ne sera jamais en production et je ne l'utiliserai jamais.

En même temps, rédiger tout un tas de documents qui finiront à la poubelle, j'ai vraiment la flemme. Damned.

En plus, qui dit nouvelle technologie veut également dire nouvelles façons d'initialiser la structure de fichier du projet, lancer un nombre incroyable de commandes... Ça serait pas mal de capitaliser là-dessus.

Et je ne sais pas si vous l'avez remarqué, mais c'est assez simple de trouver du contenu qui t'explique comment démarrer un projet, la documentation pour développer est souvent bien fourni, par contre quand il faut commencer à mettre en production, il n'y a plus personne. Pouvoir demander un coup de main, et de nouveau capitaliser dessus ne serait pas de trop.


Bon si je résume, je ne me jette pas sur le code, mais je commence par cadrer le besoin et les fonctionnalités, et j'avance pas à pas. Un peu comme ces développeurs "super star" qui codent en public sur Twitch avec un chat qui propose des solutions quand ils bloquent.

Sauf que je n'ai pas une grande audience, que je n'aime pas trop coder en direct (syndrome de l'imposteur). Par contre le pas-à-pas, cela me parle, c'est ça de grandir avec des jeux en tour par tour.

C'est en faisant ce constat que je me suis rappelé que j'essaye de tenir un blog. Et que rien ne m'empêche d'écrire une suite d'articles qui ont pour but de faire avancer le projet, tout en partageant les ressources que j'aurai chiné sur le web.


Weekly, un semainier tout bête

Le projet, c'est simplement de créer un semainier. Voilà.


À la base, un semainier, c'est juste un bout de papier avec les jours de la semaine, et les repas que l'on veut préparer pour les midis et soirs. On a toujours fait comme cela avec mon épouse, c'est pratique pour faire la liste de courses et ne pas oublier de cuisiner un repas.

Notre modèle a évolué en quelques années, passant de la simple liste de plats à un modèle élaboré avec la météo, quand on y pense, le mode de garde de notre fils, les sorties...

Comme on en avait assez de refaire une grille toutes les semaines, on a créé un modèle vierge, que l'on peut imprimer pour le remplir à la main. Parfois, on remplit tout sur un tableur avant de l'imprimer.


Ça marche bien.


Et si le projet n'aboutit pas ou si le projet tombe en panne, on pourra toujours revenir à nos papiers, donc je suis serein.


Cadrage du projet


Commençons par lister les règles métiers et les fonctionnalités que j'aimerais retrouver.


Certaines fonctionnalités restent volontairement vagues, je ne sais pas encore comment je veux les implémenter.

Je fais des choix très personnels dans ce besoin, le but n'est pas de créer une application pour tous les besoins de tout le monde.

Si la base du projet vous intéresse, le code sera ouvert et libre.


Pour les technologies choisies :


Je pourrai faire ce projet en full Symfony avec des templates twig, mais le but est ici de s'exercer à Vue.

Je vais héberger ce projet sur un raspberry pi à la maison, je ne vais pas mettre en place de docker, des virtual host apache2 suffiront, et je maîtrise bien cette mécanique.

Le code sera hébergé en 2 repository sur Gitlab.


Cette première étape fait déjà un article un peu long. J'espère que cela vous intéresse. J'attaquerai la création du front-end dans le prochain billet qui arrivera... quand il pourra :)