Logo Lanfrica

JHUB-AFRICA/nutriscore-check

Domain:

healthcare

Record type:

softwaretools
Creator:
JHU
Host:
# 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 …