Files
gaokao-volunteer-system/docs/SHARING_DESIGN.md

275 lines
6.7 KiB
Markdown
Raw Normal View History

# 用户分享功能设计
## 分享系统设计方案
**版本**: v1.0
**状态**: 已落地MVP 完成,持续演进)
**最后更新**: 2026-06-13
---
## 1. 功能概述
### 1.1 需求背景
用户希望将生成的志愿方案分享给:
- 家人(父母、配偶)
- 老师/规划师
- 朋友(征求意见)
- 朋友圈/社交群组(案例展示)
### 1.2 核心场景
| 场景 | 分享对象 | 分享内容 | 权限需求 |
| -------- | --------- | -------- | -------------- |
| 家庭决策 | 爸爸妈妈 | 完整方案 | 可查看、可评论 |
| 征求意见 | 老师/朋友 | 方案摘要 | 仅查看、提建议 |
| 案例展示 | 朋友圈/群 | 脱敏版本 | 仅展示 |
| 备份存档 | 自己邮箱 | 完整报告 | 永久保存 |
---
## 2. 分享方式
### 2.1 分享类型
| 类型 | 格式 | 适用场景 | 技术方案 |
| -------------- | ------- | ------------- | --------------- |
| **链接分享** | URL | 微信/短信分享 | 短链接+访问权限 |
| **图片分享** | PNG/JPG | 朋友圈/社交 | HTML转图片 |
| **PDF分享** | PDF文件 | 邮箱/微信文件 | 报告附件 |
| **小程序卡片** | (不做) | - | 跳过 |
| **HTML嵌入** | iframe | 博客/网站 | 嵌入代码 |
### 2.2 链接分享(核心)
#### 设计方案
```
分享链接结构:
https://gk.example.com/s/ABC123DEF
链接特点:
- 短链接6-10位随机字符
- 带权限控制(只读/评论/编辑)
- 有效期可选(永久/7天/30天
- 访问密码可选
```
#### 权限级别
| 权限 | 功能 | 适用场景 |
| -------- | -------------- | -------------------- |
| **只读** | 查看方案 | 朋友圈展示、老师查看 |
| **评论** | 查看+评论建议 | 征求家人意见 |
| **编辑** | 查看+修改 | 家庭协作编辑 |
| **完全** | 查看+编辑+删除 | 仅自己 |
### 2.3 图片分享
#### 设计样式
```
分享图片规格:
尺寸: 1080 x 1920px (手机海报)
1200 x 630px (社交卡片)
内容构成:
┌─────────────────────┐
│ 高考志愿填报方案 │
│ 考生:张** │
├─────────────────────┤
│ │
│ [位次/分数图表] │
│ │
│ 推荐院校TOP3: │
│ 1. XX大学 │
│ 2. XX学院 │
│ 3. XX学校 │
│ │
├─────────────────────┤
│ 扫码查看完整方案 │
│ [二维码] │
│ Powered by 龙老师 │
└─────────────────────┘
```
### 2.4 PDF分享
#### 功能
- 一键下载PDF报告
- 邮件发送PDF
- 微信发送PDF文件
---
## 3. 技术实现
### 3.1 分享链接系统
#### 数据模型
```python
class ShareLink:
id: str # 短链接ID (ABC123)
report_id: str # 关联报告ID
owner_id: str # 创建者ID
permission: str # read/comment/edit
password: str? # 访问密码(可选)
expires_at: datetime? # 过期时间(可选)
access_count: int # 访问统计
created_at: datetime
```
#### 访问控制流程
```
用户点击分享链接
检查链接是否存在
检查是否过期
检查是否需要密码
记录访问日志
根据权限显示不同界面
```
### 3.2 分享生成流程
```
用户点击"分享"按钮
弹出分享选项
选择分享类型(链接/图片/PDF
设置权限(只读/评论/编辑)
生成分享内容
复制到剪贴板/直接分享
```
---
## 4. 权限与隐私
### 4.1 隐私保护
| 隐私级别 | 脱敏内容 | 适用场景 |
| -------- | ---------------------------- | --------- |
| **完整** | 姓名/分数/位次全部显示 | 仅家人 |
| **部分** | 姓名脱敏(张\*\*)、分数显示 | 朋友/老师 |
| **完全** | 仅显示位次段、院校建议 | 公开展示 |
### 4.2 撤销分享
```
用户随时可:
1. 查看自己分享的所有链接
2. 撤销特定链接(使其失效)
3. 修改链接权限
4. 查看链接访问统计
```
---
## 5. UI设计
### 5.1 分享按钮位置
```
报告页面:
┌─────────────────────┐
│ [返回] [下载] [★]│ ← 顶部操作栏
├─────────────────────┤
│ │
│ 志愿方案内容... │
│ │
├─────────────────────┤
│ [💬 分享] [💾 保存]│ ← 底部固定按钮
└─────────────────────┘
```
### 5.2 分享弹窗
```
━━━━━━━━━━━━━━━━━━━━━━━
分享方案
━━━━━━━━━━━━━━━━━━━━━━━
分享方式:
┌─────────┬─────────┬─────────┐
│ 🔗 │ 🖼️ │ 📄 │
│ 链接 │ 图片 │ PDF │
└─────────┴─────────┴─────────┘
权限设置:
○ 只读(仅查看)
○ 评论(可提建议)☚ 默认
○ 编辑(可修改)
有效期:
○ 永久 ☚ 默认
○ 7天后失效
○ 30天后失效
[复制链接] [直接分享]
━━━━━━━━━━━━━━━━━━━━━━━
```
---
## 6. 实现时间表
| 功能 | 版本 | 时间 | 优先级 |
| -------- | :--: | :-----: | :----: |
| 链接分享 | v2.2 | 2027 Q2 | P1 |
| PDF下载 | v2.0 | ✅ 已有 | P0 |
| 图片生成 | v2.2 | 2027 Q2 | P1 |
| 评论功能 | v2.3 | 2027 Q3 | P2 |
| 协作编辑 | v3.0 | 2028 | P3 |
---
## 7. 数据分析
### 7.1 分享统计
记录以下数据:
- 分享次数/用户
- 分享类型分布
- 链接点击率
- 访问地域分布
- 分享转化率(注册)
### 7.2 效果评估
| 指标 | 目标值 |
| -------------- | ------ |
| 分享率 | >30% |
| 链接点击率 | >50% |
| 分享带来注册率 | >10% |
---
## 8. 相关文档
- [PRD](../PRD.md) - 功能集成到PRD
- [UX_DESIGN](../UX_DESIGN.md) - 用户交互流程
- [API](../API.md) - 分享接口设计
---
**决策记录**:
- D001: 不做小程序卡片分享(小程序已放弃)
- D002: 优先做链接分享(最通用)
- D003: 默认权限为"评论"(平衡开放与控制)