xiangqinxiaochengxu/开发规划.md
2026-04-17 10:49:14 +08:00

19 KiB
Raw Permalink Blame History

相亲小程序开发规划

1. 项目目标

当前进度

  • 已创建 backend/miniprogram/admin-web/ 项目骨架
  • 已完成后端基础初始化FastAPI 入口、配置、数据库会话、JWT 工具、认证路由、Alembic 基础文件
  • 已完成核心数据库模型和首个迁移文件:usersactivitiesregistrationsmatch_likesmatchesannouncementsadmins
  • 已完成小程序基础初始化:app.jsapp.jsonapp.wxss、请求封装、登录封装、核心页面壳
  • 已完成后台管理端基础初始化Vite + Vue3 + Element Plus 基础结构、路由和页面壳
  • 已完成用户中心第一批真实接口:GET /users/mePUT /users/mePOST /users/submit-audit
  • 已完成资料完整度计算和审核提交必填校验基础逻辑
  • 已完成真实微信登录建档基础流程:POST /auth/wx-login 已接入 code2session 和用户自动创建/复用逻辑
  • 已完成头像上传基础接口:POST /upload/avatar,包含图片校验、压缩、模糊图生成、头像字段回写
  • 已完成活动系统第一批后端接口:GET /activitiesGET /activities/{id}POST /activities/{id}/registerDELETE /activities/{id}/register
  • 已完成匹配系统第一批后端接口:GET /matches/candidatesPOST /matches/likeGET /matches/myGET /matches/{match_id}/detail
  • 已完成公开资料分级接口:GET /users/public/{user_id}
  • 已完成小程序用户中心基础联调:profileprofile-editaudit-status
  • 已完成小程序活动页基础联调:activityactivity-detail
  • 已完成小程序匹配页基础联调:matchmy-matches
  • 已完成小程序我的活动页基础联调:my-activities
  • 已完成后台审核链路基础联调:管理员登录、待审核列表、审核通过/驳回
  • 已完成后台活动管理基础联调:活动列表、活动创建、发布/下架
  • 已完成公告系统基础联调:前台公告列表/详情、后台公告创建与列表管理
  • 已完成首页运营基础内容联调:首页活动预告、公告栏、公告详情页
  • 已完成 AI 推荐基础联调:POST /matches/ai-suggest、匹配页 AI 推荐展示、首页会员推荐区
  • 已完成后台数据看板基础联调:GET /admin/dashboard 与管理端展示页面
  • 已补管理员种子账号初始化脚本与说明
  • 已完成后端统一错误响应格式基础接入
  • 已完成后台活动编辑基础联调
  • 已补根目录启动说明文档 README.md
  • 已完成一轮关键代码检查与高风险问题修复
  • 已清理小程序远程占位图依赖,避免合法域名问题
  • 已补手工验收清单 验收清单.md
  • 已补上线准备清单 上线准备清单.md
  • 已补后台后端增强接口:用户详情、封禁/解封、匹配记录、系统配置
  • 已完成微信订阅消息基础接入:审核结果通知、匹配成功通知
  • 已完成 Redis 基础接入:微信 access_token 缓存、登录限流、匹配 like 限流
  • 下一步:补推荐列表 Redis 缓存、COS 真上传、自动化测试和最终部署验证

基于 相亲小程序开发详情.md,从零到一完成一个微信小程序相亲平台,覆盖以下完整链路:

微信登录 -> 填写资料 -> 提交审核 -> 审核通过 -> 报名活动 -> 参与匹配 -> 查看匹配结果

项目整体包含 3 个子系统:

  1. 微信小程序前端
  2. Python FastAPI 后端
  3. Vue3 + Element Plus 后台管理端

开发原则:

  1. 先完成 MVP再逐步补全高级功能
  2. 先后端和数据模型,再对接小程序页面
  3. 先跑通主链路,再补 AI 推荐、通知、数据看板等增强功能

2. 总体开发策略

2.1 优先级原则

