L-GEVITY
L-GEVITY는 혈액수치·피트니스·바이오마커·스마트 알고리즘 기반 생활습관 조정으로 현재·미래 건강을 측정·향상하는 플랫폼
FoodProof는 식품 라벨 이슈를 기록·신고서 작성·공유하여 공식 포털을 보조하지만, 직접 신고나 안전 인증은 하지 않습니다
Document a food-label concern, prepare a complaint, and give the community a clearer picture. FoodProof complements official complaint portals; it does not file complaints or certify safety.
건강TypeScript · HTMLGitHub @GaytriKhatwani온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
An evidence and complaint-preparation app for India's celiac community.
Status: phase one is complete — T0–T5 are merged to main, verified live against the dedicated demo Supabase project, the real AI provider and the demo Mixpanel project (typecheck, lint, build, 239 unit + integration tests, 128 browser specs at desktop and 360 px), and the deployed acceptance run passed 16/16 on https://food-proof.vercel.app — see IMPLEMENTATION_STATUS.md.README 전문 보기 ↗An evidence and complaint-preparation app for India's celiac community.
Status: phase one is complete — T0–T5 are merged to main, verified live against the dedicated demo Supabase project, the real AI provider and the demo Mixpanel project (typecheck, lint, build, 239 unit + integration tests, 128 browser specs at desktop and 360 px), and the deployed acceptance run passed 16/16 on https://food-proof.vercel.app — see IMPLEMENTATION_STATUS.md. T4 added live AI assistance (Anthropic Claude API, model claude-sonnet-5, low effort, hard spend cap USD 2.00 enforced by a durable ledger; label photographs are metadata-stripped before they leave), live consent-controlled Mixpanel ingestion with server-owned success events, and two integrity fixes (atomic publication requests; one effective approved revision per response). T5 verified the guarded deployment (AI enabled, verified FSSAI official-portal handoff enabled), closed the feed-thumbnail and upload-progress gaps and hardened the UI for accessibility. Real sign-in (phase two, C.1) is the next ticket set. See IMPLEMENTATION_STATUS.md for the exact state, rulings, owner decisions, known gaps and the continuation prompt.
Start with the handoff, then the PRD. Review the audit and open items before assigning build tickets. Current build progress and the exact next step are in IMPLEMENTATION_STATUS.md.
/Users/gaytrikhatwani/ClaudeProjects/GovtCaseStudy/FoodProof/Requirements: Node.js >= 20 (developed on 24). Commands below are verified in T0:
npm install # install pinned dependencies (package-lock.json committed)
npm run dev # start the dev server (http://localhost:3000)
npm run build # production build
npm run start # serve the production build
npm run typecheck # tsc --noEmit
npm run lint # next lint
npm run test # vitest run (unit/contract + live integration suites)
npm run test:e2e # playwright test (browser specs; starts next dev)
Copy .env.example to .env.local and fill values from your dedicated DEMO
Supabase/Mixpanel projects before running features that need them. The public
homepage (/) renders with no configuration; server env is validated lazily.
No secret is ever prefixed NEXT_PUBLIC_. /api/health is a demo-only readiness
fixture (returns config-group booleans, never values) available when DEMO_MODE=true.
Against a dedicated demo Supabase project (never production):
supabase/migrations/0001_init.sql into the Supabase
SQL Editor and run it. On a project where 0001 was applied before the
service_role grants were folded in, also run 0002_service_role_grants.sql.supabase/migrations/0003_transactional_operations.sql into the SQL Editor and
run it, then supabase/migrations/0004_publication_atomicity_and_ai_spend.sql.
0003 adds the transactional functions for publication approval, withdrawal,
reviewer removal, flag resolution, relinking and close/reopen, and revokes RPC
EXECUTE from public/anon/authenticated. 0004 makes the publication
request itself one transaction, adds the AI spend ledger (ai_spend_ledger and
the fp_*_ai_spend functions; costs and token counts only, never content) and
returns the ids server-owned analytics events need. Both are idempotent, so
re-running is safe. Until they are applied those operations fail loudly naming
the file, and the integration suites that use them report BLOCKED instead of
passing. Verify with select fp_schema_version(); — it returns 4.node --env-file=.env.local scripts/setup-storage.mjs.node --env-file=.env.local scripts/create-invitations.mjs --users 2.npm run dev first; it drives the real
API): node --env-file=.env.local scripts/seed.mjs. It creates four fictional
product records, three published concerns and one draft. To replace the seeded
examples add --reset: it removes only the rows
and Storage objects owned by the seed's own two invitations before
re-seeding, and never touches any other invitation..env.local present
they run against the demo project and clean up after themselves. Set the
test-only SUPABASE_PUBLISHABLE_KEY (the project's sb_publishable_... key,
never read by the application) to run the direct-client denial suite; without
it that suite is skipped, not passed.
Teardown (dry-run by default): node --env-file=.env.local scripts/teardown.mjs.T1 replaces the lib/server/ stubs with real demo-Supabase implementations and
adds the data API under app/api/** (session/limiter, reports, evidence + guarded
media, drafts, external history, publication/moderation, feed, flags, analytics
proxy). T2/T3 build the UI against these frozen contracts; T4 wires live AI and
Mixpanel ingestion.
claude-sonnet-5 (override with
AI_MODEL), effort: low, structured JSON outputs, SDK @anthropic-ai/sdk 0.124.0.
Set AI_PROVIDER=anthropic and AI_PROVIDER_API_KEY (server-only) to enable
POST /api/reports/:id/ai/extract and /ai/draft; leave them blank and the app runs
with the manual / deterministic-template path only, which is always available.lib/server/ai/limits.ts): ≤ 3 label photos per
call, ≤ 3 MB each (jpeg/png/webp), 30 s timeout, 1024 / 1500 output tokens,
USD 0.06 per call, USD 0.50 per invitation, USD 2.00 for the whole pilot, 6 calls
per minute per invitation. Spend is reserved in ai_spend_ledger before every
provider call and settled on real usage (select fp_ai_spend_totals(); shows the
running total). AI output is advisory: extraction returns suggestions the reporter
applies and confirms; drafting returns an editable suggestion saved separately. Any
failure shows “AI assistance unavailable—continue manually.”MIXPANEL_TOKEN, regional MIXPANEL_API_HOST) after explicit
consent; withdrawal clears the identifiers. Mutation-success events are emitted by
the server after commit with stable $insert_ids. Set ANALYTICS_AUDIENCE=qa
locally so QA traffic is separable from invited testers. Verify a journey with
node --env-file=.env.local scripts/analytics-journey.mjs (dev server running) and
compare in Mixpanel Live View.FoodProof prepares and organizes concerns. Official complaints are filed through government channels; brand messages are sent by the user. Community publication does not file a complaint or certify safety.