Báo cáo project

Scan to Order.

Hệ thống đặt món qua mã QR tại bàn toàn diện, đồng bộ thời gian thực giữa Khách hàng, Phục vụ và Nhà bếp nhằm tối ưu hóa quy trình vận hành và nâng cao trải nghiệm ăn uống.

1 thành viên (Cá nhân)React 19Node.jsPostgreSQLSocket.ioExpress
Cuộn xuống để khám phá

Chi tiết dự án (START)

Câu chuyện dự án

S

Situation - Bối cảnh

Trong các nhà hàng truyền thống, quy trình gọi món thủ công thường xuyên gặp điểm nghẽn vào giờ cao điểm: khách chờ lâu, waiter ghi nhầm đơn, bếp nhận đơn trễ, gây ảnh hưởng trực tiếp đến hiệu suất quán ăn và trải nghiệm dịch vụ khách hàng.

T

Task - Nhiệm vụ

Xây dựng hệ thống đặt món tự động đầu-cuối (end-to-end) hoạt động trực tiếp trên trình duyệt di động mà không cần cài app, đồng bộ real-time giữa Khách hàng, Phục vụ, Nhà bếp, đồng thời đảm bảo bảo mật cô lập phiên (Session Isolation) giữa các lượt khách và tự động tạo mã QR thanh toán VietQR qua cổng SePay.

A

Action - Quyết định & Thực thi

Tôi đã thiết kế hệ thống chia làm 3 phân hệ tương tác riêng biệt: Khách hàng (Mobile-first), Phục vụ (Dashboard quản lý bàn), và Bếp (Board trạng thái chế biến). Sử dụng Socket.io để truyền phát sự kiện đồng bộ tức thời. Triển khai cơ chế bảo mật 'Session Isolation' bằng cách gán mã Session ID độc nhất cho mỗi lượt quét QR để cô lập giỏ hàng và đơn hàng giữa các lượt ngồi bàn ăn. Ngoài ra, tích hợp trợ lý ảo AI RAG sử dụng model nhúng BGE-M3 để tư vấn món ăn phù hợp với ngân sách của khách và kết nối webhook VietQR để xác thực giao dịch tự động.

R

Result - Kết quả đạt được

Hệ thống đã vận hành hoàn chỉnh với luồng hoạt động khép kín từ đặt món đến thanh toán. Cơ chế Socket.io giúp đồng bộ đơn hàng chỉ trong dưới 1 giây, loại bỏ hoàn toàn hiện tượng trễ. Hệ thống cô lập phiên hoạt động ổn định, ngăn chặn 100% việc rò rỉ thông tin giữa các lượt khách. Quy trình thanh toán tự động qua VietQR giúp giảm 70% thời gian xử lý thủ công của thu ngân.

T

Takeaway - Bài học kinh nghiệm

Dự án giúp tôi làm chủ kỹ năng thiết kế hệ thống thời gian thực quy mô trung bình và giải quyết bài toán đồng bộ trạng thái phức tạp (State Machine). Tôi cũng rút ra bài học sâu sắc về tầm quan trọng của bảo mật dữ liệu ở mức phiên (Session-level security) và cách tối ưu hóa hiệu năng cơ sở dữ liệu PostgreSQL khi xử lý nhiều truy vấn đồng thời trong môi trường nhà hàng bận rộn.

Preview & Trải nghiệm thực tế

Mỗi màn hình đi kèm phần mô tả chi tiết để làm rõ luồng hoạt động và trải nghiệm người dùng thực tế.

màn hình chính
Xem toàn màn hình
01

màn hình chính

Giao diện trang chủ chào đón thực khách ngay sau khi quét mã QR tại bàn, hiển thị lời mời món ăn đặc trưng nổi bật của quán.

hình ảnh menu
Xem toàn màn hình
02

hình ảnh menu

Thực đơn trực quan dạng lưới hỗ trợ lọc theo danh mục, hiển thị món ăn đi kèm hình ảnh sắc nét, giá bán và các nhãn trạng thái món ăn.

