开源外卖配送平台 — 低佣金、透明结算、社区驱动
FuYellowBlueRed 是一个开源的外卖配送平台,覆盖从用户下单到骑手配送的完整订单闭环。项目面向小型外卖团队、校园配送、社区团购等场景,提供可落地、可二次开发的技术方案。
- 完整订单闭环:消费者下单 → 商家接单备餐 → 骑手取餐配送 → 用户收货评价
- 多角色支持:消费者、商家、骑手、管理员四端一体化
- 开源免费:MIT 协议,核心功能永久免费
- 易于部署:Docker Compose 一键启动
- 架构清晰:采用分层架构,代码可维护性强
| 层级 | 技术 | 说明 |
|---|---|---|
| 前端 | React + Ant Design | 基于 AntD Pro,多角色统一入口 |
| 后端 | Python + FastAPI | 异步高性能,自动生成 API 文档 |
| 数据库 | MySQL / SQLite | 开发用 SQLite,生产推荐 MySQL |
| ORM | SQLAlchemy | Python 主流 ORM |
| 认证 | JWT (PyJWT) | 无状态 Token 鉴权 |
| 部署 | Docker + Docker Compose | 一键启动所有服务 |
FuYellowBlueRed/
├── backend/ # Python 后端
│ ├── app/
│ │ ├── main.py # FastAPI 入口
│ │ ├── config.py # 配置管理
│ │ ├── database.py # 数据库连接
│ │ ├── models/ # SQLAlchemy 模型
│ │ ├── schemas/ # Pydantic 数据模型
│ │ ├── api/ # API 路由
│ │ │ └── v1/ # API 版本 1
│ │ ├── core/ # 核心功能
│ │ │ ├── exceptions.py # 异常处理
│ │ │ ├── logger.py # 日志系统
│ │ │ └── middleware.py # 中间件
│ │ ├── services/ # 业务逻辑层
│ │ └── utils/ # 工具函数
│ ├── alembic/ # 数据库迁移
│ ├── tests/ # 测试
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/ # React 前端
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ ├── components/ # 通用组件
│ │ ├── hooks/ # 自定义 Hooks
│ │ ├── services/ # API 调用
│ │ ├── stores/ # 状态管理
│ │ └── utils/ # 工具函数
│ ├── package.json
│ └── Dockerfile
├── docs/ # 项目文档
│ ├── requirements.md # 需求规格说明书
│ ├── development-plan.md # 开发计划
│ └── architecture-review.md # 架构评审
├── docker-compose.yml
├── LICENSE
└── README.md
- Python 3.11+
- Node.js 18+
- MySQL 8.0+(或使用 SQLite)
- Docker & Docker Compose(可选)
git clone https://github.com/bankqjm/FuYellowBlueRed.git
cd FuYellowBlueRed
docker-compose up -d- 前端访问:http://localhost:3000
- 后端 API:http://localhost:8000
- API 文档:http://localhost:8000/docs
后端
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 初始化数据库
python -c "
import asyncio
from app.database import init_db
asyncio.run(init_db())
"
# 启动服务
uvicorn app.main:app --reload前端
cd frontend
npm install
npm run dev浏览商家、搜索商品、购物车、下单支付、订单跟踪、评价
店铺管理、商品分类管理、商品上下架、接单/拒单、备餐状态
待接单列表、取餐确认、送达确认、收入明细、模拟提现
商家审核、用户管理、平台数据概览
- 完整的订单闭环实现
- 四端角色功能
- 简化的支付、地图、通知方案
- 统一异常处理:结构化异常体系,统一错误响应
- API 版本控制:
/api/v1/前缀,平滑升级 - 数据库索引:高频查询优化,性能提升
- Service 层:业务逻辑与路由解耦
- 配置分层:支持环境变量
.env配置 - 前端 Hooks & 组件:代码复用,可维护性提升
项目提供种子数据脚本,可以快速初始化测试账号:
cd backend
python scripts/seed_data.py| 角色 | 手机号 | 密码 | 说明 |
|---|---|---|---|
| 管理员 | 13800000000 | admin123 | 管理后台 |
| 普通用户 | 13900000001 | user123 | 消费者端 |
| 商家 | 13900000002 | shop123 | 商家端 |
| 骑手 | 13900000003 | rider123 | 骑手端 |
| 模块 | 完整方案 | MVP 方案 |
|---|---|---|
| 支付 | 微信/支付宝 | 模拟支付 |
| 地图导航 | 地图 SDK | Haversine 距离计算 |
| 实时通信 | WebSocket | 前端轮询 |
| 部署 | 微服务 + K8s | 单机 Docker |
| 通知 | 短信/推送 | 站内消息 |
| 图片存储 | OSS/S3 | 本地文件 |
欢迎提交 Issue 和 Pull Request 参与项目贡献。
- ✅ Phase 1: MVP 开发(100%)
- ✅ Phase 2: 架构改进(100%)
- ⏳ 后续:性能优化、测试覆盖等