Backend (Spring Boot 3.2 / Java 21 / PostgreSQL): - JWT auth with BCrypt password hashing - User profile + Mifflin-St Jeor BMR calculator - Food search + barcode via OpenFoodFacts API with local cache - Meal CRUD with user data isolation and ownership checks - AI photo analysis (OpenAI Vision) with confidence intervals - AI correction feedback loop for personalisation - Flyway DB migrations + RFC-7807 error responses Mobile (React Native / TypeScript): - Full navigation stack (Auth → Tabs → Home stack) - Design tokens (WCAG 2.2 AA colours, 8px grid, 48px touch targets) - 10 screens: Login, Register, Home, Search, Camera, AI Result, Edit Meal, Daily Details, History, Profile - Confidence-aware calorie display (kcal ± range) - Repeat last meal shortcut + macro tracking Docs: - docs/PLAN-AND-REQUIREMENTS.md - docs/traceability.csv (35 requirements, all Implemented)
4.9 KiB
Great idea — this is actually a non-trivial product problem, not just a simple app. The hardest part is not UI or tracking, but accuracy vs usability trade-off.
Let me break it down in a way that fits your background (architecture + GenAI + product thinking).
🧠 1. First principle: “Precise calorie counting” is inherently imperfect
Even the best apps are not 100% accurate because:
- Food labels themselves can legally deviate (~20%) [scienceinsights.org]
- Portion estimation is the biggest error source (humans underestimate 20–40%) [healthlyai.com]
- AI image recognition still has ~10–25% error depending on food complexity [scienceinsights.org]
👉 So your goal should be:
“consistent estimation” > “absolute precision”
🏗️ 2. 3 viable approaches (you should choose one or combine)
Option A — Database-driven (classic, most reliable baseline)
How it works:
- User selects food from DB or scans barcode
- Calories come from nutrition datasets
Tech:
- APIs like Open Food Facts (free, open DB) [openfoodfa....github.io]
- USDA / Nutritionix / Edamam [rapidapi.com]
✅ Pros:
- Most consistent & explainable
- Easy to build MVP
- Works well for packaged food
❌ Cons:
- Bad UX for homemade meals
- Requires manual input
Option B — AI / Image-based (cool, but tricky)
How it works:
- Detect food (CV model)
- Estimate portion (hard!)
- Map to nutrition DB
Typical pipeline:
- Image → food classification → portion estimation → calorie calculation [arxiv.org]
✅ Pros:
- Amazing UX (“just take a photo”)
- Differentiating feature
❌ Cons:
- Accuracy varies a lot
- Hard problem (volume estimation especially)
Option C — Hybrid (BEST PRACTICE ✅)
This is what modern apps do:
- Barcode scan → DB
- Photo → AI suggestion
- Manual correction → user confirms
👉 This gives:
- Speed of AI
- Accuracy of database
📌 Industry trend:
Best apps combine AI + verified food databases [welling.ai]
🧩 3. Recommended architecture (simple but scalable)
Given your background, I’d suggest:
🟢 MVP architecture
Mobile App (React Native)
|
Backend (Node / Java / FastAPI)
|
----------------------------------
| Food DB API (OpenFoodFacts) |
| AI Service (image analysis) |
| User data (Firebase / Postgres)|
----------------------------------
Key components
1. Food data layer
- Cache food DB locally (performance)
- Normalize entries (important!)
2. AI service (optional MVP v2)
- Start simple:
- OpenAI / vision model
- or pre-trained food classifier
- Later:
- custom fine-tuned model
3. Calorie engine
- Core logic:
- calories = portion × kcal_per_100g
- Add:
- macro tracking (protein/fat/carbs)
🎯 4. Where you can actually differentiate (this is key)
Most apps already exist. Your edge must be here:
💡 Ideas (aligned with your GenAI interest)
1. “Confidence-aware calories”
Instead of:
500 kcal
Show:
500 kcal ± 80 kcal (confidence 85%)
👉 No one does this well, but it’s honest and valuable.
2. Learning system
- User corrects AI → model improves
- Build personal “food profile”
3. Context-aware tracking
- “Restaurant mode”
- “Home cooking mode”
- “Meal template reuse”
4. Behavioural layer (underrated)
Apps fail because people stop logging.
Add:
- Auto-suggestions
- Meal prediction
- “You usually eat this at lunch”
⚙️ 5. Practical MVP plan (step-by-step)
Phase 1 (2–3 weeks)
✅ Manual + DB only
- Food search
- Barcode scan
- Daily calorie counter
Phase 2
✅ Add AI assist
- Upload photo → suggest food
- User confirms
Phase 3
✅ Smart features
- Meal history
- Predictions
- Personalisation
🧪 6. Accuracy strategy (critical)
To be “more or less precise”, do this:
- Use verified databases first
- Always allow manual override
- Store user corrections
- Avoid pretending AI is exact
🚀 My recommendation for YOU
Given your skills + interests:
👉 Build a GenAI-first hybrid app
- Start simple (DB + manual)
- Add AI layer as enhancement
- Focus on UX + intelligence, not just counting
💬 If you want next step
I can help you:
- define feature set for MVP (like PRD)
- design data model + APIs
- or sketch UI flows (very important here)
Just tell me 👍