PlanEat, un planificateur de repas

a marqué ce sujet comme résolu.

Salut les agrumes,

Ca faisait longtemps que je n’avais pas posté sur le forum, meme si je regarder tout le temps ce qu’il se passe ;)

Avec ma compagne, on s’est lancé dans un petit projet de planificateur de repas. Je ne suis pas développeur android du tout, c’est pas mal ma seconde application (l’autre je faisais juste le back-end natif) et c’est encore en alpha-alpha, mais ca commence à prendre forme.

L’idée

Le but de l’application est d’être utilisé par nous pour juste avoir une liste de courses sur les recettes qu’on planifie dans les 2 semaines à venir.

L’app est donc composé en 4 tabs:

  • L’agenda, pour ajouter/planifier des recettes par jour
  • La partie découverte de recettes qui va chercher des recettes dans divers coins des Internet (dont https://cha-cu.it)
  • La partie des recettes enregistrées, où on peut ajouter ses propres recettes
  • La partie liste de courses où on peut trier par rayon ou par recettes.

Quelques screenshots

L'agenda
L’agenda
Les détails d'une recette
Les détails d’une recette
Shopping list
Shopping list

L'ajout des ingrédients favoris

Où j’en suis?

Pour le moment, comme je l’ai dit c’est une pre-alpha. Mais je peux commencer à prendre les retours.

Pour ceux qui le souhaite, voici l'apk. Mais j’ouvre ce sujet ici, car si vous voulez rejoindre l’alpha sur le play store, vous pouvez m’envoyer votre gmail et je vous ajouterais à la liste. Il me faudrait une 20aine de testeurs pour pouvoir passer l’application en public.

En ce moment les diverses briques de bases sont présentes, que ce soit le parsing de recettes, d’ingrédients, de classification de recettes en catégories.

Il manque surtout à rendre l’application robuste, continuer le design, ajouter des assets.

Salut les agrumes,

Ca faisait longtemps que je n’avais pas posté sur le forum, meme si je regarder tout le temps ce qu’il se passe ;)

Avec ma compagne, on s’est lancé dans un petit projet de planificateur de repas. Je ne suis pas développeur android du tout, c’est pas mal ma seconde application (l’autre je faisais juste le back-end natif) et c’est encore en alpha-alpha, mais ca commence à prendre forme.

L’idée

Le but de l’application est d’être utilisé par nous pour juste avoir une liste de courses sur les recettes qu’on planifie dans les 2 semaines à venir.

L’app est donc composé en 4 tabs:

  • L’agenda, pour ajouter/planifier des recettes par jour
  • La partie découverte de recettes qui va chercher des recettes dans divers coins des Internet
AmarOk

super ! Pour la découverte, tu arrives à créer une recette sur paneat depuis une recette "externe" ou il faut la créer manuellement ?

Je veux bien tenter le coup si tu as besoin: j’avais testé hello fresh et c’est rapidement très cher ! Si une appli peut m’inciter à varier un peu mes repas, je suis intéressé :)

La partie recherche va les chercher sur plusieurs sites oui (4 pour le moment) et parse les ingrédients/ tag les recettes pour homogénéiser le style

Pour l’early access sur le Play store je peux t’envoyerr une invitation avec un Gmail)

Le but premier ici est pas tant de faire de nouvelles recettes (au moins pas dans les premières versions), mais de pouvoir les mettre dans un agenda

+0 -0

Ah c’est marrant, je voulais développer ça aussi. Mais avec des besoins différents : planification pour batch cooking, bon support des régimes (notamment végé), et surtout, avec une estimation des calories et des macronutriments. Je n’ai à ce jour, trouvé aucune application qui regroupé tout ce dont j’avais besoin. Pour la gestion de mes recettes, j’utilise CookBook, mais l’estimation calorique fonctionne qui si on écrit en anglais, et la planification est chiante à faire.

Je ne pourrais pas tester ton appli, car je suis sur iOS, cependant j’encourage l’initiative :)

Je suppose que derriere ca utilise OpenFoodFacts pour l’estimation?

