Gestionnaire de recettes et de listes de courses

Version de démo et de test

a marqué ce sujet comme résolu.

Bonjour à tous,

Depuis un certain temps maintenant, je développe dans le plus grand secret un gestionnaire de recettes de cuisine et générateur de listes de courses. Au départ, il s’agissait simplement d’un outil que je voulais pour mon usage personnel ; mais en discutant avec des gens de mon entourage, il s’avère que cela intéresse du monde. Je vous présente donc ici le résultat du développement, avec en prime en avant-première un accès à l’outil.

C’est par ici : https://courses.cpages.org/index.php/utilisateurs/connecter

Vous remarquez que le design ressemble étrangement à celui de ZdS. Et pour cause : j’aime beaucoup ce design et je n’ai moi-même aucun talent de graphiste. Donc je me suis honteusement inspiré de l’existant.

Pourquoi, comment ?

Un constat simple : les courses, c’est pénible

L’idée est assez élémentaire : faire les courses, c’est quand même pénible. Et faire une liste de courses, ça peut parfois être fastidieux, surtout lorsque les idées viennent à manquer. L’idée est donc de pouvoir enregistrer nos recettes préférées, en précisant bien la liste des ingrédients et leurs quantités.

Puis, au moment de faire ses achats, il ne reste plus qu’à sélectionner les recettes que l’on veut ; cela aboutit à la génération d’un fichier pdf qui liste les courses à faire. Le petit bonus : les achats sont triés par rayon. Il ne reste plus qu’à récupérer le pdf pour aller au magasin avec.

Technologies utilisées et développement

Venons-en aux technologies utilisées. N’étant pas spécialement passionné par la programmation, j’ai utilisé le framework PHP CodeIgniter. Les raisons ne sont pas très nobles : PHP, c’est facile à héberger, je connaissais déjà et CodeIgniter a vraiment un excellent ratio temps d’apprentissage/efficacité.

J’ai développé tout ça pendant mon temps libre, au début pour un usage totalement personnel. J’ai donc adopté certaines pratiques qui ne sont pas, je l’admets, très déontologiques pour un programmeur puriste. :D La première est que le code est peu, voire pas documenté. Deuxièmement : concernant le remplissage et la validation des formulaires, je me suis très fortement appuyé sur HTML5 et je ne souhaite pas investir du temps pour tout recoder et vérifier la validité des données. En revanche, j’ai été aussi rigoureux que possible côté base de données pour que le modèle relationnel soit propre. Autre point un peu moins crucial, mais qui ne me semble pas poser de gros problème de nos jours : certains formulaires dynamiques s’appuient sur du JS et, à nouveau, je ne souhaite pas passer de temps à proposer une solution qui s’en passe.

Licence et partage du code source

L’ensemble du projet est (évidemment !) sous licence GPLv3 et le code est téléchargeable sur github.

Fonctionnalités

Pour utiliser l’appli, il faut se créer un compte (c’est rudimentaire : identifiant, mot de passe, adresse mail). Une fois inscrit et connecté, on a accès à quatre menus : rayons, produits, recettes, courses.

  • L’outil « Rayons » permet de créer les rayons de votre magasin, pour y associer les produits.
  • Dans la rubrique « Produits », on crée l’ensemble des produits que l’on est susceptible d’utiliser dans une recette ou d’acheter. Il faut évidemment les associer à un rayon préalablement créé.
  • Suite à quoi, on va se diriger vers le menu « Recette » qui, comme son nom l’indique, permet de créer des recettes. Vous saisissez la liste de vos ingrédients, qui ne sont autres que les produits enregistrés. On peut préciser la quantité de chaque ingrédient (utile pour la liste des courses).
  • Enfin, dernière étape : générer la liste des courses. Cela se fait en deux phases.
    1. Vous sélectionnez toutes les recettes que vous souhaitez ajouter à votre liste de courses.
    2. Les ingrédients sont extraits de vos recettes, éventuellement combinés (ex : si vous avez des potimarrons dans deux recettes, les quantités vont s’additionner pour ne former qu’une seule ligne). Au besoin, vous modifiez les quantités et vous retirez les produits que vous avez déjà en stock. On peut aussi faire l’inverse et ajouter des produits individuellement (par exemple, de la nourriture pour votre chat :-° ).
    3. Arès validation, vous pouvez récupérer le PDF avec votre liste de courses.

Fonctionnalités manquantes… et qui le resteront probablement

Il n’est pas possible, à l’heure actuelle, de modifier une liste de courses déjà validée. Si votre liste est ratée, il faut la refaire.

Il faut se créer un compte utilisateur pour que chaque personne inscrite dispose de ses propres recettes, listes de courses, etc. Le partage de recettes n’est pas prévu puisqu’il s’agit au départ d’un projet pour usage personnel.

Autre blague : il n’est pas possible de réinitialiser son mot de passe en cas de perte ou d’oubli. À l’inscription, on demande une adresse mail… Mais en fait, elle ne sert à rien (pour le moment). Si j’observe que l’appli a vraiment du succès, ne travaillerai à un moyen pour récupérer les mots de passe perdus. C’est sans doute le point faible principal, à ce jour, de l’application.

Je veux essayer !

J’ai créé un compte de démonstration, avec le login demo et le mot de passe demo. Pour le moment, il n’y a aucune donnée enregistrée puisque le lancement est très récent. N’hésitez pas à jouer avec le compte de démo et à vous en créer un si vous le souhaitez. Mais attention, ne prenez pas les choses trop au sérieux (en tout cas pour l’instant). En effet, le code n’a jamais été testé « grandeur nature » donc je n’ai pas pu évaluer la robustesse du code en production publique.

Et la suite ?

Je suis évidemment ouvert à toutes les remarques et je suis évidemment à même d’accepter des pull requests. Mais j’avoue que, maintenant que j’ai un outil qui fonctionne correctement, je le partage avec plaisir et j’assure le suivi des bugs majeurs, avec une motivation modérée à développer des nouvelles fonctions.

Voilà, n’hésitez pas à tester, à vous créer un compte et à me faire des retours. Merci de m’avoir lu. o/

Oui, sans l’ombre d’un doute ! Surtout pour les recettes, en fait. Il n’est pas rare que je récupère des recettes dans des livres ou sur Internet, mais que je les adapte un peu avant de les enregistrer dans le soft. Combiné avec la gestion du nombre de convives, le résultat me donne satisfaction.

Pour mes courses quotidiennes, je fais sans en général. Mais lorsque j’ai des idées précises de repas, ou des invités (bon, ça c’était y a un peu de temps, épidémie oblige), c’est vraiment efficace. À la fois pour ne rien oublier, et aussi pour avoir les bonnes quantités. À l’inverse, quand je manque d’inspiration, en survolant la liste des recettes, ça donne des idées.

Salut,

J’ai eu la même problématique et j’ai développé ma propre solution. La partie recette n’est pas très poussée. En revanche, ma liste de course est faite directement sur le site, avec la possibilité d’indiquer quand un produit a été mis dans le chariot; je trouve ça plus pratique que le PDF (ce qui est également possible via mon site), même imprimé.

Je te mets le lien du sujet sur le forum, si tu veux récupérer quelques idées : https://zestedesavoir.com/forums/sujet/10720/mes-menus/

Ça fait un moment que je me dis qu’il faut que je refasse tout de zéro, en changeant de techno, en full API avec React, mais je dois bien avouer que je n’ai pas le courage (pas trop le temps, et n’ayant jamais développé avec React…).

+1 -0

Ça fait un moment que je me dis qu’il faut que je refasse tout de zéro, en changeant de techno, en full API avec React, mais je dois bien avouer que je n’ai pas le courage (pas trop le temps, et n’ayant jamais développé avec React…).

John

Une raison particulière ? La navigation est extrêmement fluide tel quel, et j’aurai tendance à penser qu’un front-end JS n’améliorerait rien à ce niveau.

Salut,

J’ai eu la même problématique et j’ai développé ma propre solution. […]

John

Je suis content que tu sois passé sur le forum. En effet, pour être très honnête, l’idée m’est venue lorsque j’avais testé ta solution au moment où elle avait été présentée sur ZdS. Mais j’ai mis énormément de temps à me mettre au développement, et dans l’intervalle, je n’ai pas réussi à retrouver mesmenus.fr.

Je me souviens de l’avoir testé et en effet, de n’avoir pas été totalement fan des recettes, notamment par impossibilité de faire varier le nombre de convives. En revanche, clairement l’interface que tu proposes est plus performante et agréable.

Je te mets le lien du sujet sur le forum, si tu veux récupérer quelques idées : https://zestedesavoir.com/forums/sujet/10720/mes-menus/

Le coup de la checklist pour pointer les achats faits au fur et à mesure est vraiment chouette ! À combiner avec un tri par rayons, et ça donne le truc optimal ou presque. De là à dire que j’aurai la volonté pour le coder, il ne faut pas exagérer. :D

En tout cas, merci pour les retours.

Ça fait un moment que je me dis qu’il faut que je refasse tout de zéro, en changeant de techno, en full API avec React, mais je dois bien avouer que je n’ai pas le courage (pas trop le temps, et n’ayant jamais développé avec React…).

John

Une raison particulière ? La navigation est extrêmement fluide tel quel, et j’aurai tendance à penser qu’un front-end JS n’améliorerait rien à ce niveau.

tleb

Plusieurs raisons :

  • Je consomme souvent des API, je voudrais en créer une.
  • Je voudrais me lancer dans React, et je pense que le projet s’y prête bien.
  • Je voudrais avoir du temps réel sur ma liste de course générée : si je fais les courses et que ma femme rajoute un produit, pouvoir le voir sans recharger la page.
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte