A proof of concept demonstrating realtime order delivery across multiple devices using Socket.io.
- Admin Page: Create test orders for any venue
- Kitchen Display: Real-time order display with visual/audio alerts
- Multi-venue Support: Orders scoped by venue_id
- Reconnect Handling: Fetches existing orders on reconnect
- No Database: Uses in-memory storage (perfect for demos)
- Install dependencies:
npm install- Start the server:
npm start- Open in browser:
- Admin page: http://localhost:3000/admin.html
- Kitchen page: http://localhost:3000/kitchen.html?venue_id=001
- Open the admin page on your computer
- Open the kitchen page on another device (phone/iPad) with the same venue_id
- Create an order from the admin page
- Watch it appear instantly on the kitchen display!
📋 For detailed, step-by-step deployment instructions, see DEPLOY.md
Quick steps:
- Push code to GitHub
- Deploy to Render.com (free tier, no credit card needed)
- Share the public URL with your client
The client can then:
- Open Admin page on their computer:
https://your-app.onrender.com/admin.html - Open Kitchen page on their phone/iPad:
https://your-app.onrender.com/kitchen.html?venue_id=001 - Create orders and see them appear in real-time - no coding knowledge needed!
.
├── server.js # Express + Socket.io server
├── package.json # Dependencies
├── public/
│ ├── admin.html # Admin interface
│ └── kitchen.html # Kitchen display
└── README.md # This file
GET /api/orders/:venue_id- Get all orders for a venueDELETE /api/orders/:venue_id- Clear orders for a venue (testing)GET /health- Health check endpoint
join_venue- Join a venue room (pass venue_id)new_order- Create a new order (pass {venue_id, order})
existing_orders- Receives all existing orders when joiningorder_received- Receives new order in realtime
- This is a proof of concept only - no authentication, payments, or database
- Orders are stored in memory (will be lost on server restart)
- Perfect for demos and client testing
- Works great on mobile devices and tablets
- Use different venue_ids to test multiple kitchens
- Test reconnection by closing/reopening the kitchen page
- Test on different devices (phone, tablet, desktop)
- Try creating multiple orders quickly to see realtime updates
- Database persistence
- User authentication
- Payment processing
- Order status updates
- Order history
- Analytics dashboard