优先保证业务闭环:

  1. 用户能登录
  2. 用户能填写资料并提交审核
  3. 管理员能审核
  4. 用户能报名活动
  5. 用户能浏览和匹配异性

2.2 版本拆分

  1. V0.1 基础框架 前后端项目初始化、数据库连通、登录鉴权、统一响应结构
  2. V0.2 用户资料与审核 用户资料编辑、头像上传、完整度计算、提交审核、后台审核
  3. V0.3 活动报名 活动列表、详情、报名、取消报名、后台活动管理
  4. V0.4 匹配主链路 候选列表、感兴趣、双向匹配成功、我的匹配
  5. V0.5 AI 推荐与通知 AI 推荐、每日推荐缓存、微信订阅消息
  6. V0.6 后台完善与上线 公告、看板、系统配置、测试、部署、提审

3. 开发阶段规划

阶段 0需求冻结与项目初始化

状态:已完成

目标:把规格文档转化为工程执行基础。

交付物:

  1. 项目目录结构
  2. 接口清单
  3. 页面清单与跳转关系
  4. .env.example
  5. README 和开发约定

核心任务:

  1. 创建项目目录:miniprogram/backend/admin-web/
  2. 明确运行环境Python 3.11、MySQL 8、Redis 7、Node LTS、微信开发者工具
  3. 梳理 API 列表与页面流转图
  4. 确定代码规范、分支策略、环境变量管理方式

已完成标记:

  1. 创建项目目录:miniprogram/backend/admin-web/
  2. 明确运行环境Python 3.11、MySQL 8、Redis 7、Node LTS、微信开发者工具
  3. 梳理 API 列表与页面流转图
  4. 确定代码规范、分支策略、环境变量管理方式

验收标准:

  1. 三个项目目录可独立初始化
  2. 开发者可按文档快速启动本地环境

阶段 1后端基础设施

状态:进行中

目标:完成后端骨架,支撑后续全部业务模块。

核心任务:

  1. 初始化 FastAPI 项目结构
  2. 实现 config.pydatabase.pydependencies.py
  3. 接入 MySQL、Redis、Alembic
  4. 增加统一响应格式和异常处理
  5. 增加 JWT 鉴权能力
  6. 封装微信 code2session 调用
  7. 封装 COS 上传能力
  8. 配置基础日志与健康检查接口

已完成标记:

  1. 初始化 FastAPI 项目结构
  2. 实现 config.pydatabase.pydependencies.py
  3. 接入 MySQL、Redis、Alembic
  4. 增加统一响应格式和异常处理
  5. 增加 JWT 鉴权能力
  6. 封装微信 code2session 调用
  7. 封装 COS 上传能力
  8. 配置基础日志与健康检查接口

验收标准:

  1. 后端服务可启动
  2. 数据库和 Redis 可连接
  3. Alembic 可生成并执行迁移
  4. JWT 可签发和校验

阶段 2数据库与模型实现

状态:已完成基础模型与首个迁移

目标:建立稳定的数据层。

核心表:

  1. users
  2. activities
  3. registrations
  4. match_likes
  5. matches
  6. announcements
  7. admins

核心任务:

  1. 编写 SQLAlchemy ORM 模型
  2. 编写 Pydantic 请求/响应模型
  3. 配置索引与唯一约束
  4. 编写 Alembic 迁移脚本
  5. 初始化管理员账号种子数据

已完成标记:

  1. 编写 SQLAlchemy ORM 模型
  2. 编写基础 Pydantic 响应模型
  3. 配置索引与唯一约束
  4. 编写 Alembic 迁移脚本
  5. 初始化管理员账号种子数据

重点注意:

  1. users 中 JSON 字段映射
  2. matches 唯一索引避免并发重复匹配
  3. 审核状态、报名状态、活动状态的枚举设计

验收标准:

  1. 全部核心表迁移成功
  2. 本地能插入和查询样例数据

阶段 3认证与用户中心后端

状态:进行中

目标:完成登录、资料编辑、审核提交的后端能力。

接口范围:

  1. POST /auth/wx-login
  2. POST /auth/refresh
  3. GET /users/me
  4. PUT /users/me
  5. POST /users/submit-audit
  6. POST /upload/avatar

