🧠C’est quoi exactement un “cellier” dans Deazl ?
Ce n’est PAS juste “liste d’items que j’ai chez moi”. Pour être utile, il doit être :
✔ Intelligent
Connaître :
quantités
dates d’expiration
unités
catégories
niveau de stock (faible / normal / trop)
usage dans les recettes
✔ Connecté aux recettes
⇒ « Tu peux faire cette recette car tu as tout sauf X » ⇒ « Il te manque juste 200 g de beurre »
✔ Connecté à la liste de courses
⇒ « Ajout automatique des manquants » ⇒ « Ne pas racheter ce que tu as déjà » ⇒ « Proposer de vider les stocks avant achat »
✔ Connecté aux prix
⇒ « Le beurre que tu as chez toi vaut environ 1.50€ (prix moyen local) » ⇒ « Tu as déjà l’ingrédient le plus cher de la recette, tu économises X€ »
✔ Opportuniste
⇒ « Ce produit arrive en fin de vie → recettes adaptées »
🎯 2. Problèmes actuels sur les autres apps
Ex : OutOfMilk, Bring!, Cookidoo, Jow, SaveEat…
❌ Entrée utilisateur trop lourde
Les apps demandent :
la quantité exacte
l’unité
parfois même la marque → les gens abandonnent
❌ Pas de lien réel avec la cuisine
Pantry ≠ Recettes Pantry ≠ Liste de courses → c’est inutile.
❌ Pas intelligent : aucun raisonnement
Pas d’expiration Pas de suggestions Pas d’usage intelligent
❌ Pas de data produit fiable
Sans OpenFoodFacts → impossible d’être pertinent.
Deazl peut résoudre tout ça.
🚀 3. Solution Deazl — Vision complète (V1 → V2 → V3)
🟩 V1 — Cellier simple mais intelligent
Contenu :
📦 Liste des produits possédés
🔢 Quantité + unité
🏷 Catégorie
🧊 Frais / Sec / Congelé
⏳ Expiration (optionnelle : date ou “≈” estimation IA)
🏭 Marque (optionnel)
📌 Lien avec productId si connu (OpenFoodFacts)
📷 Ajout par scan (plus tard)
Automatisations intelligentes :
✔ Détection automatique de l’unité :
Si “lait 1L” → unité = L, qty = 1
✔ Suggestion d’expiration :
Lait → 3–7 jours
Riz sec → 24 mois
Œufs → 21 jours
(OpenFoodFacts + heuristiques internes)
✔ Détection du type par catégorie OpenFoodFacts
Permet classification automatique.
🟦 V2 — Connexion recettes
La vraie puissance :
✔ Affichage sur une recette :
⭐️ Vous avez 7 / 10 ingrédients ❌ Il manque : beurre (100g), sucre (50g)
✔ Bouton :
→ Ajouter les ingrédients manquants à ma liste de courses
✔ Mise à jour automatique :
Quand on coche des ingrédients dans la liste de courses :
ils arrivent dans le cellier
Quand on utilise une recette :
suggestion : “déduire les quantités du cellier ?”
✔ Calcul du coût réel d’une recette selon ton cellier
→ Tu économises automatiquement.
🟧 V3 — Prévention du gaspillage & suggestions
✔ Recettes basées sur ce que tu as :
Vous pouvez cuisiner 14 recettes sans rien acheter Voici les 5 meilleures
✔ Alertes expiration :
🔶 2 aliments expirent bientôt Propose des recettes pour les utiliser
✔ Suivi dynamique :
stock faible → automatiquement ajouté à prochaine liste
stock trop important → suggestions anti-gaspillage
🟥 V4 — Cellier collaboratif
Pour foyers/coloc :
plusieurs personnes partagent le même cellier
mises à jour synchronisées
🏗️ 4. Structure technique (BDD)
Voici ce qu’il faut ajouter au schéma Prisma :
📦 PantryItem (Cellier)
PantryItem (Cellier)model PantryItem {
id String @id @default(uuid())
userId String
productId String? // si trouvé dans la DB produits
name String // si produit inconnu
quantity Float
unit String // g, kg, ml, L, unit...
expiration DateTime?
location String? // frigo / congélateur / sec
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id])
product Product? @relation(fields: [productId], references: [id])
}🧮 5. Algorithmes essentiels
🎯 1. Match automatique entre un texte et un produit
User tape “lait” → Recherche fuzzy dans Product :
SELECT * FROM Product
WHERE name ILIKE '%lait%' OR category.name ILIKE '%lait%'
ORDER BY similarity(name, 'lait') DESC
LIMIT 1🎯 2. Détection du type & expiration (IA légère)
if (category == "Lait") → expiration = +4 jours
if (category == "Pâtes") → expiration = +2 ans
if (category == "Boisson sucrée") → expiration = +3 mois🎯 3. Comparaison Recette ↔ Cellier
Pour chaque ingrédient :
if pantry.productId == ingredient.productId:
missingQty = max(0, ingredient.qty - pantry.qty)→ Pour le service RecipePricingService, recalcul ≈1 ligne de code.
🎯 4. Ajout automatique à la liste de courses
Si missingQty > 0 :
→ générer ShoppingListItem
🎨 6. UX mobile : le plus important
Le cellier doit être extrêmement rapide à utiliser, sinon personne ne l’utilise.
🔥 Interfaces essentielles :
🟣 Page “Mon cellier”
Catégories (Frais / Sec / Congelé)
Barre de recherche
Grosses cartes pour chaque item
🟣 Fiche d’un item
quantité
expiration
emplacement
lien "Voir le produit"
bouton "Utiliser dans une recette"
bouton "Ajouter au panier"
🟣 Flow “Ajouter un item”
3 modes :
Scan code-barres (plus tard)
Saisie rapide :
nom
quantité
unité
Suggestion automatique de produit existant
🟣 Depuis une recette :
Déduire du cellier ? Ajouter les manquants ? Proposer recettes downgradées (par rapport au cellier)
🚨 7. Pièges à éviter
❌ Ne pas obliger le user à renseigner trop d’infos ❌ Ne pas demander d’expiration sauf si nécessaire ❌ Ne pas créer un cellier trop complexe dès le début ❌ Ne pas dépendre d’un scanner pour la V1 ❌ Ne pas forcer la correspondance produit ↔ OpenFoodFacts
⭐ 8. Innovations que seuls Deazl peut faire
✔ Calcul dynamique du coût d’une recette selon ce que tu possèdes
Unique.
✔ Recettes alternatives basées sur tes stocks
Unique.
✔ Optimisation des stocks avec prix locaux
Unique.
✔ Cellier relié à la liste de courses
Super rare.
✔ Gaming / récompenses anti-gaspillage
Ex : “Vous avez économisé 12€/mois en cuisinant vos stocks”.
Mis à jour
Ce contenu vous a-t-il été utile ?