Portfolio Details

Laravel Livewire Alpine.js Tailwind
30/06/2026
Rowad

Deli Call Center — Restaurant Reservations SaaS

A multi-tenant SaaS for restaurant call centers that manages table reservations for many restaurants and branches: live table availability, deposits and refunds, decor packages, customer follow-ups, notifications and reports. Built with the TALL stack and integrated with the Deli POS through an API and authenticated webhooks.

Deli Call Center is a B2B SaaS where each tenant is a call center managing a group of restaurants and branches. Agents receive reservation requests from the phone, WhatsApp, Instagram, Messenger or the app, look up or register the customer, and book a table from a color-coded live grid that shows each table's status, capacity and existing bookings. Every reservation moves through a clear lifecycle — new, confirmed, waiting, seated, done, cancelled or no-show — with operating periods that can cross midnight, optional decor packages, and a deposit paid by InstaPay or wallet with proof of payment, including partial refunds. A Today Board gives agents a live view of the day's reservations, a notification bell keeps the team updated, and customer comments track follow-up actions. Admins manage restaurants, tables, locations, periods, decor packages, users and roles, and grant individual permissions on top of each role. Reports cover reservations, deposits, periods and restaurant performance. The interface is bilingual, Arabic-first with RTL, and fully responsive.
The call center does not own the restaurants' live data — the POS does. Table status, locations and reservations had to stay in sync between two separate systems with separate databases, without double-booking a table or losing an update when one side is temporarily unreachable. On top of that, several call centers share one database, so tenant data had to stay strictly isolated, and reservation codes, availability checks and money flows had to remain correct under concurrent use by many agents.
I built single-database multi-tenancy with a global scope and a tenant middleware, so every query is filtered to the current call center automatically. Each restaurant is linked to the POS through a unique POS UUID and encrypted API credentials, with a connection test. The call center syncs reservations, table actions and locations through the POS API and receives updates through webhooks authenticated with a per-restaurant API secret; the POS retries failed deliveries and a daily job reconciles anything missed, while the live tables screen polls the POS itself rather than only the local database. Business logic lives in dedicated services — availability, reservations, deposits and reports — with gap-free, concurrency-safe reservation codes per tenant. The system is covered by more than 660 automated tests, including the POS integration flows.

Key Features

Multi-tenant SaaS: one database with isolated data per call center
Live, color-coded table grid with availability checks
Reservations from phone, WhatsApp, Instagram, Messenger and the app
Seven-state reservation lifecycle with periods that cross midnight
Deposits by InstaPay or wallet with proof and partial refunds
Decor packages and customer follow-up comments
Deli POS integration through an API and authenticated webhooks
Today Board and a live notification bell
Reservation, deposit, period and restaurant reports
Roles plus per-user permissions with spatie/laravel-permission
Bilingual interface, Arabic-first with RTL
660+ automated tests