La Lanterne Rouge

La Lanterne Rouge

Warning: Geek Inside

Publié le par Nanawel
Publié dans : #dev | #php | #web
reciphpes!

reciphpes!

Un besoin est apparu récemment à la maison, qui est que les recettes de cuisine s'accumulent sur divers supports - livres, magazines, feuilles volantes, etc. - et qu'il devient difficile d'en retrouver une précise, et pire encore de savoir quelle recette permettrait d'utiliser cet ingrédient qui squatte le placard/frigo/congélateur depuis déjà bien trop longtemps.

reciphpes! Indexez et gérez vos recettes

Après une longue mais - étonnamment - infructueuse recherche du logiciel qui nous permettrait d'indexer ces recettes facilement et rapidement (de préférence), je me suis résolu à coder le bousin moi-même1.

Après tout, c'était l'occasion rêvée de découvrir un peu Symfony 4 avec un vrai objectif, et non un simple tutoriel (et ça tout dev vous confiera que c'est un peu la panacée).

Comme l'idée était d'aller vite et de centrer l'application sur la recherche, j'ai d'abord commencé à utiliser MongoDB et le connecteur Doctrine idoine, en me disant "bah disons que toutes les recettes sont des documents, et on met ça en vrac on arrivera bien à les ressortir".

Ho ho. la. mauvaise. idée.

Je la fais courte, mais mon besoin était clairement bien plus adapté à une base de données relationnelle, surtout si comme d'habitude, je refusais au final de faire des bricolages et des trucs immaintenables. Parce que. 

Il y a aussi le fait que MongoDB et le connecteur Doctrine ODM sont ultra-limités dès qu'on cherche à faire des choses un peu évoluées comme des équivalents de "jointures" en SQL.

Après deux bonnes semaines de travail, frustrations, augmentation sensible du trafic entrant de StackOverflow depuis mon IP et prenages de tête en série, j'ai enfin obtenu un résultat satisfaisant qui m'a permis de le "pousser en prod", c'est à dire à l'installer sur Usul pour utilisation réelle et... laborieuse - mais indispensable - phase de saisie des recettes.

Quelques captures des écrans de reciphpes!Quelques captures des écrans de reciphpes!
Quelques captures des écrans de reciphpes!Quelques captures des écrans de reciphpes!Quelques captures des écrans de reciphpes!

Quelques captures des écrans de reciphpes!

Le résultat est encore loin d'être totalement satisfaisant et il manque un paquet de fonctionnalités (dûment notées et priorisées), mais la base est là :

  • Gestion des recettes, avec champs :
    • nom
    • emplacement
    • tags
    • ingrédients
    • saison
    • instructions
  • Gestion des ingrédients
  • Gestion des emplacements (livres, magazines, etc.)
  • Gestion des tags
  • Saisie facilitée avec navigation au clavier et auto-complétion (tags, ingrédients)
  • Formulaire de saisie en masse (pratique lors de l'indexation d'un livre)
  • Recherche par mot-clé et tag
  • Import CSV (beta)
  • Entièrement responsive, car utilisation privilégiée du mobile pour la consultation
D'autres captures des écrans de reciphpes!D'autres captures des écrans de reciphpes!
D'autres captures des écrans de reciphpes!D'autres captures des écrans de reciphpes!

D'autres captures des écrans de reciphpes!

Le tout est évidemment sous licence libre (MIT) et une image Docker publique est disponible.

Les instructions d'installation sont disponibles ici :

https://github.com/nanawel/reciphpes

Le tout étant en cours de dev et d'amélioration, des mises à jour seront sûrement disponibles régulièrement les prochaines semaines.


Je n'ai appris l'existence de Grocy qu'après la publication de la première version de reciphpes! mais dans tous les cas ce logiciel - bien que très attirant et auquel je rêve de trouver une place au quotidien - est trop complexe pour le cas d'utilisation visé.

Commenter cet article