Skip to content

About

天下苦黄蓝红久矣

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

FuYellowBlueRed 🍜

开源外卖配送平台 — 低佣金、透明结算、社区驱动

项目简介

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(可选)

Docker 部署(推荐)

git clone https://github.com/bankqjm/FuYellowBlueRed.git
cd FuYellowBlueRed
docker-compose up -d

本地开发

后端

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

功能概览

消费者端

浏览商家、搜索商品、购物车、下单支付、订单跟踪、评价

商家端

店铺管理、商品分类管理、商品上下架、接单/拒单、备餐状态

骑手端

待接单列表、取餐确认、送达确认、收入明细、模拟提现

管理端

商家审核、用户管理、平台数据概览

架构亮点

Phase 1: MVP 开发(已完成)

  • 完整的订单闭环实现
  • 四端角色功能
  • 简化的支付、地图、通知方案

Phase 2: 架构改进(已完成)

  • 统一异常处理:结构化异常体系,统一错误响应
  • API 版本控制:/api/v1/ 前缀,平滑升级
  • 数据库索引:高频查询优化,性能提升
  • Service 层:业务逻辑与路由解耦
  • 配置分层:支持环境变量 .env 配置
  • 前端 Hooks & 组件:代码复用,可维护性提升

测试账号

项目提供种子数据脚本,可以快速初始化测试账号:

cd backend
python scripts/seed_data.py
角色 手机号 密码 说明
管理员 13800000000 admin123 管理后台
普通用户 13900000001 user123 消费者端
商家 13900000002 shop123 商家端
骑手 13900000003 rider123 骑手端

MVP 简化策略

模块 完整方案 MVP 方案
支付 微信/支付宝 模拟支付
地图导航 地图 SDK Haversine 距离计算
实时通信 WebSocket 前端轮询
部署 微服务 + K8s 单机 Docker
通知 短信/推送 站内消息
图片存储 OSS/S3 本地文件

文档

开源协议

MIT License

贡献

欢迎提交 Issue 和 Pull Request 参与项目贡献。

开发进度

  • ✅ Phase 1: MVP 开发(100%)
  • ✅ Phase 2: 架构改进(100%)
  • ⏳ 后续:性能优化、测试覆盖等

About

天下苦黄蓝红久矣

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages