345 lines
6.3 KiB
Markdown
345 lines
6.3 KiB
Markdown
# 相亲小程序项目 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` 准备部署
|