核心任务:

  1. 微信登录后自动创建用户
  2. 获取当前用户资料
  3. 支持增量更新资料
  4. 自动计算 profile_completeness
  5. 修改已审核资料后重置为待审核
  6. 头像上传、压缩、生成模糊图并上传 COS
  7. 审核提交前校验必填字段

已完成标记:

  1. 微信登录后自动创建用户
  2. 微信登录后自动创建用户
  3. 获取当前用户资料
  4. 支持增量更新资料
  5. 自动计算 profile_completeness
  6. 修改已审核资料后重置为待审核
  7. 头像上传、压缩、生成模糊图并上传 COS
  8. 审核提交前校验必填字段

验收标准:

  1. 新用户首次登录能自动建档
  2. 用户可多次保存资料
  3. 用户可成功提交审核
  4. 头像上传成功并回写数据库

阶段 4小程序基础框架

状态:已完成基础初始化,后续继续迭代

目标:完成小程序基础壳、登录态和通用请求封装。

核心任务:

  1. 初始化 app.jsapp.jsonapp.wxss
  2. 实现 utils/request.js
  3. 实现登录态管理 utils/auth.js
  4. 配置 TabBar 页面
  5. 建立通用组件: empty-stateaudit-badgeprogress-baractivity-cardmatch-card
  6. 完成页面基础壳: homeactivitymatchprofileprofile-editaudit-statusactivity-detailmy-activitiesmy-matchesannouncement

已完成标记:

  1. 初始化 app.jsapp.jsonapp.wxss
  2. 实现 utils/request.js
  3. 实现登录态管理 utils/auth.js
  4. 配置 TabBar 页面
  5. 建立通用组件:empty-stateaudit-badgeprogress-baractivity-cardmatch-card
  6. 完成页面基础壳:homeactivitymatchprofileprofile-editaudit-statusactivity-detailmy-activitiesmy-matchesannouncement

验收标准:

  1. 小程序项目可在微信开发者工具启动
  2. token 可持久化保存
  3. 页面可正常跳转
  4. 接口请求封装可统一处理错误和鉴权

阶段 5资料填写与审核链路联调

目标:跑通第一条完整业务主链路。

小程序侧任务:

  1. profile 页面展示用户资料摘要、审核状态、完整度
  2. profile-edit 分步骤填写并自动保存
  3. audit-status 展示审核状态与驳回原因

已完成标记:

  1. profile 页面展示用户资料摘要、审核状态、完整度
  2. profile-edit 分步骤填写并自动保存
  3. audit-status 展示审核状态与驳回原因

后台侧任务:

  1. 管理员登录
  2. 待审核用户列表
  3. 用户详情查看
  4. 审核通过/驳回

已完成标记:

  1. 管理员登录
  2. 待审核用户列表
  3. 用户详情查看
  4. 审核通过/驳回

验收标准:

  1. 用户可在小程序完整填写资料
  2. 管理员可在后台审核资料
  3. 审核结果可同步反馈到小程序

阶段 6活动系统

状态:进行中

目标:跑通第二条业务主链路“浏览活动并报名”。

后端接口:

  1. GET /activities
  2. GET /activities/{id}
  3. POST /activities/{id}/register
  4. DELETE /activities/{id}/register
  5. 后台活动管理接口

已完成标记:

  1. GET /activities
  2. GET /activities/{id}
  3. POST /activities/{id}/register
  4. DELETE /activities/{id}/register
  5. 后台活动管理接口

小程序页面:

  1. 首页活动预告
  2. 活动列表页
  3. 活动详情页
  4. 我的活动页

已完成标记:

  1. 首页活动预告
  2. 活动列表页
  3. 活动详情页
  4. 我的活动页

后台页面:

  1. 活动列表
  2. 创建活动
  3. 编辑活动
  4. 发布/下架活动

已完成标记:

  1. 活动列表
  2. 创建活动
  3. 编辑活动
  4. 发布/下架活动

