A React Native (Expo) app for logging meals by photo. Take a picture of food, add a short description, and receive volume and nutrition estimates from the companion Food Volume Estimation and Food Natural Language Processing APIs.
- Node.js and npm
- The
Food-Volume-EstimationAPI running on a machine reachable from the device - The
Food-Natural-Language-ProcessingAPI running on a machine reachable from the device - An Android/iOS device or simulator with camera access
npm installCreate a .env file with the API server URL:
EXPO_PUBLIC_API_URL=http://<your-ip>:8001
Then run:
npx expo startFor a physical device, use the IP address of the computer running the API, not localhost. The app submits images to /api/v1/submit and polls the job endpoint until the estimate is ready.
npx tsc --noEmit
npm run lintsrc/app/- screens, file-based routing via expo-router (capture -> describe -> processing -> log detail/edit)src/components/- UI components, grouped by screen/featuresrc/hooks/- shared state (logs, theme, onboarding), persisted with AsyncStoragesrc/services/volumeEstimation.ts- submits and polls volume-estimation jobssrc/services/logSubmission.ts- persists a pending job and maps its result back to a logsrc/types/- shared TypeScript types (Log,FoodNutrients)
Meal logs and captured images are stored locally on the device using AsyncStorage and the app document directory. They are not uploaded anywhere other than the configured estimation API.