目录

智慧点单系统 (Smart Order System)

Python Django Vue License: MIT Version

基于 Django + Vue 3 的在线点单与门店运营系统,面向校园、小型餐饮门店和开源课程实践。V3.0.0 已从“能下单的 Demo”升级为“可演示、可测试、可复用”的经营闭环:顾客点单、优惠券、模拟钱包、订单追踪、用户反馈、商家履约、商品库存、运营指标和定时发券都能串起来。

本项目的充值、买券和余额支付均为课程演示用模拟余额,不接入真实支付,不作为商业收款系统使用。

Live Demo

入口 地址 演示账号
公网顾客端 http://124.223.3.214:20707/customer/ demo / demo123
公网商家端 http://124.223.3.214:20707/merchant/ merchant1 / 123456
健康检查 http://124.223.3.214:20707/api/health 无需登录

本地构建后访问 http://127.0.0.1:8080/customer/http://127.0.0.1:8080/merchant/

项目价值

目标 说明
降低点单等待 顾客提前选规格、加购物车、用券下单,减少现场排队和人工沟通。
提升履约透明度 订单从等待接单、制作中、待取走到已完成都有状态、取餐号和预计时间。
支持门店运营 商家可看订单指标、维护商品库存、处理反馈、创建并发放优惠券。
沉淀迭代依据 用户反馈可关联具体订单,商家端按待处理/处理中/已解决流转。
便于课程评分 已补齐 SDD/Harness、CI/CD、DeepSeek 审查、License、Live Demo 和答辩材料。
可二次开发 可改造成校园预约、社团活动售卖、轻量电商、门店 CRM 或课程模板。

详细说明见 docs/product-value.md

V3.0.0 功能

顾客端

  • 注册登录、门店选择、菜单分类筛选、规格选择和购物车。
  • 智能推荐:优先使用 deepseek-v4-flash,未配置或异常时规则推荐兜底。
  • 优惠券中心:领取免费券、用模拟余额购买营销券、下单时抵扣。
  • 模拟钱包:充值演示余额,查看充值、订单支付、退款、买券流水。
  • 订单中心:每笔订单展示商品明细、优惠券、原价、优惠、实付、取餐号和状态进度。
  • 订单反馈:可对具体订单提交评分和建议,也可提交一般产品反馈。

商家端

  • 运营看板:今日订单、营收、待接单、待取餐、平均评分、待处理反馈。
  • 订单履约:接单、制作完成、确认取走,完成后自动给用户累计积分。
  • 商品库存:新增商品、编辑名称/分类/价格/库存、上下架、上传图片。
  • 反馈工单:查看每条反馈、关联订单、联系方式和处理状态。
  • 优惠券运营:创建免费券或模拟购买券,配置库存、门槛、优惠额、定时发放标记,并可批量发放。

工程化

  • 后端事务保证:下单时库存扣减、余额扣减、优惠券核销在同一事务中完成。
  • 取消订单会回退库存、余额和优惠券状态。
  • python scripts/run_harness.py 一键执行 Django 检查、迁移漂移检查、API 测试和前端构建。
  • .gitlab-ci.yml 支持 GitLink/GitLab 风格 CI,包含 DeepSeek 自动代码审查入口。
  • python backend/manage.py issue_coupons 支持定时发券,可由服务器 cron 或流水线定时调用。

技术栈

层级 技术
后端 Django, Django REST Framework, TokenAuthentication
数据库 SQLite 默认开发;生产支持 MySQL/PostgreSQL 环境变量切换
前端 Vue 3, Pinia, Vue Router, Axios, Vite
工程 Harness, GitLab/GitLink CI, DeepSeek 自动代码审查, MIT License

快速开始

后端

cd backend
python -m venv venv

# Windows
venv\Scripts\activate

# Linux/macOS
source venv/bin/activate

pip install -r requirements.txt
python manage.py migrate
python manage.py seed_data
python manage.py runserver 0.0.0.0:8080 --noreload

前端

cd frontend
npm install
npm run build

开发模式:

cd frontend
npm run dev

