SmartOrder là hệ thống website đặt món và quản lý bán hàng Fullstack, được xây dựng dành cho nhà hàng, quán ăn, quán cà phê và mô hình kinh doanh đồ ăn trực tuyến.
Hệ thống cung cấp ba khu vực sử dụng riêng biệt:
1. Khách hàng
- Đăng ký, đăng nhập và khôi phục mật khẩu.
- Xem, tìm kiếm, lọc và sắp xếp sản phẩm.
- Xem chi tiết sản phẩm và thêm vào danh sách yêu thích.
- Quản lý giỏ hàng với trải nghiệm cập nhật nhanh.
- Quản lý hồ sơ và địa chỉ giao hàng.
- Đặt hàng và theo dõi trạng thái đơn hàng theo thời gian thực.
- Thanh toán tiền mặt, chuyển khoản QR hoặc PayOS.
- Nhận thông báo và đánh giá sản phẩm đã mua.
2. Nhân viên
- Bán hàng trực tiếp tại quầy bằng màn hình POS.
- Kiểm tra tồn kho và tạo đơn hàng.
- Quản lý hàng đợi đơn và màn hình bếp.
- Xác nhận thanh toán tiền mặt.
- Cập nhật trạng thái đơn hàng theo thời gian thực.
- Quản lý sản phẩm, khách hàng và chấm công theo quyền được cấp.
3. Quản trị viên
- Dashboard tổng quan hoạt động kinh doanh.
- Báo cáo và biểu đồ doanh thu.
- Quản lý sản phẩm, danh mục, hình ảnh và tồn kho.
- Quản lý banner và chương trình khuyến mãi.
- Quản lý đơn hàng và thanh toán.
- Quản lý khu vực, bán kính và phí giao hàng.
- Quản lý khách hàng, nhân viên, vai trò và quyền hạn.
- Theo dõi nhật ký hoạt động.
- Quản lý thông báo và cấu hình hệ thống.
Tính năng kỹ thuật nổi bật:
- Phân quyền RBAC cho Admin, Staff và Customer.
- Xác thực JWT và quản lý phiên đăng nhập.
- Realtime bằng Socket.IO cho đơn hàng, thanh toán và thông báo.
- Thanh toán trực tuyến qua PayOS và xử lý webhook.
- Render mã QR trực tiếp từ dữ liệu VietQR của PayOS.
- Upload hình ảnh lên Cloudflare R2.
- Gửi email qua SMTP.
- Hỗ trợ Web Push Notification.
- REST API có Swagger.
- Validation dữ liệu ở cả frontend và backend.
- Soft delete, migration và seed dữ liệu bằng Prisma.
- Responsive cho desktop, tablet và mobile.
- Skeleton loading, toast, empty state và error handling dùng chung.
Sản phẩm phù hợp để:
- Triển khai cho cửa hàng ăn uống.
- Làm nền tảng phát triển hệ thống bán hàng riêng.
- Tham khảo kiến trúc Next.js và NestJS thực tế.
- Làm đồ án hoặc dự án portfolio Fullstack.
Yêu cầu môi trường:
- Node.js 20 hoặc 22.
- MySQL 8 hoặc MariaDB.
- npm.
- Tài khoản PayOS, Cloudflare R2 và SMTP nếu muốn sử dụng các tích hợp tương ứng.
Gói sản phẩm bao gồm:
- Source code frontend.
- Source code backend.
- Prisma schema và migrations.
- Seed dữ liệu mẫu.
- File cấu hình môi trường mẫu.
- Hướng dẫn cài đặt và chạy dự án.