关键校验:

  1. 活动已发布
  2. 活动报名未截止
  3. 用户审核状态已通过
  4. 性别名额未满
  5. 已报名请求幂等处理
  6. 活动开始前 24 小时不可取消

验收标准:

  1. 管理员可发布活动
  2. 用户可浏览活动并报名
  3. 报名状态和按钮态展示正确

阶段 7匹配系统基础版

状态:进行中

目标:跑通第三条主链路“浏览候选人并双向匹配”。

后端接口:

  1. GET /matches/candidates
  2. POST /matches/like
  3. GET /matches/my
  4. GET /matches/{match_id}/detail
  5. GET /users/public/{user_id}

已完成标记:

  1. GET /matches/candidates
  2. POST /matches/like
  3. GET /matches/my
  4. GET /matches/{match_id}/detail
  5. GET /users/public/{user_id}

小程序页面:

  1. 匹配首页候选人列表
  2. 卡片详情弹窗
  3. 我的匹配记录页

已完成标记:

  1. 匹配首页候选人列表
  2. 卡片详情弹窗
  3. 我的匹配记录页

核心规则:

  1. 过滤已不感兴趣用户、已匹配用户、当天已展示用户
  2. 点击感兴趣写入 match_likes
  3. 若存在反向 like则生成 matches
  4. 根据关系返回 Level 1/2/3 不同信息层级
  5. 利用数据库唯一约束避免重复匹配

验收标准:

  1. 用户可浏览候选人
  2. 用户可发送感兴趣
  3. 双方互相感兴趣时成功匹配
  4. 匹配详情仅双方可见

阶段 8AI 推荐

状态:进行中

目标:把候选人浏览升级为可解释的智能推荐。

核心任务:

  1. 按规格实现 match_service.py
  2. 实现 POST /matches/ai-suggest
  3. 输出匹配分和匹配理由
  4. 使用 Redis 缓存每日推荐结果
  5. 控制推荐多样性,避免结果过于同质化

已完成标记:

  1. 按规格实现 match_service.py
  2. 实现 POST /matches/ai-suggest
  3. 输出匹配分和匹配理由
  4. 使用 Redis 缓存每日推荐结果
  5. 控制推荐多样性,避免结果过于同质化

验收标准:

  1. AI 推荐接口可返回 Top N 候选人
  2. 每个候选人具备分数和理由
  3. 当日推荐列表稳定且不重复

阶段 9公告与首页运营能力

状态:进行中

目标:补齐内容运营能力和首页展示模块。

核心任务:

  1. 完成公告接口:GET /announcementsGET /announcements/{id}
  2. 后台支持公告增删改查
  3. 首页展示活动轮播、公告栏、会员推荐区
  4. 完成公告详情页

已完成标记:

  1. 完成公告接口:GET /announcementsGET /announcements/{id}
  2. 后台支持公告增删改查
  3. 首页展示活动轮播、公告栏
  4. 完成公告详情页
  5. 首页会员推荐区

验收标准:

  1. 后台发布公告后首页可见
  2. 用户可查看公告详情

阶段 10微信能力与生产能力补强

目标:让系统达到可试运营水平。

核心任务:

  1. 接入微信订阅消息
  2. 实现审核结果通知
  3. 实现匹配成功通知
  4. 配置服务器域名、上传域名、COS 域名
  5. 增加登录和匹配接口频控
  6. 缓存微信 access_token
  7. 增加日志、异常监控、后台配置项

验收标准:

  1. 审核和匹配消息可正常发送
  2. 线上域名配置完整可用
  3. 接口具备基本限流能力

阶段 11后台管理端完善

状态:进行中

目标:让审核、活动运营、公告管理、数据查看进入可实际使用状态。

页面范围:

  1. /login
  2. /dashboard
  3. /users
  4. /users/audit
  5. /activities
  6. /activities/new
  7. /matches
  8. /announcements
  9. /settings

优先级:

  1. 管理员登录
  2. 待审核队列
  3. 活动管理
  4. 公告管理
  5. 数据看板
  6. 系统设置

