A quick-commerce platform that lets users order fresh, pre-measured ingredients for a specific dish - delivered in 30–90 minutes. No meal planning, no grocery selection, no prep work.
Select a dish → ingredients arrive at your door → you cook it.
| Folder | What it is |
|---|---|
backend/ |
Node.js + Express REST API |
frontend/ |
Customer-facing React web app |
darkstore/ |
Staff dashboard for order packing (React) |
mobile/ |
Customer Android app (React Native + Expo) |
- Browse dishes by cuisine, meal type, or search
- View ingredient list before ordering
- Multi-dish cart with per-dish serving selector
- Place orders with name and address
- Order confirmation with full ingredient breakdown
- Order history with expandable ingredient details
- Firebase email/password authentication
- Live order board (New → Packing → Ready → Out for delivery)
- Auto-refreshes every 5 seconds
- Per-order ingredient checklist - "Mark packed" locked until all items ticked
- Live timer showing how long since order was placed
- Turns red after 10 minutes (urgent)
GET /dishes- list all active dishesGET /dishes/:id- dish detail with ingredientsPOST /orders- place a multi-dish orderGET /orders- all orders with items and ingredientsGET /orders/:id- single order detailPATCH /orders/:id/status- update order status
Frontend/Mobile
- React Native (Expo SDK 56)
- React.js (web apps)
- Axios for API calls
- Firebase Auth (email/password)
Backend
- Node.js + Express
- PostgreSQL (Neon - cloud hosted)
pgfor database queries- CORS + dotenv
Deployment
users - id, name, email, phone
dishes - id, name, cuisine, meal_type, description, prep_time, cook_time, price
ingredients - id, name, unit
dish_ingredients - dish_id, ingredient_id, quantity_per_serving
orders - id, customer_name, address, status, total_amount
order_items - order_id, dish_id, servings, price_at_order
- Node.js v18+
- PostgreSQL (local) or a Neon account
- Expo Go app on Android
git clone https://github.com/rohitchennam/dishkit
cd dishkitcd backend
npm installCreate .env:
DATABASE_URL=postgresql://user:password@localhost:5432/dishkit
PORT=3000
node setup.js # create tables
node seed.js # add sample dishes
npm run dev # start servercd frontend
npm installCreate .env:
REACT_APP_API_URL=http://localhost:3000
npm start # opens on localhost:3001cd darkstore
npm install
npm start # opens on localhost:3002cd mobile
npm installEdit constants.js:
export const API = 'http://YOUR_LOCAL_IP:3000'npx expo start # scan QR code with Expo Go- Backend API: https://dishkit-backend.onrender.com/dishes
- GitHub: https://github.com/rohitchennam/dishkit
| Dish | Cuisine | Price |
|---|---|---|
| Chicken Biryani | Indian | ₹249 |
| Paneer Butter Masala | Indian | ₹199 |
| Spaghetti Carbonara | Italian | ₹279 |
| Veg Hakka Noodles | Chinese | ₹149 |
| Chicken Hakka Noodles | Chinese | ₹179 |
| Dal Tadka | Indian | ₹129 |
| Kerala Fish Curry | Indian | ₹299 |
| Chicken Quesadilla | Mexican | ₹219 |
| Paneer Tikka | Indian | ₹189 |
| Avocado Egg Toast | Western | ₹159 |
- Firebase phone OTP auth
- Google Sign-In
- Delivery partner app with live tracking
- Admin panel (dish/ingredient CRUD, analytics)
- AI dish recommendations based on order history
- Demand forecasting for inventory management
- Push notifications for order status updates
Rohit Chennam - GitHub