kindergarten_java/docs/design/reading-task-prd.md
Claude Opus 4.6 f62aa18e72 feat: 阅读任务模块重写(Phase 1-4)
## 主要变更

### 后端改造 (Phase 1)
- 新增 task_feedback 表存储教师评价
- task 表添加 related_book_name 字段
- task_completion 表添加 video_url, audio_url 字段
- 新增 TaskFeedback 实体和服务层
- 扩展 TaskService 支持完成情况查询和评价功能
- 学校端 API 改为只读模式 (/v1/school/reading-tasks)

### 教师端前端 (Phase 2)
- 创建任务弹窗添加关联绘本字段
- 完成情况弹窗支持新状态值 (PENDING/SUBMITTED/REVIEWED)
- 新增评价弹窗组件(评价结果、评分、评语)
- 显示提交内容预览(照片、视频、音频、文字)

### 家长端前端 (Phase 3)
- 提交功能改造支持照片上传(最多9张)
- 支持视频/音频链接输入
- 阅读心得文字输入
- 新增查看教师评价功能
- 状态驱动操作(待提交/已提交/已评价)

### 学校端前端 (Phase 4)
- 完全重写为只读模式
- 移除创建/编辑/删除功能
- 多维度筛选(关键字、类型、状态、日期、排序)
- 统计卡片(任务数、进行中、已提交、已评价)
- 任务详情弹窗
- 完成情况列表弹窗
- 提交详情弹窗

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 14:08:36 +08:00

34 KiB
Raw Permalink Blame History

阅读任务模块 PRD产品需求文档

版本v1.1 日期2026-03-20 状态:讨论稿


一、背景与目标

1.1 业务背景

幼儿园教师在完成绘本课后,需要给学生布置家庭阅读任务,建议孩子回家自主阅读相关绘本。目前缺乏一个系统化的工具来:

  • 管理阅读任务的发布和追踪
  • 让家长反馈孩子的完成情况
  • 让教师对学生完成情况进行评价
  • 让学校管理层了解全校阅读任务执行情况

1.2 产品目标

目标 指标
简化任务发布流程 教师发布任务时间 < 2分钟
提升家长参与度 任务完成率 > 80%
增强家校互动 教师反馈率 > 90%
数据可追溯 学校可查看所有历史记录

1.3 本期范围

包含 不包含(后续迭代)
教师端任务管理 家长端绘本阅读功能
家长端任务查看/提交 绘本付费订阅
教师端反馈评价 学生端独立 App
学校端数据查看 绘本库/自动推荐
关联绘本(手动填写)

二、竞品分析

2.1 Seesaw核心参考

定位K-12 学生的数字学习档案平台

功能模块 说明 可借鉴点
作品提交 学生/家长上传照片、视频、绘画、语音 多种提交形式
教师反馈 文字、语音、手写批注 多维度反馈方式
数字档案 自动归档学生作品形成成长记录 生成成长档案
家校消息 单向公告 + 双向消息 灵活的沟通模式
进度报告 可生成并分享给家长 数据可视化

2.2 ClassDojo

定位:课堂行为管理 + 家校沟通

功能模块 说明 可借鉴点
积分系统 行为激励,学生获得积分/徽章 游戏化激励
班级故事 教师分享班级动态 内容分享
电子档案 家长帮助孩子上传作业 亲子协作
多语言支持 130+ 语言自动翻译 降低使用门槛

2.3 关键洞察

  1. 提交形式多样化 - 不仅限于文字,支持照片/视频/语音
  2. 反馈即时性 - 教师反馈能及时触达家长
  3. 成长可追溯 - 形成学生阅读成长档案
  4. 操作简便性 - 家长端必须极简,避免使用门槛

三、用户角色与场景

3.1 角色定义

角色 职责 使用端
教师 创建任务、查看提交、评价反馈 教师端Web
家长 接收任务、提交完成、查看反馈 家长端H5/小程序)
学校管理员 查看全校数据、统计分析 学校端Web
学生 实际完成任务的对象 通过家长端操作