已完成标记:

  1. 管理员后台项目基础初始化
  2. 路由结构搭建
  3. 登录、看板、用户、活动、匹配、公告、设置页面壳建立
  4. 登录页真实业务联调
  5. 待审核列表页真实业务联调
  6. 活动管理页真实业务联调
  7. 公告管理页真实业务联调
  8. 数据看板真实业务页面开发
  9. 活动编辑基础能力联调
  10. 设置页真实业务联调
  11. 匹配记录页真实业务联调
  12. 用户详情、搜索筛选基础能力联调
  13. 更多后台增强页面与交互优化

验收标准:

  1. 审核人员可高效处理审核任务
  2. 运营人员可独立管理活动和公告
  3. 管理员可查看核心业务数据

阶段 12测试、部署与上线

状态:进行中

目标:完成交付前的稳定性验证和正式上线准备。

测试范围:

  1. 单元测试 匹配分计算、资料完整度计算、审核状态流转、活动报名校验
  2. 接口测试 auth/users/activities/matches/admin
  3. 联调测试 小程序与后端、后台与后端
  4. 手工验收 新用户流程、审核驳回重提流程、活动报名流程、双向匹配流程
  5. 基础压测 登录、活动列表、匹配列表、like 接口

上线准备:

  1. 配置生产环境 .env
  2. HTTPS 域名与服务器
  3. MySQL / Redis 生产实例
  4. 腾讯云 COS 正式存储桶
  5. 微信小程序服务器域名配置
  6. 后端和后台部署
  7. 小程序隐私协议、提审资料准备

验收标准:

  1. 主链路可完整运行
  2. 关键功能通过手工和接口验证
  3. 小程序具备提审条件

4. 推荐开发顺序

为保证效率,建议严格按以下顺序推进:

  1. 后端基础框架 + 数据库模型
  2. 用户登录、资料、头像上传
  3. 小程序登录与资料填写页面
  4. 后台登录与审核页面
  5. 活动系统前后端
  6. 匹配系统前后端
  7. AI 推荐能力
  8. 公告系统
  9. 微信通知、看板、系统设置
  10. 测试、部署、上线

5. MVP 最小可用范围

如果目标是尽快上线试运营,建议首版只做以下功能:

  1. 微信登录
  2. 用户资料编辑
  3. 提交审核
  4. 后台审核
  5. 活动列表与活动报名
  6. 匹配候选人列表
  7. 感兴趣与双向匹配
  8. 我的匹配
  9. 公告列表

可放到第二阶段的能力:

  1. AI 权重后台调参
  2. 数据看板复杂图表
  3. 微信订阅消息
  4. 高级隐私设置
  5. 小程序分包优化
  6. 更复杂的推荐缓存与去重策略

6. 预估工期

按单人开发、AI 辅助编码、边开发边联调估算:

  1. 基础框架和数据库2-3 天
  2. 用户资料与审核链路3-4 天
  3. 活动系统3-4 天
  4. 匹配系统4-5 天
  5. 后台管理端4-6 天
  6. AI 推荐与通知2-3 天
  7. 测试与上线准备3-4 天

总工期:

21-29 天

如果只做 MVP

12-16 天

7. 主要风险与注意事项

  1. 微信登录、合法域名、服务器配置容易成为前期阻塞点
  2. COS 上传和图片处理链路必须在真实环境验证
  3. 审核状态、资料状态、报名状态存在较多边界条件
  4. 双向匹配存在并发创建重复记录风险
  5. 小程序页面较多,前期若状态管理不统一,后期维护成本会升高
  6. 后台和小程序共用后端接口,鉴权体系必须从一开始区分清楚

8. 下一步执行建议

建议立刻开始工程落地,而不是继续停留在规划阶段。

首个执行动作建议为:

  1. 创建 backend/miniprogram/admin-web/ 项目骨架
  2. 优先完成 backend 初始化
  3. 建立数据库模型和迁移
  4. 先打通登录、资料、审核主链路

完成上述步骤后,再按规划逐阶段推进即可。