Case Study
A complete restaurant platform built from scratch with table reservations, pickup ordering, secret deals with countdown reveals, manual payment verification, staff order validation, and a fully custom CMS built without any third-party library. Deployed on a self-managed server with Nginx. Six weeks, one developer, zero shortcuts.
Full-Stack Web Developer
Wai Sin Lee (Malaysia)
Complete Build (Restaurant Platform)
6 Weeks
React · Node.js · PostgreSQL · Nginx
2025
MinuteTaste is a web platform built for a Malaysian restaurant that also runs a phone case shop on the side. The client needed a full business system, not just a menu page, but a real operational platform covering table reservations, pickup ordering, a scheduled secret deals engine with countdown timers and auto-reveal, manual bank transfer payment verification, inventory management with rollback, and a staff-facing order validation page. On top of all of that, midway through the project the client asked for a completely custom CMS so he could edit every piece of content on the site himself, built from scratch with no Sanity and no third-party headless library. Delivered everything in six weeks.
Problem:
The client had a real business with no digital system behind it. He needed a platform that could handle reservations, orders, and a unique secret deals feature, all managed manually without payment gateways or delivery integrations. The system also had to be fully editable by a non-technical owner.
Goal:
Build a complete, stable MVP that the client could actually run his business on from day one, covering every customer-facing flow and every admin operation, deployed and live on a self-managed server.
My role:
Full-stack development from database design through to frontend, backend, custom CMS, and server deployment. One developer across the entire stack.
Responsibilities:
MinuteTaste had to work in a real restaurant environment from day one. The design balances a clean customer-facing experience with a practical, information-dense admin layer. The customer side is simple and clear, with Chinese and English throughout, a visible non-halal notice, and a straightforward flow from browsing to checkout. The admin and CMS side is built for a non-technical owner who needs to manage deals, verify payments, update menu items, and check orders without relying on a developer every time.
The typical MinuteTaste customer is a local regular who knows the restaurant and wants a faster way to reserve a table or order pickup without calling in. They are comfortable with a simple web flow on their phone, they pay via bank transfer or TNG because that is how things work locally, and they want confirmation that their order is real and being handled.
“If I reserve a table or order pickup, I need a clear confirmation that the restaurant has received it and my payment proof is safely attached.”
Reservations, pickup orders, and secret deal purchases all feed into the same order management layer. The customer sees three clear entry points on the homepage. Each flow leads to a guest checkout with payment proof upload and ends with an order number. The admin sees everything in one dashboard. The staff verification page sits outside the main flow entirely. It is a standalone page where staff enter an order number and instantly see VALID or INVALID in large text.
The secret deals engine was the most technically demanding part of the build. Each deal goes through four stages: pre-reveal, reveal, sold out, and auto-hide. In pre-reveal, only the price, countdown, and quantity are visible while the product name and photo stay hidden. At reveal, the full deal unlocks automatically at a scheduled time. When sold out, purchasing is disabled but the deal stays visible. Eighteen hours after selling out, the deal disappears from the front end. Inventory is reserved the moment an order is submitted, not when it is approved, to prevent overselling. If the admin cancels an order, the inventory rolls back automatically. Every rule in this system, including repurchase limits, quantity per order, stock visibility, and auto-cancel timing, is a toggle in the admin settings.
Midway through the project, the client asked for a CMS that would let him edit every visible piece of content on the site, including text, images, banners, labels, and notices, without touching the code or relying on a developer. The constraint was that no third-party CMS library was allowed. So I built it raw: a custom content management layer on top of the existing Node.js and PostgreSQL stack, with an admin interface that maps directly to every editable field on the front end. It was a significant addition to the original scope and one of the more interesting engineering challenges of the project.
There are no payment gateways in MinuteTaste. Customers pay via bank transfer or TNG and upload a screenshot as proof. The system compresses the image automatically, applies a watermark with the order number and timestamp, and stores it securely so only the admin can access it. After 60 days, the image deletes itself automatically for privacy. The admin then manually verifies the payment against their bank records and approves or cancels. Approval confirms the inventory. Cancellation triggers an automatic rollback. Every action is logged with a timestamp.
The whole platform runs in Docker containers on a self-managed server. Getting Nginx configured correctly for this setup was one of the bigger learning curves of the project, including routing, reverse proxying, and making sure everything stayed stable under the deployment. The client wanted something he owned and controlled, not a managed hosting solution, and that is what he got. The deployment holds and the platform has been running reliably since handoff.
MinuteTaste launched as a fully operational platform covering every flow the client needed to run his restaurant digitally. Reservations work. Pickup ordering works. The deals engine runs on schedule. Payments are verified manually with a clean audit trail. The staff verification page handles fake order prevention. The custom CMS lets the owner update anything on the site himself. The client left a five-star review on Upwork. Six weeks, one developer, no shortcuts.
The customer-facing side of MinuteTaste is primarily used on mobile. The checkout flow, the deals countdown, the menu browsing, and the payment proof upload are all built and tested for small screens first. The admin panel is desktop-focused since that is where the owner operates from, but the staff verification page works on any device since staff use whatever is available at the counter.