3.2 核心场景

场景一:课后布置阅读任务
┌─────────────────────────────────────────────────────────┐
│ 教师 → 完成绘本课 → 创建阅读任务 → 填写关联绘本名称     │
│      → 设置截止日期 → 指定班级/学生 → 发布              │
└─────────────────────────────────────────────────────────┘

场景二:家长提交完成情况
┌─────────────────────────────────────────────────────────┐
│ 家长 → 收到任务通知 → 陪伴孩子阅读 → 拍照/录视频       │
│      → 上传完成证明 → 填写简单心得 → 提交               │
└─────────────────────────────────────────────────────────┘

场景三:教师评价反馈
┌─────────────────────────────────────────────────────────┐
│ 教师 → 查看待审核列表 → 查看提交内容 → 评分/写评语      │
│      → 发送反馈 → 家长收到通知 → 查看教师评价           │
└─────────────────────────────────────────────────────────┘

场景四:学校查看数据
┌─────────────────────────────────────────────────────────┐
│ 学校 → 多维度筛选 → 查看任务列表 → 查看完成情况        │
│      → 查看教师反馈 → 导出报表                          │
└─────────────────────────────────────────────────────────┘

四、功能需求

4.1 教师端Web

4.1.1 任务管理

功能 描述 优先级
创建任务 填写标题、描述、关联绘本名称、截止日期 P0
选择目标 按班级或按学生分配任务 P0
任务模板 使用模板快速创建,支持保存为模板 P1
编辑/删除 修改任务内容或撤回(未截止前) P0
任务列表 按状态(进行中/已截止/草稿)筛选查看 P0

4.1.2 完成情况管理

功能 描述 优先级
提交列表 按任务查看所有学生提交情况 P0
状态筛选 按待审核/已通过/需改进筛选 P0
查看详情 查看照片/视频/文字内容 P0
快捷评价 一键标记"优秀"/"通过"/"需改进" P0
详细评语 输入文字评价 P1
评分打星 1-5 星评分(可选) P2
批量操作 批量标记通过 P1

4.1.3 提醒通知

功能 描述 优先级
一键提醒 向未完成家长发送提醒 P0
自动提醒 截止前 1 天自动提醒 P1

4.2 家长端H5/小程序)

现状分析:已有基础框架,需完善以下功能

4.2.1 任务查看

功能 描述 优先级 现状
任务列表 显示孩子收到的所有阅读任务 P0 已有基础
任务详情 标题、描述、关联绘本、截止日期 P0 已有基础
状态显示 待完成/已提交/已评价 P0 已有基础
倒计时 显示剩余时间,过期标红 P1 需新增

4.2.2 完成提交(重点完善)

功能 描述 优先级 现状
拍照上传 拍摄孩子阅读照片(最多 9 张) P0 需新增
视频上传 录制孩子阅读视频(限 60 秒) P0 需新增
语音上传 录制孩子朗读语音(限 60 秒) P1 需新增
文字心得 填写阅读心得(可选) P1 ⚠️ 需完善
重新提交 截止前可修改提交内容 P0 需新增

4.2.3 反馈查看

功能 描述 优先级 现状
评价通知 收到教师评价的推送通知 P0 需新增
评价详情 查看评分、评语 P0 需新增
历史记录 查看所有任务的完成和评价记录 P1 ⚠️ 需完善

4.2.4 消息通知

功能 描述 优先级 现状
新任务通知 推送新任务提醒 P0 需新增
截止提醒 推送截止前提醒 P0 需新增
评价通知 推送教师评价提醒 P0 需新增

4.3 学校端Web- 重点设计

核心原则:学校端 不创建任务,仅查看数据和统计分析 核心挑战:数据量大(多班级 × 多教师 × 每日任务),需高效筛选

4.3.1 筛选系统设计(参考最佳实践)

基于竞品分析和教育管理系统的最佳实践,设计 多维度组合筛选 系统:

┌─────────────────────────────────────────────────────────────────┐
│  🔍 筛选条件                                                    │
├─────────────────────────────────────────────────────────────────┤
│  ┌──────────────────────────────────────────────────────────┐  │
│  │ 时间范围                                                  │  │
│  │ [本周 ▼] [2026年3月 ▼]  或  [03-01] ~ [03-20] 自定义     │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                 │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐               │
│  │ 班级       │  │ 教师       │  │ 任务类型   │               │
│  │ [全部 ▼]   │  │ [全部 ▼]   │  │ [全部 ▼]   │               │
│  └────────────┘  └────────────┘  └────────────┘               │
│                                                                 │
│  ┌────────────┐  ┌────────────┐  ┌─────────────────────────┐  │
│  │ 任务状态   │  │ 完成状态   │  │ 搜索任务标题...         │  │
│  │ [全部 ▼]   │  │ [全部 ▼]   │  │ 🔍                      │  │
│  └────────────┘  └────────────┘  └─────────────────────────┘  │
│                                                                 │
│  [重置筛选]                                    [已选: 5 个条件] │
└─────────────────────────────────────────────────────────────────┘
筛选维度详解
维度 选项 说明
时间范围 今日/本周/本月/本学期/自定义 快捷选择 + 日期选择器
班级 全部/大一班/大二班/... 支持多选
教师 全部/李老师/王老师/... 支持多选
任务类型 全部/阅读/活动/作业 单选
任务状态 全部/进行中/已截止/已归档 单选
完成状态 全部/高完成率(>80%)/中完成率(50-80%)/低完成率(<50%) 单选
搜索 任务标题关键字 模糊搜索
筛选交互设计
  1. 实时筛选:选择条件后立即刷新结果(无需点击搜索按钮)
  2. 已选标签:在筛选区下方显示已选条件的标签,可点击移除
  3. 条件持久化:筛选条件保存在 URL 参数中,刷新页面不丢失
  4. 智能默认:默认显示"本周"任务,避免数据量过大

4.3.2 任务总览

┌─────────────────────────────────────────────────────────────────┐
│  📊 阅读任务总览                           2026年3月 第3周      │
├─────────────────────────────────────────────────────────────────┤
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐           │
│  │   12     │ │   85%    │ │   92%    │ │   156    │           │
│  │ 发布任务  │ │ 平均完成率│ │ 教师反馈率│ │ 提交总数  │           │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘           │
├─────────────────────────────────────────────────────────────────┤
│  📈 趋势图(按天/按班级)                                       │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │     ▓▓▓                                                  │  │
│  │   ▓▓▓▓▓    ▓▓▓                                          │  │
│  │ ▓▓▓▓▓▓▓  ▓▓▓▓▓   ▓▓▓▓   ▓▓▓                             │  │
│  │ ───────┬───────┬───────┬───────┬───────                  │  │
│  │   周一    周二    周三    周四    周五                     │  │
│  └──────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────┘

4.3.3 任务列表(表格视图)

列名 说明 排序
任务标题 点击可查看详情
发布教师 教师姓名
班级 目标班级
类型 阅读/活动/作业 -
目标人数 学生总数 -
提交数 已提交/总人数
完成率 进度条显示
反馈率 教师已评价比例
发布时间 yyyy-MM-dd
截止时间 yyyy-MM-dd
状态 进行中/已截止 -
操作 查看详情 -

4.3.4 任务详情(只读)

