Moules,
Ma chère et tendre ayant une collection assez imposante de recettes de cuisine, disséminées comme il se doit dans des cahiers, classeurs, feuilles plus ou moins volantes, magazines et livres plus traditionnels, elle a récemment décidé de rationaliser tout ça et de les indexer sur ordinateur (je n'ai pas dit "numériser", juste indexer).
L'objectif en deux mots est assez évident mais consiste à pouvoir retrouver plus facilement une recette par mot-clé, mais également de pouvoir les filtrer en n'affichant par exemple que les recettes végétariennes, ou celles contenant un ou plusieurs ingrédients.
Bien sûr, la phase de saisie va être longue et laborieuse, mais c'est assumé.
Au départ elle a commencé sur Libreoffice Calc, qu'elle maîtrise déjà en partie, mais en y regardant de plus près j'ai vite vu que ce n'était pas la solution la plus adaptée, ni surtout la plus évolutive et maintenable.
Je cherche donc un genre de CMS qui permettrait de définir la structure de la "base" directement depuis une GUI, de même que d'y ajouter/modifier/supprimer des données.
J'ai trouvé Cockpit qui est franchement pas mal et qui pourrait presque faire le job via l'interface admin mais il manque la recherche fulltext et les filtres complexes (type "toutes les recettes contenant les ingrédients X et Y").
En gros il faudrait quelque chose qui permette depuis une interface (web de préférence) de créer une structure EAV et de la remplir. Puis évidemment de l'interroger.
Aurais-tu un soft intéressant qui pourrait répondre à ce besoin ?
(Note que là ce sont des recettes, mais c'est finalement un genre de gestionnaire de collections assez générique que je cherche, qu'on adaptera. Et non, les gestionnaires de collections que j'ai trouvés ne font pas du tout le job.)
# Recherche fulltext
Posté par _kaos_ . Évalué à 1. Dernière modification le 24 mai 2020 à 18:12.
Salut,
Alors d'abord, bon courage pour la partie saisie :)
Ensuite, vu comme ça, j'aurais dis "bin c'est un job pour elasticsearch ça !".
(Attention, la partie sécurisation est plus hard, mais si c'est dans le foyer… who cares? ;) )
Matricule 23415
[^] # Re: Recherche fulltext
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 1.
Alors oui tout à fait, ou MongoDB ou même n'importe quelle base de données relationnelle.
Mais en plus du moteur interne ce qu'il me faudrait c'est surtout une interface "simple" qui permette de gérer la structure (entités/champs/relations), la saisie les données à proprement parler, et leur consultation.
Cockpit gère magnifiquement bien la partie structure, et plutôt bien la partie saisie (même si ça peut vite être encore plus laborieux que ça ne pourrait être dans mon cas). Par contre pour la consultation… il faut monter une appli qui interroge l'API REST mise à disposition (normal hein, c'est son but à la base).
[^] # Re: Recherche fulltext
Posté par _kaos_ . Évalué à 1. Dernière modification le 24 mai 2020 à 18:49.
Salut,
Bin oui mais non, elasticsearch est justement pas relationnel… et c'est ça son pouvoir "magique"
Il se construit un indexe inversé des termes utilisés, donc la recherche devient hyper simplifiée quand il s'agit de chercher.
Tu met tout plus ou moins en vrac et il se dépatouille avec tout ça :)
A nouveau par contre, même si j'ai bien aimé la partie facilité d'usage, la partie sécurisation, là… j'ai perdu quelques dents. Mais si c'est interne… bof, on s'en fout.
Matricule 23415
[^] # Re: Recherche fulltext
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 1.
Oui je vois ce que tu veux dire. Je ne sais malgré tout pas comment gérer la saisie dans ce cas, pour que par exemple l'ingrédient X d'un recette R1 fasse bien référence à une donnée précise (utilisée par un autre recette R2), qui pourrait éventuellement être enrichie plus tard (type, etc.).
[^] # Re: Recherche fulltext
Posté par _kaos_ . Évalué à 1. Dernière modification le 25 mai 2020 à 07:37.
Salut,
Je n'ai peut-être pas bien compris le problème.
Tu rentre les recettes R1, R2, R3… Rn avec leur composition, ça c'est la partie "création", si on veut. Et quand tu as ingrédientA, ingrédientZ, ingrédientG, en une petite requète de "sélection", ça te sort toutes les recettes qui contiennent ces ingrédients.
Ce n'est pas ça ce que tu veux ?
Matricule 23415
[^] # Re: Recherche fulltext
Posté par _kaos_ . Évalué à 1.
Re,
Ah j'ai peut-être compris au final.
Il faut laisser elastic se charger de tout ça. C'est le but de l'index inversé. Il n'y a juste rien à faire ;)
Matricule 23415
[^] # Re: Recherche fulltext
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 1.
Oui je crois comprendre, mais je ne saisis malgré tout pas quelle GUI va me proposer - par exemple - la liste déroulante des ingrédients quand je crée une recette. À moins que je ne la code moi-même (ce que j'essayais d'éviter jusque-là puisque je supposais que ce genre de besoin générique existe bien quelque part).
[^] # Re: Recherche fulltext
Posté par _kaos_ . Évalué à 2.
Salut,
Ah non, faut pas bosser comme ça avec elastic.
Selon ton niveau de compétences en dev, je dirais :
Voilà. Effectivement, il y a un peu de dev à faire pour rendre ça "à sa sauce" (si je puis dire ;) ). Mais rien qui ne me semble insurmontable.
Matricule 23415
[^] # Re: Recherche fulltext
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 1.
Oui je vois, effectivement c'est peut-être une méthode plus efficace. Faut que je me documente un peu plus sur ES à ce sujet.
[^] # Re: Recherche fulltext
Posté par _kaos_ . Évalué à 1.
Salut,
Dès fois, la simplicité pour l'utilisateur est meilleure que de le forcer à faire des trucs qu'il n'a pas super envie de faire, genre cliquer sur plein de boutons.
Si à chaque ingrédient qu'elle n'a pas saisi au préalable, il faut qu'elle aille dans un menu spécial pour ajouter ses nouveaux ingrédients (et donc potentiellement perdre toute sa saisie de recette)… Tu risque de vite être au pain et à l'eau ;)
Mon idée, c'est que tu fais un truc super basique de chez basique, quelques champs texte libre, tu délègue tout le reste au moteur. C'est son boulot de savoir dans quelle partie d'un document est écrit un mot, c'est fait pour.
ES va se baser sur lucene pour découper en petits mots tous les paragraphes écrits, il va mettre ça dans son index inversé, et au moment de la requète, selon ce que tu lui demande, il va retrouver les documents.
Matricule 23415
# Tellico
Posté par wismerhill . Évalué à 5. Dernière modification le 24 mai 2020 à 19:14.
Essaie tellico, c'est un gestionnaire de collections.
Il y a des types de collections pré-définis (livres, vins, jeux, …) auxquels on peut ajouter des champs personnalisés, vori vaire son type sur mesure.
On peut ensuite faire des recherches, ou des tris, sur base des différent champs.
[^] # Re: Tellico
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 2.
Je l'ai vu passer mais j'avais deux problèmes avec ce soft : c'est du KDE (ok c'est réducteur, mais j'ai pas envie d'installer 36 libs KDE sur les PC), et c'est une appli lourde.
Merci quand même, je vais quand même y jeter un oeil plus précis !
[^] # Re: Tellico
Posté par wismerhill . Évalué à 4.
Je le trouve plutôt léger à l'usage, mais c'est vrai que je suis en bureau plasma.
Si tu préfère GTK, il y a gcstar dans le même genre.
[^] # Re: Tellico
Posté par NeoX . Évalué à 5.
je penses qu'il parlait du fait que c'est une application sur la machine et non une application WEB/CMS qui serait sur un serveur est accessible peut importe l'appareil de la maison (tablette, smartphone, ordi)
[^] # Re: Tellico
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 1.
Exactement, merci de la précision :)
[^] # Re: Tellico
Posté par jnanar (site web personnel) . Évalué à 3.
J'ajoute qu'avec Tellico, il est possible d'exporter les données au format HTML pour avoir un petit site statique.
Il y a aussi https://github.com/thinkle/gourmet (dernier commit il y a 11 jours)
Trouvé via ce lien.
https://opensource.com/life/15/11/organize-your-cooking-open-source-recipe-manager
Je ne sais pas si il peut exporter facilement par contre.
Krecipes et OpenEats ont l'air abandonné.
[^] # Re: Tellico
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 2.
Gourmet est pas mal en effet ! On perd le côté générique que je cherchais initialement, mais au moins il est bien adapté au besoin.
Il possède notamment le champ "Source" qui permet justement de préciser où se trouve la recette si on ne met pas les instructions, ce qui permet de la retrouver.
Je suis tenté !
[^] # Re: Tellico
Posté par jnanar (site web personnel) . Évalué à 2.
Quelle que soit la solution sélectionnée, n'hésite pas à faire un retour via un journal ou autre. C'est toujours intéressant. :-D
[^] # Re: Tellico
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 2.
Je viens d'en faire un journal : https://linuxfr.org/users/nanawel/journaux/reciphpes-gestion-et-indexation-de-recettes-sous-symfony
[^] # Re: Tellico
Posté par jnanar (site web personnel) . Évalué à 2.
Merci beaucoup ! Pour agrémenter le journal et assaisonner la discussion, je vais répondre dessus. merci beaucoup pour ton retour très intéressant.
# Pour faire ça tu peux utiliser zim par exemple
Posté par Nodeus . Évalué à 1. Dernière modification le 24 mai 2020 à 23:28.
zim permet de saisir du texte de le classé dans une arborescence que tu définis et permet de faire des recherche full text ou par mots clef dans ton arborescence de fichier.
Il écrit ses fichiers au format texte dans un répertoire.
Perso je l'utilise pour gérer mes prises de note dans tous les domaines et ça fait du volume.
il est disponible dans toute bonne distribution et même sous windows
pour te faire une idée
http://www.zim-wiki.org
[^] # Re: Pour faire ça tu peux utiliser zim par exemple
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 1.
Définitivement un soft intéressant que je vais garder sous le coude, mais pas assez structuré pour mon besoin très "database-oriented".
Merci quand même !
[^] # Re: Pour faire ça tu peux utiliser zim par exemple
Posté par NeoX . Évalué à 1.
Justement, à l'heure du full-text, de l'index inverse, le "Database oriented" c'est pas un peu dépassé ?
Tu fais un fichier par recette, puis le moteur du wiki va savoir chercher dans toutes les fiches les mots "farine de châtaigne" "jambon de parme"
pour trouver une recette de bruschetta avec du pain de châtaigne et des tranches de jambons.
maintenant si tu veux faire des trucs plus complexe comme composer un menu à partir de ce que tu as dans le frigo, peut-être faudra-t-il une base relationnelle avec les proportions d'ingrédients de chaque recette, et un beau formulaire pour saisir les recettes en cliquant sur des boutons (ce qui va etre long et fastidieux)
[^] # Re: Pour faire ça tu peux utiliser zim par exemple
Posté par Nodeus . Évalué à 1.
Dans ton cas d'utilisation pourquoi un besoin "database orientied"?
[^] # Re: Pour faire ça tu peux utiliser zim par exemple
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 2.
Notamment pour gérer le cas des données complexes (emplacements, ingrédients, etc.) et pour pouvoir gérer les filtres de types :
- "recettes avec X et Y sans Z"
- "recettes avec X mais sans Y"
- "recettes végétariennes dans l'emplacement E"
Mais peut-être que je n'ai pas une vision suffisamment large de ce qu'il est possible de faire sans SGBD, je suis un peu trop dedans au quotidien pour être objectif ;)
[^] # Re: Pour faire ça tu peux utiliser zim par exemple
Posté par dib2 . Évalué à 1.
Les recettes de cuisine c'est assez complexe car la recherche impose de l'inférence. C'est même un exemple célèbre des implémentations Prolog. Tu confies Prolog à ta compagne et elle s'en sortira sans bloatware.
[^] # Re: Pour faire ça tu peux utiliser zim par exemple
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 1.
Haha oui maintenant que tu le dis j'ai d'ailleurs dû étudier cet exemple en cours.
Mais non, on va pas faire du Prolog ;)
[^] # Re: Pour faire ça tu peux utiliser zim par exemple
Posté par dib2 . Évalué à 1.
C'est pourtant efficace, il y a du backtracking et de la contrainte. Si Prolog déroute l'informaticien, un peu de Scheme devrait lui plaire, tout cela sans SGBD car l'on a affaire à des données non structurées avec de la recherche par filtrage. Tu as de la chance d'avoir un tel problème à résoudre.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.