Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - Ruthwik-Data/sugarshield: AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML. · GitHub
Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Ruthwik-Data/sugarshield: AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML. · GitHub
Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Ruthwik-Data/sugarshield: AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML. · GitHub
Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - Ruthwik-Data/sugarshield: AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML. · GitHub
Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Ruthwik-Data/sugarshield: AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML. · GitHub
Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Ruthwik-Data/sugarshield: AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML. · GitHub
Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - Ruthwik-Data/sugarshield: AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML. · GitHub
Skip to content

Repository files navigation

SugarShield

Live:https://sugarshield.vercel.app/ · Eval Dashboard:https://sugarshield.vercel.app/eval

Food ingredient safety scanner with built-in evaluation infrastructure. The eval isn't an afterthought — it's a first-class feature of the product.


Why I Built This

Food labels use dozens of names for sugar — maltodextrin, dextrose, cane juice, rice syrup, corn syrup solids. A keyword-only system would miss half of them. Most nutrition apps don't tell you how confident they are or what kind of mistakes they make.

The core PM question was: what failure mode is worse — over-warning or missing hidden sugar? For a safety-first product, a false negative (telling someone a product is safe when it isn't) is riskier than a false positive (prompting a double-check). That answer shaped every eval and product decision.


Eval Infrastructure

Live Eval Dashboard →

The Product Decision

We intentionally over-warn rather than miss hidden sugar. Conservative bias is not a bug — it's an explicit product choice documented in the eval page.

Eval Metrics (Strict Mode)

MetricResultWhy It Matters
False Negatives0Intentional. Missing hidden sugar is the riskiest failure mode
Trigger Match Rate87%How often the model identifies the correct sugar ingredient
Conservative BiasIntentionalWarn more, miss less — safety over precision

Strict vs. Lenient Mode

The eval dashboard exposes two evaluation modes so users can see the tradeoff:

  • Strict Mode — flags artificial sweeteners, borderline ingredients, naturally occurring sugars in context
  • Lenient Mode — passes products where sugar is naturally occurring or debated nutritionally

This lets users understand why a product was flagged, not just that it was flagged.

Known Limitation (Documented)

The system may over-flag some products. This is intentional — explicitly stated on the eval page as a product tradeoff, not hidden from users.

PM Insight (From Eval Page)

Several WARN results (e.g., Diet Soda, Coconut Water) are intentional. These products contain sweeteners or naturally occurring sugars that are debated in nutritional science. SugarShield defaults to caution rather than silent pass to preserve user trust.


What This Demonstrates

  • Eval-first product design — the /eval page is built into the product, not a separate doc
  • Conservative bias as a product decision — not an accident, documented and explained to users
  • False negative optimization — 0 missed detections by intentional design
  • Confidence transparency — users see confidence level and which triggers fired
  • Failure mode honesty — known limitations surface in the product UI, not hidden in a README

How It Works

  • Frontend: Next.js 14, React 18, Tailwind CSS
  • AI Core: OpenAI GPT-4o/GPT-3.5-turbo for ingredient classification
  • Eval Data: Ground-truth evalSet.json with 15 test cases across input types (scan, link, upload)
  • Flow: User → scan/upload ingredient label → AI classifies sugar content → confidence score + trigger list → PASS / WARN / FAIL

Run Locally

  1. git clone https://github.com/Ruthwik-Data/sugarshield.git
  2. cd sugarshield && npm install
  3. Create .env.local with your OPENAI_API_KEY
  4. npm run devhttp://localhost:3000
  5. Visit /eval to see the full evaluation dashboard

Status

  • ✅ MVP with AI classification shipped
  • ✅ Eval dashboard with strict/lenient mode
  • ✅ False negative tracking (0 missed detections)
  • ✅ Conservative bias documented as product decision
  • ⏳ Multi-day historical trends
  • ⏳ Browser-based nutritional scanning for online grocery shopping

About

AI-powered ingredient safety scanner that detects harmful additives in food products using computer vision and ML.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages