A React Native mobile app that helps users find vegetarian options at nearby restaurants using AI-powered web scraping and intelligent menu analysis.
- 🔍 Restaurant Discovery: Find nearby restaurants using Google Places API
- 🤖 AI Web Scraping: Intelligent menu extraction from restaurant websites
- 🧠 Smart Analysis: AI-powered vegetarian option detection with confidence scoring
- 📊 Detailed Reports: Comprehensive analysis with statistics and recommendations
- 💾 Save & Share: Save analysis reports and regenerate when needed
- ⚡ Parallel Processing: Fast multi-threaded menu scraping for large restaurants
GreenCompass/
├── app/ # React Native screens
│ ├── index.js # Home screen
│ ├── results.js # Restaurant search results
│ ├── analysis.js # Menu analysis display
│ ├── saved-restaurants.js # Saved restaurants
│ └── saved-analysis.js # Saved analysis reports
├── backend/ # Node.js backend server
│ ├── server.js # Express server with worker threads
│ └── services/ # Playwright scraper & AI services
├── services/ # Frontend services
│ ├── webScrapingService.js # Backend API integration
│ ├── googleMapsService.js # Google Places API
│ ├── llmService.js # AI analysis (Gemini)
│ └── advancedSearchService.js # Batch processing
└── components/ # React Native components
npm install
cd backend && npm install && cd ..Create .env with your API keys:
EXPO_PUBLIC_MAPS_API_KEY=your_google_maps_api_key
EXPO_PUBLIC_GEMINI_API_KEY=your_gemini_api_key
EXPO_PUBLIC_BACKEND_URL=http://localhost:3001cd backend
./start-server.shnpm start- Google Places API: Restaurant data and locations
- Google Gemini API: AI menu analysis
Get these from Google Cloud Console and Google AI Studio.
- Find Restaurants: Uses Google Places API to find nearby restaurants
- Web Scraping: Backend uses Playwright to intelligently scrape restaurant menus
- AI Analysis: Google Gemini analyzes menu items for vegetarian compatibility
- Smart Results: Displays vegetarian options with confidence scores and explanations
- Intelligent Menu Discovery: AI finds actual menu pages on restaurant websites
- Parallel Processing: Distributes submenu scraping across 4 worker threads
- Comprehensive Analysis: Detailed vegetarian analysis with reasoning
- Persistent Storage: Save and regenerate analysis reports
- Error Handling: Graceful fallbacks and retry mechanisms
- Frontend: React Native (Expo)
- Backend: Node.js + Express + Worker Threads
- Web Scraping: Playwright with AI-powered page discovery
- AI: Google Gemini for menu analysis
- APIs: Google Places API for restaurant data
GreenCompass - Making vegetarian dining choices easier with AI! 🌱✨