màn hình detail món ăn
Xem toàn màn hình
03

màn hình detail món ăn

Giao diện chi tiết món ăn cho phép thực khách tùy chỉnh kích cỡ (Size), thêm món đi kèm (Toppings) và nhập ghi chú chế biến gửi xuống bếp.

màn hình giỏ hàng
Xem toàn màn hình
04

màn hình giỏ hàng

Giỏ hàng thông minh tự động cộng dồn số lượng, tính toán tổng tiền tạm tính và cho phép cập nhật số lượng món ăn trực quan.

màn hình qr thanh toán
Xem toàn màn hình
05

màn hình qr thanh toán

Mã QR thanh toán động VietQR tự động tích hợp chính xác số tiền cần trả và mã đơn hàng của phiên (Session) hiện tại thông qua cổng SePay.

màn hình xác nhận thanh toán
Xem toàn màn hình
06

màn hình xác nhận thanh toán

Màn hình chờ giao dịch đang được xử lý bởi backend thông qua webhook ngân hàng hoặc kiểm tra định kỳ (polling), hiển thị loader vòng tròn.

xác nhận gọi món thành công
Xem toàn màn hình
07

xác nhận gọi món thành công

Màn hình xác nhận đặt món thành công đi kèm thanh tiến trình trực quan giúp thực khách dễ dàng theo dõi thời gian thực trạng thái nấu nướng.

hình ảnh chatbot popup
Xem toàn màn hình
08

hình ảnh chatbot popup

Trợ lý ảo Bé Bảy (AI Chatbot) sử dụng cơ sở tri thức RAG để tư vấn món ăn phù hợp với khẩu vị, tự động bỏ giỏ và kích hoạt SOS gọi nhân viên.

màn hình đánh giá
Xem toàn màn hình
09

màn hình đánh giá

Trang thu thập đánh giá ẩn danh của thực khách sau khi thanh toán thành công, giúp nhà quản lý nắm bắt chất lượng món ăn và phục vụ tức thì.

màn hình gửi yêu cầu
Xem toàn màn hình
10

màn hình gửi yêu cầu

Giao diện gửi yêu cầu phục vụ nhanh tại bàn như gọi đá, đũa ăn, nước lọc, hoặc nút SOS hỗ trợ khẩn cấp, gửi tín hiệu Socket.io tức thời.

màn hình nhắc nhở
Xem toàn màn hình
11

màn hình nhắc nhở

Thông báo cảnh báo bàn trống tự động xuất hiện khi bàn ăn không phát sinh thao tác trong thời gian dài, bảo vệ phiên hoạt động của khách.

cook trang chủ
Xem toàn màn hình
12

cook trang chủ

Bảng điều khiển của nhà bếp hiển thị trực quan hàng đợi các món cần nấu phân chia theo thứ tự thời gian đặt, hỗ trợ cập nhật một chạm.

waiter trang chủ
Xem toàn màn hình
13

waiter trang chủ

Sơ đồ bàn thời gian thực dành cho nhân viên phục vụ, hiển thị trạng thái màu sắc của bàn (đang trống, đang ăn, chờ thanh toán, SOS).

waiter màn hình chi tiết bàn
Xem toàn màn hình
14

waiter màn hình chi tiết bàn

Bảng điều khiển chi tiết bàn ăn của Waiter cho phép cộng thêm món, gộp/chuyển bàn và xác nhận phê duyệt thanh toán tiền mặt thủ công.

Mã nguồn & Demo

Trải nghiệm dự án
Source Code & Demo

Xem toàn bộ mã nguồn trên GitHub hoặc mở bản demo hoạt động thực tế.

BGE-M3 Embedding Service
DỰ ÁN TIẾP THEO
Sẵn sàng cho cơ hội mới

Cùng hợp tác nhé.

Tôi đang tìm kiếm những thử thách mới và cơ hội hợp tác. Nếu bạn có câu hỏi hoặc chỉ muốn chào hỏi, tôi sẽ phản hồi sớm nhất có thể.