How pranadeepveerabathini-cmyk/nutribot works
NutriBot is a Flask-based AI nutrition web app. Users interact through the browser UI; Flask handles requests, applies account and usage rules, invokes nutrition generation where needed, and returns results for display. The product also includes profile and chat persistence, account verification and recovery, subscription billing, meal logging, food-photo analysis, and PDF plan export. README capabilities guide the feature map; sampled excerpts do not show every route’s wiring, so uncertain connections are omitted.
Main entry points: app.py Flask routes · agent.py Nutrition agent · auth.py Authentication · app.js Web interface
Components 22
Web experience
- Web interface
static/js/app.js - Flask routes
app.py
Nutrition services
- Nutrition agent
agent.py - AI chat
app.py - Meal analysis
app.py - Meal planning
app.py - BMI advice
app.py - Family planning
app.py - Health tips
app.py - Food photo scanner
app.py - Meal logging
app.py - Plan PDF export
pdf_generator.py
Accounts and billing
- Authentication
auth.py - Email delivery
email_sender.py - Subscriptions
billing.py
User data
- Data models
models.py - NutriBot database
instance/nutribot.db
External integrations
- Google Gemini
- Groq
- Resend
- Stripe
Other components
- User
Connections 29
- User → Web interface: uses
- Web interface → Flask routes: API requests
- Flask routes → Web interface: returns results
- Flask routes → AI chat: dispatches
- Flask routes → Meal analysis: dispatches
- Flask routes → Meal planning: dispatches
- Flask routes → BMI advice: dispatches
- Flask routes → Family planning: dispatches
- Flask routes → Health tips: dispatches
- Flask routes → Food photo scanner: dispatches
- Flask routes → Meal logging: dispatches
- Flask routes → Plan PDF export: generates
- AI chat → Nutrition agent: generates response
- Meal analysis → Nutrition agent: analyzes prompt
- Meal planning → Nutrition agent: generates plan
- Family planning → Nutrition agent: generates plan
- Food photo scanner → Nutrition agent: analyzes image
- Nutrition agent → Google Gemini: generates content
- Nutrition agent → Groq: fallback generation
- Flask routes → Authentication: registers blueprint
- Authentication → Data models: reads and writes
- Authentication → Email delivery: sends verification
- Authentication → Email delivery: sends reset link
- Email delivery → Resend: sends email
- Flask routes → Data models: queries and updates
- Data models → NutriBot database: persists records
- Flask routes → Subscriptions: handles billing
- Subscriptions → Stripe: checkout and portal
- Stripe → Flask routes: webhook events