Skip to content

pgchenu/courses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Courses 🛒

Outil de planification de repas et de génération de liste de courses (pensé pour recopier dans Leclerc Drive).

Deux volets :

  1. Plats — un répertoire de plats que tu sais faire, reliés à leurs ingrédients. Tu choisis quelques plats (chacun peut couvrir plusieurs repas) et l'outil agrège automatiquement les ingrédients.
  2. Achats récurrents — une liste à cocher, groupée par catégories (café, jus, bière, lessive…), pour ne rien oublier.

La liste finale est triée par rayon (parcours Leclerc) avec des cases à cocher.

Installation

Le projet utilise uv.

uv sync          # installe les dépendances

Utilisation

Interface TUI (principale)

uv run courses
  • Accueil : choisis une liste de courses existante ou crée-en une nouvelle (N).
  • 1 — Plats : coche les plats voulus, ajuste le nombre de repas par plat. Les mieux notés (tes goûts + saison + anti-routine) sont en haut.
  • 2 — Achats récurrents : coche ce dont tu as besoin (les habituels sont pré-cochés).
  • Générer la liste : produit la liste triée par rayon et l'enregistre dans output/liste-<slug>.md.

CLI d'appoint (scripts / agent IA)

uv run courses recettes                 # plats classés par score de goût
uv run courses liste --plat tartiflette:4 --plat salade-ete:2
uv run courses cuisine tartiflette      # marque un plat cuisiné (anti-routine)
uv run courses gout aime oignon 3       # règle tes préférences
uv run courses gout evite coriandre
uv run courses valider                  # vérifie l'intégrité des registres

Données (dossier data/, éditables à la main ou par un agent)

Fichier Contenu
ingredients.yaml catalogue d'ingrédients (rayon, unité, quantifie)
recipes.yaml répertoire de plats validés
recurrents.yaml produits récurrents groupés par catégorie
preferences.yaml tes goûts (ingrédients/tags aimés ou évités)
listes/ tes listes de courses en cours (créées depuis le TUI)

Pour qu'un LLM crée/maintienne ces données proprement (et vérifie les recettes en ligne au lieu de les inventer), voir AGENTS.md.

quantifie sur un ingrédient : true → on cumule les quantités (2 + 3 oignons = 5 oignons) ; false → ingrédient « de fond » (riz, pâtes, huile…) affiché en une seule ligne « Riz (suffisamment pour N repas) », jamais de doublon.

repas_par_defaut sur un plat = nombre de repas qu'il te dure d'habitude ; sert de base au calcul des quantités quand tu demandes plus (ou moins) de repas.

Architecture

  • courses/core.pylogique pure (score de goût, agrégation, tri par rayon, rendu), réutilisable par le TUI, la CLI et un futur agent IA / serveur MCP.
  • courses/models.py — dataclasses + constantes (rayons, saisons).
  • courses/storage.py — lecture/écriture YAML.
  • courses/tui/ — interface Textual (accueil + 2 volets + génération).
  • courses/cli.py — CLI Typer.

Tests

uv run pytest

About

Une TUI pour m'aider à faire mes courses

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages