FoodVision is a mobile application that provides personalized diet planning using AI. It helps users plan meals, track macros, and get nutrition guidance based on their goals, preferences, and restrictions.
The app focuses on practical, personalized nutrition instead of generic diet advice.
- AI-generated personalized diet plans
- Daily calorie and macro tracking
- Smart meal recommendations based on goals and history
- AI nutrition chat for food and diet queries
- Secure user authentication
- React Native (Expo)
- Expo Router for navigation
- Firebase Authentication (auth only)
- Convex for database and backend logic
- OpenRouter for AI-powered nutrition responses
- TypeScript
Make sure you have:
- Node.js (v18 or higher)
- A Firebase project (Authentication enabled)
- A Convex project
- An OpenRouter API key
Expo CLI is not required globally. The project runs using
npx expo, which is the recommended approach.
git clone https://github.com/shivamEr/FoodVision-App.git
cd FoodVision-Appnpm installCreate an example.env (or .env) file in the root directory:
# Deployment used by `npx convex dev`
CONVEX_DEPLOYMENT=get from convex dashboard
EXPO_PUBLIC_CONVEX_URL=get from convex dashboard
EXPO_PUBLIC_FIREBASE_API_KEY=apikey(from firebase)
EXPO_PUBLIC_OPENROUTER_API_KEY=apikey (from openrouter)- Create a Firebase project
- Enable Email/Password Authentication
- Copy the Firebase API key into the env file
- Firebase is used only for user authentication
Run the Convex development server:
npx convex devConvex handles:
- Database
- Backend functions
- Real-time updates
- Type-safe queries and mutations
npx expo start- Open using Expo Go
- Or run on an Android/iOS emulator
- Expo Router is used for file-based routing
- AI responses are generated via OpenRouter
- Backend logic and data storage are managed by Convex
- Firebase is intentionally limited to authentication only
Pull requests are welcome. Please keep changes clean and aligned with the existing structure.