# ๐Ÿš€ How to Run the VQA Mobile App ## Quick Overview You now have a complete React Native mobile app for Visual Question Answering! Here's what was created: ### โœ… What's Built 1. **Backend API** (`backend_api.py`) - FastAPI server wrapping your ensemble VQA models - Automatic routing between base and spatial models - Image upload and question answering endpoints 2. **Mobile App** (`ui/` folder) - Beautiful React Native app with Expo - Google OAuth authentication - Camera and gallery image picker - Question input and answer display - Model routing visualization ## ๐ŸŽฏ Running the App (3 Steps) ### Step 1: Start the Backend Server ```bash # Open PowerShell/Terminal cd c:\Users\rdeva\Downloads\vqa_coes # Install API dependencies (FIRST TIME ONLY) # If you get import errors, run this: pip install fastapi uvicorn python-multipart # Start the server python start_backend.py # Or: python backend_api.py ``` > **Note**: If you get "ModuleNotFoundError", see [IMPORT_ERRORS_FIX.md](file:///c:/Users/rdeva/Downloads/vqa_coes/IMPORT_ERRORS_FIX.md) for solutions. โœ… **Keep this window open!** The server must stay running. You should see: ``` ๐Ÿš€ INITIALIZING ENSEMBLE VQA SYSTEM โœ… Ensemble ready! ``` ### Step 2: Configure the Mobile App 1. **Find your local IP address:** ```bash ipconfig ``` Look for "IPv4 Address" (e.g., `192.168.1.100`) 2. **Update the API URL:** - Open: `ui\src\config\api.js` - Change line 8: ```javascript export const API_BASE_URL = 'http://YOUR_IP_HERE:8000'; ``` - Example: ```javascript export const API_BASE_URL = 'http://192.168.1.100:8000'; ``` ### Step 3: Start the Mobile App ```bash # Open a NEW PowerShell/Terminal window cd c:\Users\rdeva\Downloads\vqa_coes\ui # Start Expo npm start ``` You'll see a QR code in the terminal. ### Step 4: Run on Your Phone 1. **Install Expo Go** on your smartphone: - [Android - Play Store](https://play.google.com/store/apps/details?id=host.exp.exponent) - [iOS - App Store](https://apps.apple.com/app/expo-go/id982107779) 2. **Scan the QR code:** - Android: Open Expo Go โ†’ Scan QR - iOS: Open Camera โ†’ Scan QR โ†’ Tap notification 3. **Wait for the app to load** (first time takes ~1-2 minutes) ## ๐Ÿ“ฑ Using the App ### Option A: Test Without Google Login For quick testing, you can bypass Google authentication: 1. Open `ui\App.js` 2. Find line 23-27 and replace with: ```javascript ``` 3. Save and reload the app (shake phone โ†’ Reload) ### Option B: Set Up Google Login 1. Go to [Google Cloud Console](https://console.cloud.google.com/) 2. Create a new project 3. Enable Google+ API 4. Create OAuth 2.0 credentials 5. Update `ui\src\config\google.js` with your client IDs ### Testing VQA Functionality 1. **Select an image:** - Tap "Camera" to take a photo - Tap "Gallery" to choose existing image 2. **Ask a question:** - Type your question (e.g., "What color is the car?") - Tap "Ask Question" 3. **View the answer:** - See the AI-generated answer - Check which model was used: - ๐Ÿ” **Base Model** - General questions - ๐Ÿ“ **Spatial Model** - Spatial questions (left, right, above, etc.) ## ๐Ÿงช Example Questions to Try ### General Questions (Base Model ๐Ÿ”) - "What color is the car?" - "How many people are in the image?" - "What room is this?" - "Is there a dog?" ### Spatial Questions (Spatial Model ๐Ÿ“) - "What is to the right of the table?" - "What is above the chair?" - "What is next to the door?" - "What is on the left side?" ## ๐Ÿ”ง Troubleshooting ### "Cannot connect to server" - โœ… Check backend is running (`python backend_api.py`) - โœ… Verify IP address in `api.js` matches your computer's IP - โœ… Ensure phone and computer are on the **same WiFi network** - โœ… Check Windows Firewall isn't blocking port 8000 ### "Model not loaded" - โœ… Ensure these files exist in `c:\Users\rdeva\Downloads\vqa_coes\`: - `vqa_checkpoint.pt` - `vqa_spatial_checkpoint.pt` - โœ… Check backend terminal for error messages ### App won't load on phone - โœ… Verify Expo Go is installed - โœ… Both devices on same WiFi - โœ… Try restarting Expo: Press `Ctrl+C`, then `npm start` - โœ… Clear cache: `npm start -- --clear` ### Camera/Gallery not working - โœ… Grant permissions when prompted - โœ… Check phone Settings โ†’ App Permissions ## ๐Ÿ“ Project Structure ``` vqa_coes/ โ”œโ”€โ”€ backend_api.py # FastAPI backend server โ”œโ”€โ”€ ensemble_vqa_app.py # Your existing ensemble system โ”œโ”€โ”€ model_spatial.py # Spatial model โ”œโ”€โ”€ models/model.py # Base model โ”œโ”€โ”€ vqa_checkpoint.pt # Base model weights โ”œโ”€โ”€ vqa_spatial_checkpoint.pt # Spatial model weights โ”œโ”€โ”€ requirements_api.txt # Backend dependencies โ”œโ”€โ”€ QUICK_START.md # This guide โ””โ”€โ”€ ui/ # Mobile app โ”œโ”€โ”€ App.js # Main app component โ”œโ”€โ”€ app.json # Expo configuration โ”œโ”€โ”€ package.json # Dependencies โ””โ”€โ”€ src/ โ”œโ”€โ”€ config/ โ”‚ โ”œโ”€โ”€ api.js # โš ๏ธ UPDATE YOUR IP HERE โ”‚ โ””โ”€โ”€ google.js # Google OAuth config โ”œโ”€โ”€ contexts/ โ”‚ โ””โ”€โ”€ AuthContext.js # Authentication โ”œโ”€โ”€ screens/ โ”‚ โ”œโ”€โ”€ LoginScreen.js # Login UI โ”‚ โ””โ”€โ”€ HomeScreen.js # Main VQA UI โ”œโ”€โ”€ services/ โ”‚ โ””โ”€โ”€ api.js # API client โ””โ”€โ”€ styles/ โ”œโ”€โ”€ theme.js # Design system โ””โ”€โ”€ globalStyles.js ``` ## ๐Ÿ“š Documentation - **Quick Start**: `QUICK_START.md` (this file) - **Full README**: `ui/README.md` - **Implementation Details**: See walkthrough artifact ## ๐ŸŽจ Customization ### Change Colors Edit `ui/src/styles/theme.js`: ```javascript colors: { primary: '#6366F1', // Change to your color secondary: '#EC4899', // Change to your color // ... } ``` ### Change App Name Edit `ui/app.json`: ```json { "expo": { "name": "Your App Name", "slug": "your-app-slug" } } ``` ## ๐Ÿšข Next Steps Once everything works: 1. **Add Google OAuth** for production 2. **Create custom icons** (see `ui/assets/ICONS_README.md`) 3. **Build standalone app**: ```bash npx eas-cli build --platform android ``` ## ๐Ÿ’ก Tips - **Backend must run first** before starting the mobile app - **Same WiFi network** is required for phone and computer - **First load is slow** - subsequent loads are faster - **Shake phone** to access Expo developer menu - **Check logs** in both terminals for debugging ## ๐Ÿ†˜ Need Help? 1. Check the troubleshooting section above 2. Review backend terminal for errors 3. Check Expo console in terminal 4. Verify all configuration steps --- **Ready to test?** Follow the 4 steps above and start asking questions about images! ๐ŸŽ‰