🏆 Synthèse Agile & Wiki SCRUM
Voici le compte-rendu officiel du projet Local Food AI, structuré pour répondre aux exigences des rituels Scrum (Daily, Review, Planning) et pour alimenter directement votre Wiki Taiga.
1. 🌅 Le Daily (Où en sommes-nous ?)
Statut Actuel :
Le socle applicatif est à 90% terminé. L'infrastructure de base (MySQL, Ubuntu, Docker, Ollama) est parfaitement stable, le pipeline d'intégration Git/Taiga via Webhook est fonctionnel, et l'interface utilisateur (UI) vient de subir une refonte technologique massive. Il ne reste techniquement qu'une seule "Epic/User Story" majeure dans notre Backlog.
2. 🔍 La Sprint Review (Qu'avons-nous fait hier ?)
Lors du dernier Sprint de développement continu, nous avons validé les User Stories #5, #6, #7, et #8.
Réalisations Techniques et Démontrables :
- Refonte "Scientific Medical" (Frontend) : Injection de CSS avancé dans
app.py pour basculer Streamlit vers un design "Dark Mode" Premium, utilisant la police Inter, des dégradés bleus/cyan, et des effets "Glassmorphism".
- Filtres Avancés (SQL/Backend) : Création de 4 sliders interactifs (Protéines, Lipides, Glucides, Sucres) modifiant dynamiquement la clause
WHERE ... AND protéines >= X de la base MySQL.
- Architecture "My Plate" (Database) : Modification sécurisée de
setup_db.py pour générer automatiquement deux nouvelles tables relationnelles (plates et plate_items). Ces tables utilisent des clefs étrangères (Foreign Keys) pour lier les aliments directement au user_id de la session.
- Algorithme d'Agrégation (Logique Data) : Intégration d'une logique en Python/Pandas calculant et additionnant instantanément les macros (Protéines, Graisses, Carbs) de tous les aliments présents dans une assiette virtuelle.
- Toutes ces modifications ont été commitées sur Gogs avec succès, déclenchant le Webhook vers Taiga (Tasks #23, #24, #26, #27).
3. 🎯 Le Sprint Planning (Qu'allons-nous faire ?)
Prochain Objectif : Construire la User Story #11 (AI Menu Proposals).
Tâches prévues (Sprint Backlog) :
- Créer une nouvelle section/tab dans le code pour la génération de menus.
- Concevoir un algorithme de "Prompt Engineering" très spécifique qui imposera à Mistral des contraintes strictes.
- Câbler la demande de l'utilisateur (ex: "Je veux un menu à 2000 kcal riche en protéines") avec la base de données SQL locale pour fournir de vrais exemples au LLM, afin qu'il propose un menu concret et non inventé.
- Finaliser les play-tests finaux sur la VM Ubuntu.
4. 📚 Ce que tu dois mettre dans le Wiki SCRUM (Taiga)
Copiez-collez ces blocs dans votre Wiki Taiga pour prouver la maîtrise technique du projet :
🏛️ Architecture & Technologies
- Frontend : Framework Streamlit (Python) surchargé par du CSS natif injecté via
st.markdown(unsafe_allow_html=True) pour garantir une esthétique "Scientific Medical" (Focalisation UX/UI Premium).
- Backend Intelligence : Intégration native de l'API Ollama (modèle Mistral) avec le concept de Tool/Function Calling pour scraper anonymement le Web via un conteneur local SearXNG sur le port
8080.
- Database Pipeline : Injection dynamique et asynchrone des données CSV ouvertes via Pandas vers MySQL. Abandon des schémas SQL rigides au profit de l'auto-génération des 200 colonnes via l'ORM.
- Sécurité & Accès : Mise en place d'un modèle PoLP (Principle of Least Privilege). L'application gère nativement le HMAC (via
bcrypt) et le script setup_db.py octroie des droits granulaires (ex: IDENTIFIED BY ... GRANT SELECT, INSERT... TO 'db_app_auth').
🔄 DevOps & Déploiement
- Le CI/CD rudimentaire repose sur une intégration Gogs -> Taiga. Chaque commit (ex:
TG-23) documente automatiquement la carte Agile via Webhook.
- Le système est déployable via le script unifié
deploy.sh (qui gère l'environnement virtuel Python) et setup_searxng.sh (qui gère l'orchestration Docker).