Je ne pense pas que j’aurais cette fonctionnalité, mais j’aime bien les estimés (estimés de coût et de calories). Je les aient mis dnas mon tracker, au cas où j’ai le temps :D

Pour l’instnat je vais laisser les choses "simples".

Déjà faire le parsing de sites pour identifier les ingrédients dans un format semblable (disons que je ne veux pas voir "Paprika au goût" ou "5 bouquets de fines herbes hachées finements" dans la liste de courses finales, juste "paprika"/"fines herbes" etc) c’est déjà un petit sport. Classifier les recettes et les ingrédients aussi. Pour l’instant mon classifier à déjà mis des recettes à la crevettes dans le tag végétarien…

Je suppose que derriere ca utilise OpenFoodFacts pour l’estimation?

AmarOk

Je me suis planté. C’est StashCook qui estime les calories et les macronutriments. Sur CookBook ou Recipe Keeper, il faut les saisir manuellement. Je n’ai pas la moindre idée de comment il calcul cela.

Pour l’instnat je vais laisser les choses "simples".

AmarOk

Tu as bien raison ! Derrière tout « logiciel » complexe, se cache à l’origine un petit logiciel simple.

Pour l’instant mon classifier à déjà mis des recettes à la crevettes dans le tag végétarien…

AmarOk

Je te rassure, les listes de courses Apple font pas mieux. J’ai vu récemment "Allume-feux" être mis dans la catégorie "Soins pour bébés" et "Décapant radiateur" dans "Soins pour animaux" (true story) :-°

viki53

La seule solution viable que je vois c’est de les classifier soit meme dans une base de données.

Sauf que l’access aux bases déjà existantes à l’air de couter un bras. Alors pour se faire, perso je cherche l’ingrédient sur un site d’épicerie et ca me donne le rayon. Je compte faire ca pour les ingrédients les plus utiles. Et avoir au moins une base de données de base ship avec l’app.

Pour classifier les recettes par tag, j’ai entraîné un modèles tflite qui le fait sur l’appareil (le dataset fait ~400 000 recettes, mais classées automatiquement, donc peut contenir des erreurs :/)

