How soumadip-dev/bitebox works
BiteBox is a role-based food-delivery application: customers discover restaurants and items, check out and track orders; owners maintain menus and order status; delivery workers accept assignments and complete deliveries. The server exposes these domains through Express routes and controller/service layers, with MongoDB-backed models and Socket.IO for realtime updates. The README documents payment, email, OAuth, image hosting, and map capabilities; where their wiring was not sampled, links are limited to explicit evidence.
Main entry points: App.jsx React application · order.model.js Domain models · app.js Express application · item.controller.js Item controller
Components 27
Client experience
- React application
client/src/App.jsx - Restaurant and item discovery
client/src/pages/Home.jsx - Cart and checkout
client/src/pages/CheckOut.jsx - Order history and tracking
client/src/pages/TrackOrderPage.jsx - Owner management
client/src/components/OwnerDashboard.jsx - Delivery dashboard and tracking
client/src/components/DeliveryBoyDashboard.jsx - Client API modules
client/src/api/orderApi.js
Backend API
- Express application
server/src/app.js - Authentication routes
server/src/routes/auth.routes.js - Item routes
server/src/routes/item.routes.js - Order routes
server/src/routes/order.routes.js - Authentication controller
server/src/controller/auth.controller.js - Item controller
server/src/controller/item.controller.js - Order controller
server/src/controller/order.controller.js
Order and catalog
- Authentication service
server/src/services/auth.service.js - Item service
server/src/services/item.service.js - Order service
server/src/services/order.service.js - Domain models
server/src/model/order.model.js
External services
- MongoDB
- Socket.IO server
server/src/socket.js - Razorpay
- Cloudinary image storage
- Brevo mail service
- Geoapify geocoding
Other components
- Customer
- Restaurant owner
- Delivery worker
Connections 26
- Customer → React application: uses
- Restaurant owner → React application: uses
- Delivery worker → React application: uses
- React application → Restaurant and item discovery: routes to
- React application → Cart and checkout: routes to
- React application → Order history and tracking: routes to
- React application → Owner management: loads dashboard
- React application → Delivery dashboard and tracking: loads dashboard
- React application → Socket.IO server: connects
- React application → Geoapify geocoding: geocodes location
- Express application → Authentication routes: mounts
- Express application → Item routes: mounts
- Express application → Order routes: mounts
- Authentication routes → Authentication controller: dispatches
- Item routes → Item controller: dispatches
- Order routes → Order controller: dispatches
- Authentication controller → Authentication service: calls
- Item controller → Item service: calls
- Order controller → Order service: calls
- Authentication service → Domain models: reads and writes
- Item service → Domain models: reads and writes
- Order service → Domain models: reads and writes
- Domain models → MongoDB: persists
- Item controller → Cloudinary image storage: uploads images
- Order controller → Brevo mail service: sends OTP mail
- Cart and checkout → Razorpay: supports payment