SmartCart AI: Personalized Grocery & Nutrition Assistant
Executive summary
SmartCart AI (formerly NutriCart / SmartCart) is an intelligent, personalized grocery assistant designed for the Greek market, initially anchored to the Sklavenitis supermarket ecosystem. It analyzes past purchase history and e-shop favorites to establish a baseline of household consumption. Using a "Netflix-style" profile system for household members' goals and dietary restrictions, it leverages a hybrid architecture of deterministic logic and LLMs. The platform suggests highly personalized, available product swaps, rendering objective projections of the health benefits (Health Index) versus cost differences to optimize grocery carts seamlessly.
Business strategy & value proposition
The problem
- Lack of clarity & cognitive overload: Consumers struggle to decipher ingredient labels (e.g., hidden sugars) and lack the time or energy to optimize a 50-item family grocery cart while shopping.
- High friction in existing solutions: Most nutrition apps require tedious manual daily food logging.
- Budget constraints & split needs: Families hesitate to buy "healthy" alternatives fearing high costs, and have conflicting dietary needs (e.g., one child has a nut allergy, a parent wants low-carb, another needs standard calories).
The solution
- Zero-friction onboarding: Operates on existing behaviors (receipt scanning and web scraping favorites) to calculate household "burn rates" of staples. No daily macro tracking.
- Profile-based automated curation: Netflix-style profiles for each household member with "Hard Vetoes" (allergies) and "Soft Preferences" (e.g., more protein).
- Objective projections: Crystal-clear visualizations of product swaps (e.g., "Swap to Chickpea Pasta: -60% sugar, +120% fiber, Cost: +0.25€").
Product features & UX
User profiles & goal setting
- Interaction: Users create simple avatars ("Mom", "Yannis") assigning tags like "Celiac/Gluten-Free" or "Hates Bananas".
- Detail: The AI Recommendation Engine aggregates these constraints to filter and tailor suggested alternatives for the entire basket.
Projections dashboard
- Interaction: Side-by-side comparison cards of current products vs. suggested alternatives.
- Detail: Highlights differences in macronutrients, controversial ingredients, and price. Users can accept the swap with one click, updating their e-shop cart immediately.
Technical architecture
To ensure zero AI hallucinations regarding critical allergies, the system relies on a 3-Phase Hybrid Pipeline.
High-level stack
| Component | Technology | Role |
|---|---|---|
| Data Extraction | Python (Scrapy, Playwright) | Scraping product catalogs & receipts from Sklavenitis. |
| AI Parsing | OpenAI / Gemini API | Converts unstructured generic text into categorized nutritional JSON. |
| Backend & API | Node.js (Express) / Python (FastAPI) | Logic routing and AI orchestrator. |
| Database | PostgreSQL + Pinecone | Traditional DB + Vector search for matching semantic product similarity. |
| Frontend | React.js / Next.js + Tailwind | Projections, dashboard, PWA functionality. |
Core systems logic (The 3-Phase Pipeline)
- Phase 1: Ingestion & Baseline (Deterministic): Python scraper/receipt parser categorizes purchases and calculates a rolling 4-to-6-week consumption average.
- Phase 2: Retriever & Veto (Deterministic): Standard SQL queries apply "Hard Vetoes" against the knowledge graph to generate a strict, pre-vetted shortlist of safe, in-stock alternatives (excluding all nut-facility products for a nut allergy).
- Phase 3: Matcher & Justifier (LLM Layer): An LLM evaluates the vetted shortlist against "Soft Preferences," picks the optimal swap, and generates a human-readable justification for the UI.
Handling edge cases
- Missing purchase data: If a user shops at a local mini-market, consumption stats skew.
- Mitigation: The system uses rolling averages and sends proactive UI prompts ("Are you out of Delta Milk?").
- Conflicting household goals (The Split Basket): Mom wants low-carb, kids need standard pasta.
- Mitigation: The LLM executes a "Split Basket" logic, suggesting keeping 3 packs of standard pasta for kids and 1 pack of chickpea for Mom, explaining it explicitly.
- Dynamic pricing & scraping limits: Prices change and e-shops block bots.
- Mitigation: Daily cron jobs via proxy rotators, respecting structural rate limits, and verifying prices on-demand.
Future roadmap
Phase 1 (MVP)
- [ ] Manual receipt upload parsing and daily scraper deployment for basic Sklavenitis categories.
- [ ] Product knowledge graph database and basic macro swap logic (Carbs/Protein/Calories).
Phase 2
- [ ] Full Next.js user dashboard with projection visualizations and split-basket logic.
- [ ] Direct E-food / Sklavenitis.gr API/Extension integration.
- [ ] Budget optimization (e.g., suggesting private label 'Marata' substitutes to save money).
Phase 3
- [ ] Chrome extension to inject alternatives directly onto supermarket GUI.
- [ ] Expansion to other Greek supermarket chains (AB Vassilopoulos, Masoutis, Lidl).