[Enhancement] Étendre la recherche aux 5993 aliments CNF pour tous les utilisateurs #33

Open
opened 2026-08-05 11:08:24 -04:00 by NixCyRy · 1 comment
NixCyRy commented 2026-08-05 11:08:24 -04:00 (Migrated from github.com)

Problème

La barre de recherche principale ne cherche que dans les ~160 aliments NutriFood. La recherche CNF (5993 aliments de la base de données canadienne) existe mais n'est accessible qu'aux admins via « Gérer les produits ».

Un utilisateur normal ne peut pas chercher « pizza », « lasagne », « sushi » ou tout autre aliment qui n'est pas dans la sélection NutriFood.

Solution

Ajouter un onglet ou toggle dans la recherche :

  1. Recherche standard — les 160 aliments NutriFood (comportement actuel)
  2. Recherche étendue — tous les aliments CNF (5993 items)
  3. Quand un utilisateur clique sur un aliment CNF non-NutriFood, afficher les détails nutritionnels + un bouton « Ajouter à mon suivi » (optionnel, nécessite calcul de densité)

Implémentation

L'API existe déjà : /api/cnf/search?q=pizza — il suffit de l'exposer dans l'UI frontend.

// Dans search.js
function performSearch(query) {
  // Standard search
  let local = DATA.categories.flatMap(c => c.foods).filter(f => f.name.includes(query));
  // Extended search (debounced)
  if (query.length >= 3) {
    fetchWithTimeout(API + "/cnf/search?q=" + encodeURIComponent(query))
      .then(res => res.json())
      .then(data => renderExtendedResults(data.results));
  }
}

Sévérité

P2 — Limite artificielle de la valeur de l'app.

## Problème La barre de recherche principale ne cherche que dans les ~160 aliments NutriFood. La recherche CNF (5993 aliments de la base de données canadienne) existe mais n'est accessible qu'aux admins via « Gérer les produits ». Un utilisateur normal ne peut pas chercher « pizza », « lasagne », « sushi » ou tout autre aliment qui n'est pas dans la sélection NutriFood. ## Solution Ajouter un onglet ou toggle dans la recherche : 1. **Recherche standard** — les 160 aliments NutriFood (comportement actuel) 2. **Recherche étendue** — tous les aliments CNF (5993 items) 3. Quand un utilisateur clique sur un aliment CNF non-NutriFood, afficher les détails nutritionnels + un bouton « Ajouter à mon suivi » (optionnel, nécessite calcul de densité) ## Implémentation L'API existe déjà : `/api/cnf/search?q=pizza` — il suffit de l'exposer dans l'UI frontend. ```javascript // Dans search.js function performSearch(query) { // Standard search let local = DATA.categories.flatMap(c => c.foods).filter(f => f.name.includes(query)); // Extended search (debounced) if (query.length >= 3) { fetchWithTimeout(API + "/cnf/search?q=" + encodeURIComponent(query)) .then(res => res.json()) .then(data => renderExtendedResults(data.results)); } } ``` ## Sévérité P2 — Limite artificielle de la valeur de l'app.
NixCyRy commented 2026-08-06 16:10:04 -04:00 (Migrated from github.com)

Statut: Nice to have, not now

Blockers techniques

Pour implémenter cette issue correctement, il faudrait:

  1. Remplir toutes les données des 5993 items CNF — incluant les informations supplémentaires (recommandations, contre-indications, conseils d absorption, saisons, etc.). Actuellement les 159 aliments ont ces métadonnées remplies manuellement.

  2. Stress énorme sur epiceries.ca — le scraper devrait fetcher les deals pour 5993 items au lieu de 159. Ça représente ~40x plus de requêtes, ce qui est irrespectueux envers le service et probablement ratelimited.

Ces deux blockers rendent cette issue non réaliste dans le contexte actuel.

## Statut: Nice to have, not now ### Blockers techniques Pour implémenter cette issue correctement, il faudrait: 1. **Remplir toutes les données des 5993 items CNF** — incluant les informations supplémentaires (recommandations, contre-indications, conseils d absorption, saisons, etc.). Actuellement les 159 aliments ont ces métadonnées remplies manuellement. 2. **Stress énorme sur epiceries.ca** — le scraper devrait fetcher les deals pour 5993 items au lieu de 159. Ça représente ~40x plus de requêtes, ce qui est irrespectueux envers le service et probablement ratelimited. Ces deux blockers rendent cette issue non réaliste dans le contexte actuel.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SlopVibe-org/nutri-food#33
No description provided.