Pour identifier unité/quantité/ingrédient dans une phrase j’ai 2 approches. Un LLM fine-tuné (ca marche assez bien, mais trop gros pour être dans l’app et trop lent sur mon serveur) et l’approche actuelle est basée sur un vieil article du New-York Times (https://archive.nytimes.com/open.blogs.nytimes.com/2015/04/09/extracting-structured-data-from-recipes-using-conditional-random-fields/?_r=0) et tourne sur mon serv en temps qu’API (probleme c’est qu’il identifie qu’un seul ingrédient par ligne au maximum donc "sel et poivre" est pas compté.

Pour l’instant mon classifier à déjà mis des recettes à la crevettes dans le tag végétarien…

AmarOk

Je te rassure, les listes de courses Apple font pas mieux. J’ai vu récemment "Allume-feux" être mis dans la catégorie "Soins pour bébés" et "Décapant radiateur" dans "Soins pour animaux" (true story) :-°

viki53

La seule solution viable que je vois c’est de les classifier soit meme dans une base de données.

Sauf que l’access aux bases déjà existantes à l’air de couter un bras. Alors pour se faire, perso je cherche l’ingrédient sur un site d’épicerie et ca me donne le rayon. Je compte faire ca pour les ingrédients les plus utiles. Et avoir au moins une base de données de base ship avec l’app.

Pour classifier les recettes par tag, j’ai entraîné un modèles tflite qui le fait sur l’appareil (le dataset fait ~400 000 recettes, mais classées automatiquement, donc peut contenir des erreurs :/)

Pour identifier unité/quantité/ingrédient dans une phrase j’ai 2 approches. Un LLM fine-tuné (ca marche assez bien, mais trop gros pour être dans l’app et trop lent sur mon serveur) et l’approche actuelle est basée sur un vieil article du New-York Times (https://archive.nytimes.com/open.blogs.nytimes.com/2015/04/09/extracting-structured-data-from-recipes-using-conditional-random-fields/?_r=0 et tourne sur mon serv en temps qu’API (probleme c’est qu’il identifie qu’un seul ingrédient par ligne au maximum donc "sel et poivre" est pas compté.

AmarOk

hELLO!

Je vois ce que tu veux dire. La solution de classifier soi-même dans une base de données paraît réaliste pour un projet personnalisé, surtout si l’accès aux bases de données existantes est hors de prix. Par contre, ta méthode de chercher les rayons sur un site d’épicerie me semble assez fastidieuse à long terme, non ? Peut-être qu’en automatisant cette partie avec un web scraper, tu pourrais gagner du temps.

Concernant la classification par tags, c’est cool que tu aies pu entraîner un modèle tflite, même si la qualité dépend des données. Pour éviter les erreurs, peut-être qu’ajouter une couche de validation manuelle sur les tags les plus populaires pourrait renforcer la fiabilité.

Quant à l’extraction des unités, quantités et ingrédients, c’est vrai que les LLM fine-tunés sont souvent trop lourds pour une app mobile. Mais l’approche CRF, même avec ses limitations (comme l’exemple du "sel et poivre"), reste intéressante, surtout si tu as déjà une API fonctionnelle. Peut-être qu’un petit post-processing pour gérer les listes d’ingrédients sur une seule ligne pourrait résoudre ce problème ?

Par contre, ta méthode de chercher les rayons sur un site d’épicerie me semble assez fastidieuse à long terme, non ? Peut-être qu’en automatisant cette partie avec un web scraper, tu pourrais gagner du temps.

Elle est automatique et seulement réalisée pour les ingrédients hors de la base de données et déjà catégorisé à terme.

Pour éviter les erreurs, peut-être qu’ajouter une couche de validation manuelle sur les tags les plus populaires pourrait renforcer la fiabilité.

Oui, c’est certain que le dataset de base est à améliorer/vérifier.

Peut-être qu’un petit post-processing pour gérer les listes d’ingrédients sur une seule ligne pourrait résoudre ce problème ?

J’ai quelques idées pour changer un peu les choses (ou bien je supporte la détection de multiples ingrédients/quantité/unité dans une phrase). Dans un premier temps ce sera surement "good enough, au pire tu rajoutes les ingrédients manuellement" et j’itérerais selon les besoins :D

Idéalement j’aimerais le faire sur l’appareil et pas dépendre de mon API, ce serait déjà pas mal.

Les focus du moment sont l’édition de recettes et contacter les sites que je scrap (parce que bon, j’aimerais éviter de me retrouver à gérer des petites lettres)

Est-ce que le logiciel prends en compte le standard JSON+LD meta data ? Cela permettrait une synchronisation avec Nextcloud notamment, et une bonne complémentarité.

qwerty

Pour l’instant ça exporte rien. Par contre la plupart des sites dont ça parse les données le propose et c’est cette partie que je récupère quand c’est possible (cooking.nytimes.com, marmiton ou ricardocuisine.com le propose par exemple)

Bon matin !

Pour information, dans 11j je devrais pouvoir mettre PlanEat en beta sur le play store (les 20 alpha-testeurs ont été atteind)

Cependant voici une petite todo qu’on voit pré-v1:

  • Avoir un éditeur de recettes
  • Refaire le tour du design complet pour voir les soucis d’UI/UX qu’on voit
  • Plus d’icones d’ingrédients
  • Le design de 2/3 pages quand elles sont vides
  • Une base de données minimales pour catégoriser les ingrédients par rayon
  • Contacter un juriste et les sites vers lesquels je fais des requêtes

Donc ca pourra prendre un peu plus de temps.

La v2 aura la possibilité de synchroniser les agendas entre 2 appareils. C’est pas mal la grosse fonctionnalité que je design en ce moment et la dernière brique qui manquerait pour avoir une application qui nous convient.

Apres ca sera surement des petites optimisations et long cleanup. Le 80/20 classique.

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