The Client
Upali's is a premium Sri Lankan restaurant in Colombo, known for signature dishes like their famous Baduma (fried banana flower & peanuts) and a traditional Hathmaluwa (7-in-1 vegetable curry). They manage 103+ menu items across 14 categories, from Signature Dishes and Rice & Curry to Hoppers & Rotis, Seafood, and Breakfast Specials.
Like most restaurants in Sri Lanka, everything ran on paper, handwritten orders, printed menus, phone-based delivery coordination. It worked, until it didn't.
The Challenge
Upali's was losing customers to platforms like Uber Eats and PickMe Food, but those platforms take 25–30% commission on every order. For a restaurant operating on thin margins, that's the difference between profit and loss.
Order taking
Manual, phone-based, errors, missed orders during rush hours
Menu updates
Required reprinting physical menus: slow and expensive
Online presence
No website, no delivery/takeaway system of their own
Data & insights
No visibility into popular items, peak hours, or revenue trends
Third-party fees
25–30% commission on every Uber Eats / PickMe order
Multi-language
Menus needed in English, Sinhala, and Tamil, triple the printing
Every order through Uber Eats costs us 30%. On a Rs. 3,000 order, that's Rs. 900 gone, just for the platform. We needed our own system.
The Solution
We built a custom restaurant management platform from scratch, not a WordPress template, not a SaaS reskin. A production-grade system tailored to how Upali's actually operates. Zero third-party PHP dependencies. 59 PHP files. 24,733 lines of code.
Order Management
Online ordering with delivery, pickup, and dine-in support. Real-time kitchen display system. Bulk status updates.
Digital Menu
103+ items across 14 categories with images, dietary filters (vegetarian, vegan, spicy), search, and multilingual support (English, Sinhala, Tamil).
Admin Dashboard
21 admin modules: orders, menu CRUD, discounts, reports, reservations, kitchen display, integrations, and role-based access control.
Mobile-First PWA
Progressive Web App: installable on any phone. Offline caching, push-ready, responsive design. No app store needed.
Zero Commission
PayHere payment integration (Visa, MasterCard, LankaQR, mCash) + cash on delivery. The restaurant keeps 100% of revenue.
Business Intelligence
Revenue charts, popular items tracking, peak hour analytics, customer loyalty program with Bronze/Silver/Gold/Platinum tiers.
Under the Hood
This wasn't a quick MVP. We built enterprise-grade infrastructure that a restaurant can actually rely on.
Backend
PHP 8.0+: zero dependencies, native PDO
Database
MySQL: 24 tables, full relational schema
Frontend
Vanilla JS: no frameworks, zero bloat
Caching
3-tier: Redis → APCu → File
Security
OWASP Top 10, PCI-DSS, CSRF, rate limiting
Auth
Argon2ID hashing, RBAC (Owner/Manager/Staff)
Payments
PayHere (HMAC-verified webhooks) + COD
Deployment
cPanel one-shot installer, ScalaHosting
Security: Not an Afterthought
Restaurants handle payment data and customer addresses. We treated security as a first-class requirement, not a checkbox.
Parameterized queries (zero SQL injection surface)
CSRF tokens with 1-hour expiry
Rate limiting: 60 req/min, 5 login attempts/15min
Fraud detection: honeypot fields + reCAPTCHA v3
Session hardening: HTTPOnly, Secure, SameSite
Tamper-evident audit trail logging
Security headers: CSP, HSTS, X-Frame-Options
Pentested with PhantomDragon AI
The Results
103+
Menu Items Digitized
14
Categories
0%
Commission Fees
3
Languages Supported
Full platform built, deployed, and live on cPanel hosting
103+ menu items with images, dietary flags, and trilingual descriptions
Admin can update menu, prices, images, and availability in real-time
Kitchen display system for real-time order management
Reservation system with table management
Loyalty program driving repeat orders (4-tier point system)
One-shot cPanel installer: seeds 14 categories + 103 items automatically
The Math
The real win isn't the technology: it's what the restaurant stops paying every month.
Monthly delivery orders (estimate)~$5,000
Uber Eats / PickMe commission (30%)−$1,500/month
Own platform hosting cost−$15–30/month
Monthly savings~$1,470/month
Annual savings~$18,000/year
* Estimates based on typical mid-range restaurant delivery volume in Colombo. Actual results vary by order volume and average order value.
Before & After
Before
Handwritten orders, phone-based delivery
Printed menus in one language
No online presence
30% commission on every platform order
No data on popular items or peak hours
Menu changes = reprint everything
After
Digital ordering with real-time kitchen display
Trilingual menu (EN, SI, TA), instant updates
Full PWA: installable on any phone
Zero commission: restaurant keeps 100%
Analytics dashboard with revenue & trend data
Menu updates in seconds from admin panel
Tech Stack
PHP 8.0+MySQLVanilla JSPWAPayHereArgon2IDRediscPanelApache
