From 1627824ecabab30304f0b7c904ea9b2f69e3ec35 Mon Sep 17 00:00:00 2001 From: Adity Date: Mon, 1 Jun 2026 15:25:42 +0530 Subject: [PATCH 1/3] feat: add confidence badge on result card --- src/pages/AnalysisDashboard.tsx | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/pages/AnalysisDashboard.tsx b/src/pages/AnalysisDashboard.tsx index f6005dc..5a786d1 100644 --- a/src/pages/AnalysisDashboard.tsx +++ b/src/pages/AnalysisDashboard.tsx @@ -132,14 +132,25 @@ export default function AnalysisDashboard() { /> -
- - CLASSIFICATION: {classification} - - - CONFIDENCE: {confidence}% - -
+
+ + CLASSIFICATION: {classification} + + + + CONFIDENCE: {confidence}% + + + + {confidence < 70 ? "Low Confidence" : "High Confidence"} + +
{/* Species panel */} From b4397fb4275d92f8473d18fa1662652d68b8819d Mon Sep 17 00:00:00 2001 From: Adity Date: Tue, 2 Jun 2026 16:00:23 +0530 Subject: [PATCH 2/3] fix: address PR review feedback --- src/pages/AnalysisDashboard.tsx | 53 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/src/pages/AnalysisDashboard.tsx b/src/pages/AnalysisDashboard.tsx index 5a786d1..c424975 100644 --- a/src/pages/AnalysisDashboard.tsx +++ b/src/pages/AnalysisDashboard.tsx @@ -7,32 +7,32 @@ import { api } from '../lib/api'; import type { ScanResult } from '../lib/types'; const BIOMARKER_META = { - gill_saturation: { label: 'Gill Saturation', icon: Droplets }, - corneal_clarity: { label: 'Corneal Clarity', icon: EyeIcon }, - epidermal_tension: { label: 'Epidermal Tension', icon: Fish }, + gill_saturation: { label: 'Gill Saturation', icon: Droplets }, + corneal_clarity: { label: 'Corneal Clarity', icon: EyeIcon }, + epidermal_tension: { label: 'Epidermal Tension', icon: Fish }, } as const; type BiomarkerKey = keyof typeof BIOMARKER_META; function gradeColor(grade: string) { if (grade === 'A+' || grade === 'A') return 'text-secondary'; - if (grade === 'B') return 'text-neon'; + if (grade === 'B') return 'text-neon'; return 'text-error'; } export default function AnalysisDashboard() { const [params] = useSearchParams(); - const [scan, setScan] = useState(null); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(''); + const [scan, setScan] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(''); useEffect(() => { async function load() { setLoading(true); setError(''); try { - const idParam = params.get('id'); - const lastId = sessionStorage.getItem('lastScanId'); + const idParam = params.get('id'); + const lastId = sessionStorage.getItem('lastScanId'); const targetId = idParam || lastId; const res = targetId @@ -78,7 +78,7 @@ export default function AnalysisDashboard() { const { freshness_index, grade, confidence, classification, species, biomarkers, recommendations } = scan; const displayId = scan.scan_display_id; - const alerts = recommendations.alert_flags; + const alerts = recommendations.alert_flags; return (
@@ -133,24 +133,23 @@ export default function AnalysisDashboard() {
- - CLASSIFICATION: {classification} - + + CLASSIFICATION: {classification} + - - CONFIDENCE: {confidence}% - + + CONFIDENCE: {confidence}% + - - {confidence < 70 ? "Low Confidence" : "High Confidence"} - -
+ + {confidence < 70 ? "LOW_CONFIDENCE" : "HIGH_CONFIDENCE"} + + {/* Species panel */} @@ -202,7 +201,7 @@ export default function AnalysisDashboard() {
{(Object.keys(BIOMARKER_META) as BiomarkerKey[]).map(key => { const meta = BIOMARKER_META[key]; - const bm = biomarkers[key]; + const bm = biomarkers[key]; const Icon = meta.icon; const isAlert = bm.status === 'CAUTION'; From 2e42c55d470cf33e07f2fde31e23c46fefbb2241 Mon Sep 17 00:00:00 2001 From: Karan Singh Date: Wed, 3 Jun 2026 20:42:16 +0530 Subject: [PATCH 3/3] added minor modifications for local setup for contributers to test in the development server --- backend/supabase/config.toml | 2 +- backend/supabase/seed.sql | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/backend/supabase/config.toml b/backend/supabase/config.toml index 89ae29f..5344411 100644 --- a/backend/supabase/config.toml +++ b/backend/supabase/config.toml @@ -2,7 +2,7 @@ # https://supabase.com/docs/guides/local-development/cli/config # A string used to distinguish different Supabase projects on the same host. Defaults to the # working directory name when running `supabase init`. -project_id = "backend" +project_id = "freshscan-backend" [api] enabled = true diff --git a/backend/supabase/seed.sql b/backend/supabase/seed.sql index 02b0091..f11fbff 100644 --- a/backend/supabase/seed.sql +++ b/backend/supabase/seed.sql @@ -12,3 +12,25 @@ VALUES ('Jorabagan Market', 'Jorabagan, Kolkata', 22.5843, 88.3594, 65.0, 65, 15, 113), ('Jadavpur Fish Market', 'Jadavpur, Kolkata', 22.4981, 88.3706, 91.0, 91, 36, 248) ON CONFLICT DO NOTHING; + +-- Insert DEV bypass user so local scans don't fail foreign key constraints +INSERT INTO auth.users ( + instance_id, id, aud, role, email, encrypted_password, email_confirmed_at, created_at, updated_at, raw_app_meta_data, raw_user_meta_data, is_super_admin +) VALUES ( + '00000000-0000-0000-0000-000000000000', + '977a222c-53a1-5f37-a984-b1c98ae18bff', + 'authenticated', + 'authenticated', + 'dev@freshscan.local', + crypt('password123', gen_salt('bf')), + now(), + now(), + now(), + '{"provider":"email","providers":["email"]}', + '{"full_name": "Dev Tester"}', + false +) ON CONFLICT DO NOTHING; + +INSERT INTO public.profiles (id, email, full_name) +VALUES ('977a222c-53a1-5f37-a984-b1c98ae18bff', 'dev@freshscan.local', 'Dev Tester') +ON CONFLICT DO NOTHING;