Mobile-first PWA that estimates calories from a food photo with editable results and uncertainty ranges.
- Camera capture + upload fallback
- Two-stage analysis: vision detection + portion/nutrition estimate (plate cues or defaults)
- Editable foods and portion controls
- Local history stored in
localStorage - Friendly confidence banner + disclaimer
- Next.js App Router + TypeScript
- Tailwind CSS
- OpenAI Vision (optional) + USDA FoodData Central (optional)
npm install
npm run devCreate a .env.local file:
OPENAI_API_KEY=your_openai_key
USDA_API_KEY=your_usda_key
If API keys are missing, the app falls back to manual entry and a local nutrition table.
npm run dev- local dev servernpm run build- production buildnpm run start- run production buildnpm run test- unit tests for portion/calorie logic
Vercel is recommended. Set OPENAI_API_KEY and USDA_API_KEY in the project environment variables.
Estimates only, not medical advice.