┌─────────────────────────────────────────────────────────────────┐
│  《好饿的毛毛虫》阅读任务                              [返回列表] │
├─────────────────────────────────────────────────────────────────┤
│  基本信息                                                       │
│  发布教师: 李老师    班级: 大一班    类型: 阅读                  │
│  发布时间: 2026-03-18    截止时间: 2026-03-20                   │
│  关联绘本: 《好饿的毛毛虫》                                      │
│  任务描述: 和孩子一起阅读这本经典绘本,完成后拍照上传...         │
├─────────────────────────────────────────────────────────────────┤
│  完成情况                                                       │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │  目标: 25人    已提交: 20人    完成率: 80%                 │  │
│  │  ████████████████░░░░ 80%                                │  │
│  └──────────────────────────────────────────────────────────┘  │
│                                                                 │
│  学生列表                                                       │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │ 学生    │ 班级  │ 提交时间   │ 状态   │ 教师评价          │  │
│  ├──────────────────────────────────────────────────────────┤  │
│  │ 张小明  │ 大一班│ 03-19 18:30│ ✅优秀 │ 很棒!阅读认真... │  │
│  │ 李小红  │ 大一班│ 03-19 19:20│ ✅通过 │ 继续加油!        │  │
│  │ 王小刚  │ 大一班│ 03-20 09:15│ ⏳待审 │ -                 │  │
│  │ 赵小丽  │ 大一班│ -          │ ⭕未提交│ -                 │  │
│  │ ...    │ ...   │ ...        │ ...   │ ...               │  │
│  └──────────────────────────────────────────────────────────┘  │
│  [导出明细]                                                     │
└─────────────────────────────────────────────────────────────────┘

4.3.5 学生提交详情(只读)

学校端可查看具体学生的提交内容:

┌─────────────────────────────────────────────────────────────────┐
│  张小明的提交                                    [返回] [导出]   │
├─────────────────────────────────────────────────────────────────┤
│  任务: 《好饿的毛毛虫》阅读任务                                  │
│  提交时间: 2026-03-19 18:30                                     │
├─────────────────────────────────────────────────────────────────┤
│  📷 照片                                                        │
│  ┌─────┐ ┌─────┐ ┌─────┐                                       │
│  │ 📸  │ │ 📸  │ │ 📸  │  点击查看大图                          │
│  └─────┘ └─────┘ └─────┘                                       │
│                                                                 │
│  📝 阅读心得                                                    │
│  "孩子很喜欢这本书,读了好几遍,还给我讲了毛毛虫变蝴蝶的故事..."  │
├─────────────────────────────────────────────────────────────────┤
│  教师评价                                                       │
│  评价结果: ⭐⭐⭐⭐⭐ 优秀                                        │
│  评价内容: "很棒!阅读很认真,能复述故事内容,继续保持!"         │
│  评价时间: 2026-03-19 20:15                                     │
└─────────────────────────────────────────────────────────────────┘

4.3.6 统计报表

报表类型 内容 导出格式
任务统计 按时间/班级/教师的任务发布和完成情况 Excel
班级对比 各班级完成率、反馈率对比 Excel + 图表
教师排行 发布数、反馈率、平均评分 Excel
学生明细 指定条件下的学生完成明细 Excel

五、数据模型设计

5.1 实体关系图

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   Teacher    │────>│    Task      │<────│   Student    │
└──────────────┘     └──────────────┘     └──────────────┘
                            │                    │
                            ▼                    ▼
                     ┌──────────────┐     ┌──────────────┐
                     │ TaskTarget   │     │TaskCompletion│
                     └──────────────┘     └──────────────┘
                                                 │
                                                 ▼
                                          ┌──────────────┐
                                          │TaskFeedback  │
                                          └──────────────┘

5.2 表结构设计

Task任务表- 新增字段

字段 类型 说明 变更
id BIGINT 主键 -
tenant_id BIGINT 租户ID学校 -
title VARCHAR(100) 任务标题 -
description TEXT 任务描述 -
task_type VARCHAR(20) 类型READING/ACTIVITY/HOMEWORK -
related_book_name VARCHAR(200) 关联绘本名称 新增
course_id BIGINT 关联课程ID可选 -
course_lesson_id BIGINT 关联课程环节ID可选 -
creator_id BIGINT 创建人ID教师 -
start_date DATE 开始日期 -
due_date DATE 截止日期 -
status VARCHAR(20) 状态DRAFT/PUBLISHED/ARCHIVED -
created_at DATETIME 创建时间 -
updated_at DATETIME 更新时间 -

TaskTarget任务目标表- 无变更

字段 类型 说明
id BIGINT 主键
task_id BIGINT 任务ID
target_type VARCHAR(20) 目标类型CLASS/STUDENT
target_id BIGINT 目标ID班级ID或学生ID

TaskCompletion任务完成表- 扩展字段

字段 类型 说明 变更
id BIGINT 主键 -
task_id BIGINT 任务ID -
student_id BIGINT 学生ID -
status VARCHAR(20) 状态PENDING/SUBMITTED/REVIEWED -
photos JSON 照片URL数组 扩展
video_url VARCHAR(500) 视频URL 新增
audio_url VARCHAR(500) 语音URL 新增
content TEXT 文字心得 -
submitted_at DATETIME 提交时间 -
reviewed_at DATETIME 审核时间 -
created_at DATETIME 创建时间 -
updated_at DATETIME 更新时间 -

TaskFeedback任务反馈表- 新增

字段 类型 说明
id BIGINT 主键
completion_id BIGINT 完成记录ID
teacher_id BIGINT 教师ID
rating INT 评分 1-5可选
result VARCHAR(20) 结果EXCELLENT/PASSED/NEEDS_WORK
comment TEXT 评语
created_at DATETIME 创建时间

六、API 接口设计

6.1 教师端 API

方法 路径 说明
GET /api/v1/teacher/tasks 任务列表(支持筛选)
POST /api/v1/teacher/tasks 创建任务
GET /api/v1/teacher/tasks/{id} 任务详情
PUT /api/v1/teacher/tasks/{id} 更新任务
DELETE /api/v1/teacher/tasks/{id} 删除任务
GET /api/v1/teacher/tasks/{id}/completions 完成情况列表
POST /api/v1/teacher/completions/{id}/feedback 提交评价
POST /api/v1/teacher/tasks/{id}/remind 发送提醒

6.2 家长端 API完善

方法 路径 说明
GET /api/v1/parent/tasks 孩子的任务列表
GET /api/v1/parent/tasks/{id} 任务详情
POST /api/v1/parent/tasks/{id}/submit 提交完成(含上传)
PUT /api/v1/parent/tasks/{id}/submit 修改提交
GET /api/v1/parent/tasks/{id}/feedback 查看教师评价

6.3 学校端 API新增/完善)

方法 路径 说明
GET /api/v1/school/tasks 全校任务列表(支持多维度筛选)
GET /api/v1/school/tasks/{id} 任务详情
GET /api/v1/school/tasks/{id}/completions 完成情况列表
GET /api/v1/school/completions/{id} 学生提交详情
GET /api/v1/school/tasks/statistics 统计数据
GET /api/v1/school/tasks/statistics/trend 趋势数据
GET /api/v1/school/tasks/export 导出报表

学校端筛选参数

// GET /api/v1/school/tasks
interface SchoolTaskQuery {
  // 分页
  pageNum?: number;
  pageSize?: number;

  // 时间筛选
  dateType?: 'today' | 'week' | 'month' | 'semester' | 'custom';
  startDate?: string;  // 自定义开始日期
  endDate?: string;    // 自定义结束日期

  // 组织筛选
  classIds?: number[];   // 班级ID数组
  teacherIds?: number[]; // 教师ID数组

  // 状态筛选
  taskType?: 'READING' | 'ACTIVITY' | 'HOMEWORK';
  taskStatus?: 'PUBLISHED' | 'ARCHIVED';
  completionRate?: 'high' | 'medium' | 'low';  // >80% / 50-80% / <50%

  // 搜索
  keyword?: string;

  // 排序
  sortBy?: 'createTime' | 'completionRate' | 'feedbackRate';
  sortOrder?: 'asc' | 'desc';
}

七、UI 设计要点

7.1 学校端筛选区交互规范

快捷时间选择器

┌─────────────────────────────────────────────────────┐
│  [今日] [本周 ✓] [本月] [本学期] [自定义]           │
└─────────────────────────────────────────────────────┘

已选条件标签

┌─────────────────────────────────────────────────────┐
│  已选条件:                                          │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐            │
│  │ 本周  ✕  │ │ 大一班 ✕ │ │ 李老师 ✕ │            │
│  └──────────┘ └──────────┘ └──────────┘  [清空全部] │
└─────────────────────────────────────────────────────┘

