NgonNgay 是一个全栈 MERN 在线订餐应用,具备实时订单跟踪、管理员后台、Docker 部署支持,并集成了优惠券、评价、角色权限等功能。

Stars

25

7 天增长

暂无数据

Fork 数

0

开放 Issue

0

开源协议

暂无数据

最近更新

2026-07-14

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

该项目因其全面的功能集而突出,包括基于 Socket.IO 的实时更新、一键 Docker 部署(免去手动安装)、丰富的管理面板(含营收统计和 CSV 导出)以及使用隔离 MongoDB 的自动化测试套件。

适合谁使用

  • 学习 MERN 全栈及实时功能的全栈开发者
  • 寻求现成可部署订餐平台的小企业主
  • 构建现代 Web 技术作品集的学生
  • 对 Docker 化全栈应用感兴趣的 DevOps 工程师

典型使用场景

  • 搭建本地外卖配送服务,支持实时订单状态更新
  • 构建包含优惠券和评价管理的餐厅管理系统
  • 通过研究可生产级代码库学习全栈开发及测试
  • 在演示项目中展示 CI/CD 和 Docker 化部署流程

项目优势

  • 通过 Socket.IO 实现实时订单状态更新,并配有轮询备用机制保证可靠性
  • 一键 Docker Compose 部署,自动集成 MongoDB、服务端和前端,无需手动安装
  • 管理后台功能全面:营收统计、热销菜品、用户管理、订单导出为 CSV/Excel
  • 自动化测试套件(Jest + Supertest)使用内存 MongoDB,覆盖认证、订单、优惠券及角色权限

使用前须知

  • 需要 Docker 或手动配置 Node.js/MongoDB,并非完全托管的 SaaS 方案
  • Socket.IO 后端必须运行于支持 WebSocket 的平台(如 Render、Railway),不适合 Vercel Functions 等无服务器函数
  • 未内置邮件或短信通知系统,订单更新仅依赖应用内实时消息和轮询

README 快速开始

NgonNgay — Ứng dụng đặt món ăn trực tuyến (MERN Stack)

Ứng dụng full-stack cho phép người dùng đăng ký/đăng nhập, xem nhà hàng và món ăn, tìm kiếm/lọc, thêm vào giỏ hàng, đặt hàng (có mã giảm giá), theo dõi trạng thái đơn theo thời gian thực, và quản trị viên quản lý người dùng/món ăn/đơn hàng/mã giảm giá.

🚀 Cách chạy nhanh nhất: Docker (khuyên dùng)

Nếu máy bạn từng gặp khó khăn khi cài Node.js / MongoDB / lỗi kết nối Atlas, cách này giúp bạn bỏ qua TẤT CẢ các bước đó. Chỉ cần cài Docker Desktop (1 lần duy nhất), sau đó:

cp .env.example .env
docker compose up --build

Đợi vài phút để build xong, sau đó:

  • Mở trình duyệt vào http://localhost:5173 để dùng web
  • Tạo dữ liệu mẫu (chỉ cần chạy 1 lần đầu):
    docker compose exec server npm run seed
    

Docker sẽ tự động: cài MongoDB (chạy nội bộ, không cần MongoDB Atlas, không lỗi DNS), cài Node.js, cài toàn bộ thư viện, build và chạy cả backend lẫn frontend — chỉ với các lệnh ở trên.

Dừng toàn bộ hệ thống: docker compose down (dữ liệu vẫn được giữ lại nhờ Docker volume, chạy docker compose up lại là có ngay).


Công nghệ sử dụng

Thành phầnCông nghệ
Front-endReact 18 (Vite), React Router, Axios, Socket.IO Client
Back-endNode.js, Express.js, Socket.IO
DatabaseMongoDB (Mongoose)
Xác thựcJWT (JSON Web Token) + bcrypt
Log & giám sátWinston (ghi log ra file), Morgan (log HTTP request)
Đóng góiDocker, Docker Compose
Công cụVS Code, Git/GitHub, Postman

Cấu trúc dự án

food-order/
├── client/          # React - giao diện người dùng
│   ├── Dockerfile / nginx.conf
│   └── src/
│       ├── pages/         # Home, Foods, RestaurantDetail, Cart, Checkout, Orders, Favorites, Profile, Admin...
│       ├── components/    # Navbar, FoodCard, RestaurantCard, StarRating, Pagination, ProtectedRoute, ErrorBoundary
│       ├── context/       # AuthContext (JWT), CartContext, ToastContext, SocketContext (realtime)
│       └── services/api.js
├── server/          # Node.js + Express - API
│   ├── Dockerfile
│   ├── models/        # User, Restaurant, Food, Order, Review, Coupon (Mongoose schemas)
│   ├── controllers/   # Logic xử lý cho từng route
│   ├── routes/         # Định nghĩa endpoint API
│   ├── validators/     # Quy tắc validate input (express-val

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

react
精选
react GitHub avatar

react

React is a JavaScript library for building user interfaces with declarative, component-based, and cross-platform design.

Web 开发前端框架
246,741
tandpfun
精选
tandpfun GitHub avatar

wardrobe

A GPT‑image powered app that extracts individual garment cutouts from photos, organizes them into a digital wardrobe, and generates modeled outfit previews.

JavaScript
1,570
mshumer
精选
mshumer GitHub avatar

Claude-of-Duty

A browser-based first-person shooter built entirely with procedural generation and orchestrated AI agents, featuring 55k lines of Three.js/WebGL2 code and no art assets.

AI 与机器学习AI 智能体
1,234