HungCL.
Back

Course capstone · Team leader · 3 members

Siupo Restaurant — ordering, booking, and payment in one channel

A restaurant web app built as a course capstone and hosted at siupo.id.vn: menu browsing, shop/combos, vouchers, reservations, and MoMo checkout — led from architecture to DigitalOcean deploy.

Team Leader / Full-stack React · Spring Boot · MoMo Open site Frontend Backend Admin
Hosted · siupo.id.vn
Siupo Restaurant homepage
3Team members led
23REST controllers
36JPA entities
1Hosted domain

Problem

Phone/walk-in flows still dominate ordering and booking. Online payment, vouchers, and guest vs member journeys are fragmented or missing.

My role

Led architecture from UML to a hosted deploy, API contracts, MoMo IPN, and DigitalOcean hosting. Coordinated a 3-person team across frontend and backend delivery.

Product walkthrough

Screens from the customer site — menu, shop, vouchers, and brand pages.

Marketing homepage

01 — Marketing homepage

Open site ↗

UI mosaic

A quick visual scan of the restaurant brand surfaces.

Shop combos
Shop · Hot combos & specials
Menu page
Menu
Vouchers
Vouchers

What we built

  • Auth: register/login, OTP, password reset, Google OAuth2, Admin/Customer RBAC
  • Menu, cart, wishlist, vouchers, order history, notifications
  • Table reservation + QR order-at-table path
  • Checkout with MoMo IPN (HMAC) and COD option
  • i18n EN/VI customer UI; Docker Compose + Nginx/SSL on DigitalOcean

Architecture

Customer Web (React) Admin Web Spring Boot API · MoMo IPN MySQL Redis OTP Docker · DigitalOcean

Stack

React 19TypeScriptViteMUITailwind Spring Boot 3.5Java 21MySQLRedisMoMo DockerDigitalOcean

Impact

  • Course capstone project hosted at siupo.id.vn
  • End-to-end order / booking / payment beyond a static menu site
  • Clear teamwork process with API contracts and a deployable Docker setup

What I’d improve next

  • Hardening payment edge cases and idempotent IPN under retries
  • Admin analytics for conversion and reservation no-shows
  • Stronger regression suite around checkout and booking conflicts

Want to open the restaurant site?

Open siupo.id.vn