一键质量验证

python scripts/run_harness.py

仅验证后端:

python scripts/run_harness.py --skip-frontend

定时发券

cd backend
python manage.py issue_coupons

建议在服务器 cron 中配置每天 08:00 和 16:00 运行一次;CI/CD 也可把它作为计划任务的一部分。该命令只发放 auto_issue=True 且仍在有效期内的优惠券。

演示账号

运行 python manage.py seed_data 后自动创建:

角色 用户名 密码 说明
顾客 demo demo123 默认演示用户,含余额和优惠券
顾客 student student123 课程评审体验号
顾客 tester tester123 复用测试用户
商家 merchant1 123456 中关村店
商家 merchant2 123456 五道口店
商家 merchant3 123456 西二旗店

API 概览

所有接口统一返回 {code, message, data}

模块 端点
系统 GET /api/health
用户 POST /api/user/register, POST /api/user/login, GET /api/user/profile
钱包 POST /api/user/recharge, GET /api/user/wallet
菜单 GET /api/menu, GET /api/menu/categories, GET /api/recommendations
优惠券 GET /api/coupons, GET /api/user/coupons, POST /api/coupons/claim, POST /api/coupons/purchase
购物车 GET /api/cart, POST /api/cart/add, POST /api/cart/update, POST /api/cart/remove, POST /api/cart/clear
订单 GET /api/order, POST /api/order/submit, POST /api/order/:id/cancel
反馈 POST /api/feedback
商家 POST /api/merchant/login, GET /api/merchant/stats, GET /api/merchant/orders
商家商品 GET/POST /api/merchant/menu, PUT/DELETE /api/merchant/menu/:id, POST /api/merchant/menu/:id/image
商家反馈 GET /api/merchant/feedback, POST /api/merchant/feedback/:id/status
商家优惠券 GET/POST /api/merchant/coupons, POST /api/merchant/coupons/:id/issue

更多验收映射见 docs/sdd-harness.md

核心数据模型

模型 说明
Store 门店
User 顾客/商家、余额、积分
WalletTransaction 模拟钱包流水
MenuItem / Spec 商品和规格
Cart / CartItem 购物车
CouponTemplate / UserCoupon 优惠券模板和用户持券
Order 订单、原价、优惠、实付、优惠券快照、状态
Feedback 用户反馈,可关联订单

课程实践交付物

文档 说明
docs/project-rubric-checklist.md 评分项对照
docs/product-value.md 项目创意、目标用户和复用价值
docs/sdd-harness.md SDD / Harness 工程实践
docs/ci-cd.md CI/CD、DeepSeek 审查和部署说明
docs/live-demo.md Live Demo 路线
docs/license-rationale.md MIT License 选择原因和边界
docs/pipeline-evaluation.md 流水线价值评估
CHANGELOG.md 版本记录

配置说明

生产环境通过环境变量注入,不建议把真实密钥提交到仓库:

SECRET_KEY=
DEBUG=False
ALLOWED_HOSTS=124.223.3.214,localhost,127.0.0.1
DATABASE_URL=mysql://user:password@host:3306/database
DEEPSEEK_API_KEY=
DEEPSEEK_MODEL=deepseek-v4-flash

仓库可以提交 .env.example 这类模板;真实数据库密码、面板账号、API Key 建议只放服务器环境变量或 CI/CD Secret。

已知边界

  • 模拟钱包不接入真实支付,不提供对账、退款渠道、发票或支付牌照能力。
  • 默认 SQLite 适合开发和演示;公网部署建议使用 MySQL 或 PostgreSQL。
  • 商家端订单刷新采用轮询,后续可升级 WebSocket 或 SSE。
  • 前端当前已有生产构建验证,但还没有 Playwright 自动 UI 测试。

License

本项目采用 MIT License。选择 MIT 是为了降低课程实践、校园试点和二次开发的复用门槛;使用者可以复制、修改、分发和商业使用,但必须保留版权声明和许可证文本。详细边界见 docs/license-rationale.md

最后更新:2026-06-24

关于
15.0 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号