Portfolio Details
Deli — Restaurant Management SaaS
An API-first restaurant POS and management SaaS that runs dine-in, delivery and pickup orders, tables and reservations, kitchen stations and printers, offers and coupons, and profit reports from one platform. It powers four apps from a single Laravel back end: the platform admin, the restaurant dashboard, the cashier POS and the customer ordering app.
Deli is a multi-restaurant SaaS built with Laravel as a versioned REST API with separate surfaces for the platform admin, restaurant owners and staff, cashiers, and customers. Every restaurant's data is isolated automatically through a global scope, and access is controlled by roles and permissions with Passport-based authentication.
Restaurants manage their menu with categories, items, sizes, add-ons and market-price items, along with offers, coupons, taxes, banners, tables, delivery regions and cancellation reasons. Cashiers take dine-in, delivery and pickup orders, while customers sign in with an SMS one-time password, browse the menu, keep favourites, place orders and leave reviews for items and restaurants.
The heart of the system is the kitchen workflow: each order is split automatically into sub-orders by kitchen section — Eastern, Western, Asian, bar and so on — so every station receives only its own items, while a central screen tracks the whole order. Orders reach kitchen screens and printers instantly through Pusher events, and the platform includes net-profit and operational reports plus a full activity log.
The hardest part was splitting a single order across several independent kitchen stations while keeping the order status in sync between the cashier, kitchen screens, printers and the main dashboard in real time.
Editing an order that was already sent to the kitchen added another layer: the kitchen had to be told exactly what changed — which items were added, updated or cancelled — without reprinting the whole order or sending duplicate tickets to the wrong printer.
I built order creation and updates as Laravel pipelines — validation, sub-order creation per section, total calculation and printer requests — so each step is isolated, reusable and easy to test. When an order is edited, a diff service compares the order before and after and sends each kitchen only the updated and cancelled items.
For printing, the back end broadcasts Pusher events to Dile Printing, a desktop app that manages the restaurant's printers, and renders receipts as images for thermal printers, with queued jobs handling sub-order printing. SMS delivery sits behind a provider interface (SMS Misr and Twilio), so providers can be swapped without touching business logic.
Key Features
Multi-restaurant SaaS with automatic per-restaurant data isolation
Four apps on one API: admin, restaurant dashboard, cashier POS and customer app
Dine-in, delivery and pickup orders with tables and reservations
Automatic splitting of each order across kitchen sections
Real-time kitchen screens and printing through Pusher
Edit-aware printing that sends only changed or cancelled items
Menu with sizes, add-ons and market-price items
Offers, coupons, taxes and delivery regions
Customer app with SMS OTP sign-in, favourites and reviews
Net-profit reports and a full activity log
Arabic & English localization