# NutriScore Checkout Tool (Kenya)
A Chrome extension (Manifest V3, v1.1.0) that surfaces real-time NutriScore grades — with disease-specific dietary flags — while shoppers check out on Kenyan grocery retailer sites, paired with a companion web app.
## Overview
This project consists of two connected components:
- **Browser Extension** — "NutriScore Checkout Tool (Kenya)", built on Manifest V3, grades cart items A–E and flags disease-specific dietary concerns (diabetes, hypertension, allergies, and more) while checking out on **Naivas** and **Carrefour Kenya** online stores.
- **Website** — nutriscore-check.vercel.app, which works alongside the extension and publishes the Free & Premium plan breakdown.
Each component signs in independently (its own Google OAuth / picker flow) and reads the shopper's saved health profile (conditions, allergies, preferences) directly from storage — rather than mirroring a single signed-in session across the two — so the extension can guide the customer before checkout even if the website session differs.
The extension and website are still linked via:
- **Google OAuth** (shared client ID) for authentication on each side
- **Extension messaging** via `externally_connectable`, allowing the website to communicate directly with the extension
## Extension layout
The extension's real, running source lives directly under `extension/` (`background.js`, `content.js`, `db.js`, `popup.html`, `dashboard.html`, plus `adapters/`, `engine/`, `data/`, and `icons/`):
- **Popup** — shows the graded badge for the current page/cart and a "Reload" control to refresh stored data.
- **Dashboard** (`dashboard.html`, the extension's options page) — a hand-built **Shopping Analytics** view reading the `shopping_ledger` IndexedDB store, with its own reload action for refreshing analytics.
- **Adapters** — per-retailer scrapers/content scripts (currently `naivas.js`, `carrefour.js`) that run on each store's pages.
`src/App.tsx` is a separate in-repo **S …