xiangqinxiaochengxu/README.md

345 lines
6.3 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 10:49:14 +08:00
# 相亲小程序项目 README
## 1. 项目简介
这是一个基于微信小程序的相亲活动与匹配平台,包含 3 个子系统:
1. `backend/`Python FastAPI 后端
2. `miniprogram/`:微信小程序原生前端
3. `admin-web/`Vue3 + Element Plus 后台管理端
当前系统已经完成基础主链路:
1. 微信登录
2. 用户资料编辑与提交审核
3. 后台审核
4. 活动发布、报名、查看我的活动
5. 匹配候选、感兴趣、我的匹配
6. AI 推荐基础能力
7. 公告管理与首页公告展示
8. 后台活动管理、公告管理、数据看板
## 2. 目录结构
```text
xqxcx/
├── backend/ # FastAPI 后端
├── miniprogram/ # 微信小程序
├── admin-web/ # Vue3 后台管理端
├── 开发规划.md
├── 功能差距清单.md
├── 验收清单.md
├── 上线准备清单.md
└── README.md
```
## 3. 环境要求
建议本地环境如下:
1. Python 3.11
2. Node.js 18+
3. npm 9+
4. MySQL 8.0
5. Redis 7.x
6. 微信开发者工具
## 4. 首次启动前准备
### 4.1 准备数据库
先创建数据库:
```sql
CREATE DATABASE dating_app DEFAULT CHARACTER SET utf8mb4;
```
### 4.2 准备 Redis
本地默认配置使用:
1. Host`127.0.0.1`
2. Port`6379`
3. DB`0`
目前代码里 Redis 主要是预留配置,后续通知和缓存能力会继续接入。
## 5. 后端启动说明
### 5.1 进入后端目录
```bash
cd backend
```
### 5.2 创建虚拟环境
Windows PowerShell 示例:
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
```
### 5.3 安装依赖
```bash
pip install -r requirements.txt
```
### 5.4 配置环境变量
`backend/.env.example` 复制为 `backend/.env`,然后按实际环境修改。
最少需要确认这些配置:
```env
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=123456
MYSQL_DATABASE=dating_app
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB=0
JWT_SECRET_KEY=replace_with_a_secure_secret
WX_APPID=your_wx_appid
WX_SECRET=your_wx_secret
COS_REGION=ap-beijing
COS_SECRET_ID=your_cos_secret_id
COS_SECRET_KEY=your_cos_secret_key
COS_BUCKET=your_cos_bucket
COS_BASE_URL=https://your-bucket.cos.ap-beijing.myqcloud.com
```
### 5.5 执行数据库迁移
```bash
alembic upgrade head
```
### 5.6 初始化管理员账号
```bash
python scripts/init_admin.py
```
默认管理员账号:
1. 用户名:`admin`
2. 密码:`Admin@123456`
第一次启动后请尽快修改密码。
### 5.7 启动后端服务
```bash
uvicorn main:app --reload
```
默认启动地址:
1. 服务地址:`http://127.0.0.1:8000`
2. API 前缀:`http://127.0.0.1:8000/api/v1`
3. 健康检查:`http://127.0.0.1:8000/health`
### 5.8 后端快速自检
可以先访问:
```text
http://127.0.0.1:8000/health
```
如果返回:
```json
{"status":"ok"}
```
说明后端已经正常启动。
## 6. 后台管理端启动说明
### 6.1 进入后台目录
```bash
cd admin-web
```
### 6.2 安装依赖
```bash
npm install
```
### 6.3 启动开发服务
```bash
npm run dev
```
默认会输出一个本地地址,通常类似:
```text
http://127.0.0.1:5173
```
### 6.4 登录后台
使用管理员账号登录:
1. 用户名:`admin`
2. 密码:`Admin@123456`
后台当前已支持:
1. 登录
2. 待审核队列
3. 活动管理
4. 公告管理
5. 数据看板
## 7. 微信小程序启动说明
### 7.1 打开项目
使用微信开发者工具打开目录:
```text
miniprogram/
```
### 7.2 检查接口地址
当前小程序默认使用本地接口:
1. `miniprogram/utils/constants.js`
2. `miniprogram/app.js`
默认地址为:
```text
http://localhost:8000/api/v1
```
如果你的后端不是运行在本机,请改成实际地址。
### 7.3 开发者工具本地调试配置
如果你在本地联调,请在微信开发者工具中勾选:
1. `不校验合法域名`
2. `不校验 HTTPS 证书`
否则会出现错误:
```text
request:fail url not in domain list
```
### 7.4 真机调试说明
真机调试时不要使用 `localhost`,因为:
1. 手机访问不到你电脑的 `localhost`
2. 微信小程序要求请求域名在后台配置合法域名
真机调试需要:
1. 使用一个外网可访问的后端地址
2. 最好使用 HTTPS
3. 在微信公众平台配置 `request 合法域名`
## 8. 推荐启动顺序
建议按下面顺序启动:
1. 启动 MySQL
2. 启动 Redis
3. 启动后端 `backend/`
4. 启动后台 `admin-web/`
5. 使用微信开发者工具打开 `miniprogram/`
## 9. 常见问题
### 9.1 小程序报错 `request:fail url not in domain list`
原因:
1. 当前请求域名不在微信合法域名列表里
2. 或开发者工具未关闭合法域名校验
解决方式:
1. 本地开发时在微信开发者工具里关闭域名校验
2. 真机或上线时,换成 HTTPS 域名并配置到微信公众平台
### 9.2 后台登录失败
检查:
1. 后端是否已启动
2. 是否已执行 `python scripts/init_admin.py`
3. 默认账号密码是否被修改
### 9.3 数据库迁移失败
检查:
1. `backend/.env` 中的 MySQL 配置是否正确
2. 数据库 `dating_app` 是否已创建
3. MySQL 服务是否已经启动
### 9.4 小程序图片不显示
当前代码已经清理了远程占位图依赖。
如果真实图片不显示,通常是:
1. 返回的图片地址不可访问
2. 图片域名不在微信合法域名配置中
## 10. 当前功能完成情况
当前已完成:
1. 用户登录、资料编辑、审核提交
2. 后台审核
3. 活动列表、详情、报名、我的活动
4. 匹配候选、感兴趣、我的匹配
5. AI 推荐基础能力
6. 公告列表、详情、后台公告管理
7. 后台活动管理、数据看板
8. 后端统一错误响应
9. 项目启动文档、验收清单、上线准备清单
当前仍建议继续补充:
1. 微信订阅消息
2. Redis 推荐缓存与频控
3. COS 真实上传
4. 更完整的后台用户管理与系统设置
5. 自动化测试
6. 生产部署验证
## 11. 相关文档
根目录已提供这些文档:
1. `相亲小程序开发详情.md`
2. `开发规划.md`
3. `功能差距清单.md`
4. `验收清单.md`
5. `上线准备清单.md`
建议使用顺序:
1. 先看 `README.md` 启动项目
2. 再按 `验收清单.md` 做联调
3. 最后按 `上线准备清单.md` 准备部署