班级/教师多选下拉

┌─────────────────────────────────────────────────────┐
│  班级 ▼                                             │
│  ┌───────────────────────────────────────────────┐ │
│  │ ☑ 全选                                         │ │
│  │ ☑ 大一班                                       │ │
│  │ ☑ 大二班                                       │ │
│  │ ☐ 中一班                                       │ │
│  │ ☐ 中二班                                       │ │
│  │                                                │ │
│  │ [确定]                    [取消]               │ │
│  └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

7.2 家长端提交页面

┌───────────────────────────────────────┐
│  《好饿的毛毛虫》阅读任务              │
│  截止时间: 明天 18:00                  │
├───────────────────────────────────────┤
│  📷 上传阅读照片                      │
│  ┌─────┐ ┌─────┐ ┌─────┐ ┌───┐       │
│  │ 📸  │ │ 📸  │ │ 📸  │ │ + │       │
│  └─────┘ └─────┘ └─────┘ └───┘       │
│  最多上传 9 张照片                    │
├───────────────────────────────────────┤
│  🎬 上传阅读视频(选填)              │
│  ┌───────────────────────────────┐   │
│  │        📹                      │   │
│  │     点击上传视频               │   │
│  │     限 60 秒以内               │   │
│  └───────────────────────────────┘   │
├───────────────────────────────────────┤
│  📝 阅读心得(选填)                  │
│  ┌───────────────────────────────┐   │
│  │ 孩子很喜欢这本书...            │   │
│  │                               │   │
│  └───────────────────────────────┘   │
│  0/500                               │
├───────────────────────────────────────┤
│                                       │
│  [      提交完成      ]              │
│                                       │
└───────────────────────────────────────┘

八、开发计划

Phase 1核心功能2周

模块 功能 优先级
后端 Task 表新增 related_book_name 字段 P0
TaskCompletion 表扩展 photos/video_url/audio_url P0
新增 TaskFeedback 表 P0
完善教师端 API评价、提醒 P0
完善家长端 API提交、查看评价 P0
新增学校端 API多维度筛选 P0
前端-教师端 完善任务创建(添加绘本名称字段) P0
完善完成情况管理(评价功能) P0
前端-家长端 新增任务提交页面(照片/视频上传) P0
新增评价查看功能 P0
前端-学校端 新增多维度筛选组件 P0
新增任务列表(只读) P0
新增任务详情和学生提交详情 P0

Phase 2完善功能1周

模块 功能 优先级
前端-教师端 任务模板功能 P1
批量评价 P1
前端-家长端 视频录制和上传 P1
语音录制和上传 P1
历史记录完善 P1
前端-学校端 统计图表 P1
导出报表 P1

Phase 3通知系统1周

模块 功能 优先级
通知 新任务通知(推送至家长端) P0
截止提醒(推送至家长端) P0
评价通知(推送至家长端) P0
自动提醒截止前1天 P1

九、现有代码改造点

9.1 家长端后端

文件: ParentTaskController.java

现状: getMyTasks 方法返回空数据TODO

改造:

  1. 实现根据家长ID获取关联学生的任务
  2. 新增 POST /api/v1/parent/tasks/{id}/submit 接口处理提交
  3. 新增 GET /api/v1/parent/tasks/{id}/feedback 接口获取评价

9.2 家长端前端

文件: TaskListView.vue

现状: 有基础框架,仅支持文字反馈

改造:

  1. 新增提交页面组件(支持照片/视频上传)
  2. 新增评价查看组件
  3. 完善任务状态显示和倒计时

十、风险与依赖

风险 影响 缓解措施
文件上传量增加 OSS 存储成本 限制单个任务上传数量和大小
推送通知依赖 消息触达率 确保家长端已集成推送 SDK
数据量增长 查询性能 添加索引,学校端分页查询

文档版本历史:

  • v1.0 (2026-03-20): 初稿
  • v1.1 (2026-03-20): 完善学校端筛选设计、家长端功能、开发计划