PWA de suivi calorique : prends ton plat en photo, l'IA (Gemini) estime calories et macros. React, Firebase, Netlify.
Translation pending
HealthJavaScript · CSSGitHub @YanzBoiiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Prends ton plat en photo. On s'occupe du reste. Application de suivi calorique : une photo suffit, l'IA estime les calories et les macros du plat. Compter ses calories est fastidieux : peser, chercher chaque aliment, additionner. TrackBoii réduit ça à un geste. 1. Photo du plat, avec ou sans précisions (nom, poids, ingrédients), ou simple description texte. 2. L'IA estime les calories, protéines, glucides et lipides. Tout reste modifiable. 3. Un repas habituel ? Enregistre-le en preset : la prochaine fois, un tap suffit.Read the full README ↗
Prends ton plat en photo. On s'occupe du reste.
Application de suivi calorique : une photo suffit, l'IA estime les calories et les macros du plat.
Compter ses calories est fastidieux : peser, chercher chaque aliment, additionner. TrackBoii réduit ça à un geste.
Un questionnaire au premier lancement calcule les besoins quotidiens selon l'objectif (perte, maintien, prise de muscle).
| Front | React 19, Vite, React Router, CSS sur mesure (design glassmorphism) |
| PWA | vite-plugin-pwa (Workbox), police auto-hébergée, cache hors ligne |
| Back | Firebase Auth, Cloud Firestore (règles de sécurité par utilisateur) |
| IA | API Gemini Flash (vision + sortie JSON structurée), appelée depuis une Netlify Function |
| Hébergement | Netlify (site statique + fonction serverless) |
| Tests | Vitest |
Détails dans docs/architecture.md.
Mode démo (données fictives, sans compte ni clé API) :
npm install
npm run demo
Mode complet (Firebase + IA) : copier .env.example en .env, le remplir, puis :
npx netlify dev
Le pas-à-pas complet (création du projet Firebase, clé Gemini, déploiement Netlify) est dans SETUP.md.
npm test # tests unitaires (logique, cascade IA, validation)
npm run test:rules # règles Firestore sur l'émulateur (Java 21 requis)
npm run build # build de production
src/
├── screens/ # un fichier par écran (Today, Add, Result, Stats…)
├── components/ # Shell (layout), MealSheet, primitives UI
├── data/ # DataContext (Firestore), UiContext (thème, toasts, brouillon)
└── lib/ # logique pure testée : objectifs, dates, stats, image
shared/ # schéma et normalisation de la réponse IA (front + serveur)
netlify/functions/ # analyze.mjs : appel sécurisé à Gemini
firestore.rules # règles de sécurité
Design et conception de l'interface : YanzBoii.