How niharpy/calorieboy works
This is a meal-planning and food-commerce platform. Users authenticate, manage nutrition preferences, receive semantic meal or weekly-plan recommendations, create recipes, place orders, manage carts, and log food. Admins maintain the meal catalog, while delivery riders authenticate, discover nearby orders, accept them, and confirm pickup or delivery with proof. The sampled code shows MongoDB-backed state, Qdrant/OpenAI recommendations, Cloudinary uploads, OpenFoodFacts logging, and map-based assignment or fee calculation. Some controller routes are only partially sampled, so uncertain internal calls are omitted.
Components 28
API and Auth
- User API
routes/userRoutes.js - User Auth
helpers/authController.js - User Controller
controllers/userController.js - Admin API
routes/adminRoutes.js - Admin Auth
helpers/adminAuth.js - Delivery API
routes/deliveryRoutes.js - Rider Auth
helpers/verifyDeliveryBoyAuth.js
Nutrition Intelligence
- Embedding Service
services/embeddingService.js - Preference Embeddings
services/userPreferenceEmbeddingService.js - Meal Catalog
models/mealSchrma.js - User Profiles
models/userSchema.js
Commerce Operations
- Order Controller
controllers/orderController.js - Cart Orders
models/cartOrder.js - Orders
models/orderSchema.js - Recipes
models/recipeSchema.js
Admin and Delivery
- Admin Controller
controllers/adminController.js - Delivery Controller
controllers/DeliveryboyController.js - Admin Profiles
models/adminSchema.js - Rider Profiles
models/Deliveryboy.js
Other components
- User App
- Admin
- Delivery Rider
- OpenAI
- Qdrant
- MongoDB
config/connectMongoDB.js - Google Maps
- OpenFoodFacts
- Cloudinary
config/cloudinary.js
Connections 44
- User App → User API: calls
- User API → User Auth: protects
- User API → User Controller: dispatches
- User API → Order Controller: dispatches
- User Auth → User Profiles: checks users
- User Controller → User Profiles: reads/writes
- User Controller → Meal Catalog: reads meals
- User Controller → Preference Embeddings: syncs preferences
- User Controller → Embedding Service: creates vectors
- User Controller → OpenFoodFacts: fetches food
- Preference Embeddings → User Profiles: loads profile
- Preference Embeddings → OpenAI: embeds text
- Preference Embeddings → Qdrant: upserts vectors
- Embedding Service → OpenAI: embeds query
- User Controller → Qdrant: searches meals
- Order Controller → User Profiles: loads user
- Order Controller → Meal Catalog: loads meals
- Order Controller → Recipes: loads recipes
- Order Controller → Orders: creates orders
- Order Controller → Cart Orders: creates carts
- Order Controller → Google Maps: calculates distance
- Admin → Admin API: calls
- Admin API → Admin Auth: protects
- Admin API → Admin Controller: dispatches
- Admin Controller → Admin Profiles: checks admin
- Admin Controller → Meal Catalog: manages meals
- Admin Controller → OpenAI: embeds meals
- Admin Controller → Qdrant: indexes meals
- Admin Controller → Cloudinary: uploads images
- Delivery Rider → Delivery API: calls
- Delivery API → Rider Auth: protects
- Delivery API → Delivery Controller: dispatches
- Delivery Controller → Rider Profiles: updates rider
- Delivery Controller → Orders: updates orders
- Delivery Controller → Admin Profiles: finds admins
- Delivery Controller → Google Maps: ranks routes
- Delivery Controller → Cloudinary: uploads proof
- Meal Catalog → MongoDB: persists
- User Profiles → MongoDB: persists
- Orders → MongoDB: persists
- Cart Orders → MongoDB: persists
- Recipes → MongoDB: persists
- Admin Profiles → MongoDB: persists
- Rider Profiles → MongoDB: persists