Skip to content
BACK TO BLOG
FILE // BUILD_LOG 02
Case Study By Ryan Sebastian 2025-01-25 8 min readUpdated 2025-01-25

How We Digitized a Traditional Restaurant in 2 Weeks

From pen-and-paper orders to a full online platform, the Upalis story.

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

Get the next one

New writing on security engineering and AI memory, from work we actually did. How we handle your email.

Want to Digitize Your Restaurant?

Zero commission. Custom-built. Your platform, your data, your customers. We'll build you a system that pays for itself in months, not years.