How pranati-parandkar/snap2serve works
Snap2Serve is an AI recipe-discovery web app: users provide ingredient photos and cooking constraints, receive generated recipe options, then explore and cook a selection. The React app is the main interaction surface; Gemini handles ingredient detection, recipe generation, constrained recommendations, and chat. The app also includes recipe imagery, account data, feedback, and admin analytics. The README documents cooking-mode, dietary, comparison, sharing, and personalization capabilities, but the supplied excerpts do not show every UI-to-service connection; those links are omitted where wiring is uncertain.
Main entry points: App.tsx Recipe app · server.ts Express API · geminiService.ts Ingredient detection · pixabayService.ts Recipe imagery
Components 17
Recipe discovery
- Recipe app
src/App.tsx - Ingredient detection
src/services/geminiService.ts - Recipe generation
src/services/geminiService.ts - Smart recommendations
src/services/geminiService.ts - Recipe imagery
src/services/pixabayService.ts
AI assistance
- Chat assistant
src/components/ChatBot.tsx - Chat response
src/services/geminiService.ts
Accounts and insights
- API client
src/services/apiservice.ts - Accounts and preferences
server.ts - Community feedback
server.ts - Session analytics
server.ts
Backend services
- Express API
server.ts - Data models
models/Models.ts
Other components
- Cook
- Pixabay
- Google Gemini
- MongoDB
Connections 18
- Cook → Recipe app: provides ingredients
- Recipe app → Ingredient detection: requests detection
- Recipe app → Recipe generation: requests recipes
- Recipe app → Smart recommendations: requests ranking
- Ingredient detection → Google Gemini: analyzes images
- Recipe generation → Google Gemini: generates recipes
- Smart recommendations → Google Gemini: ranks options
- Recipe app → Recipe imagery: requests images
- Recipe imagery → Pixabay: fetches photos
- Recipe app → Chat assistant: opens assistant
- Chat assistant → Chat response: sends messages
- Chat response → Google Gemini: generates replies
- API client → Express API: sends API requests
- Express API → Data models: uses schemas
- Data models → MongoDB: persists records
- Express API → Accounts and preferences: handles account data
- Express API → Community feedback: handles feedback
- Express API → Session analytics: tracks sessions