Skip to content

课程表 App 产品需求文档(PRD) ​

项内容
产品名称课表 · ClassSchedule
文档版本v1.0.0
策划日期2026-07-03
文档状态评审通过,进入开发
主笔角色资深产品策划师
技术方案Flutter 跨平台(Android / iOS / HarmonyOS)
数据方案本地优先 + 云同步(账号体系预留)

0. 修订记录 ​

版本日期角色摘要
v1.0.02026-07-03产品策划师首版,确立 MVP 范围、设计规范与技术架构

1. 产品概述 ​

1.1 背景与机会 ​

学生群体对「课程表」有高频刚需,但市面产品普遍存在三类痛点:

  1. 录入繁琐:多数 App 需手动逐节填写,缺乏从教务系统 / 课表图片 / 文件批量导入;
  2. 信息孤岛:课程、作业、考试、提醒分散在不同 App,缺少统一的时间轴视图;
  3. 体验陈旧:Material / 旧拟物风为主,缺乏与现代系统(尤其 iOS 26 Liquid Glass、HarmonyOS 星河)一致的沉浸式视觉。

1.2 产品定位 ​

一款「轻量、好看、闭环」的学生时间管理中枢——以课程表为轴心,把课节、作业、考试、提醒统一到一张液态玻璃质感的日历视图上。

  • 一句话定位:「让每一节课都被温柔提醒」。
  • 核心心智:好看 → 好用 → 离不开。

1.3 目标用户 ​

画像占比预估核心诉求
高校在校生(本/专科、硕博)70%周课表、单双周、考试倒计时、作业 DDL
高中生15%固定课表、晚自习、走班
教师 / 进修学员10%多班级排课、跨校区
自我提升者(考证/网课)5%自定义时间段、任务提醒

1.4 核心价值主张(KSP) ​

  1. 零摩擦录入:支持手动 / 课表图片 OCR / 教务系统 / Excel / ICS 多通道建表;
  2. 统一时间轴:课程、作业、考试同屏呈现,今日「下一节」常驻可见;
  3. iOS 26 液态玻璃:跨三端统一的玻璃材质、流体动效、自适应明暗;
  4. 本地优先:全功能离线可用,云同步可选且可关闭,隐私可控。

2. 市场与竞品速览 ​

竞品优势短板(我们的机会)
超级课程表教务导入生态强广告多、UI 陈旧、隐私争议
课程表精灵小巧功能单一、无作业闭环
WakeUp 课表纯净、桌面组件好无 iOS 原生、无任务管理
系统日历通用不懂「单双周/课节」,体验机械

差异化:用 iOS 26 液态玻璃的视觉降维 + 「课表+任务+考试」闭环做体验领先。


3. 功能架构 ​

3.1 功能架构图 ​

课表 ClassSchedule
├── 课表核心
│   ├── 周/日/月视图
│   ├── 课节网格(1-12 节,可配置)
│   ├── 当前课高亮 &「下一节」
│   ├── 空闲教室/时段查找
│   └── 单双周 & 自定义周次
├── 课程管理
│   ├── 课程 CRUD
│   ├── 上课时间(周次×节次×单双周)
│   ├── 教师 / 地点 / 颜色 / 图标 / 备注
│   └── 冲突检测(时间/地点)
├── 学期管理
│   ├── 开学日期 & 总周数
│   ├── 当前周 & 周次切换
│   └── 多学期归档
├── 任务与考试
│   ├── 作业(关联课程、DDL、状态)
│   ├── 考试安排(地点、座位、倒计时)
│   └── 提醒(本地通知)
├── 桌面小组件 / 今日
│   ├── 今日课程卡片
│   └── 下节课快览
├── 我的 / 设置
│   ├── 外观(主题色、明暗、玻璃强度、课表样式)
│   ├── 作息时间表(节次起止)
│   ├── 数据(导入/导出/备份/迁移)
│   ├── 账号与同步(预留)
│   └── 关于与反馈

3.2 功能优先级 ​

级别含义功能
P0(MVP 必做)上线门槛周视图、课程 CRUD、学期与周次、单双周、当前课高亮、作业与考试 CRUD、本地提醒、深浅色与玻璃主题、数据导入导出(JSON/ICS)
P1(首版增强)上线后 1 个迭代日/月视图、桌面小组件、课表图片导入、空闲查找、多主题色、备份与迁移
P2(演进)规划中教务系统对接、账号云同步、AI 课表识别、协作共享、iPad/折叠屏自适应

本文档与本次开发以 P0 全量 + P1 部分(桌面小组件、空闲查找) 为交付目标。


4. 详细功能说明 ​

4.1 课表核心(F-CORE) ​

F-CORE-01 周视图(主页) ​

  • 形态:7 列(周一~周日)× N 行(默认 1~11 节,可配)的网格;顶部日期条,左侧节次轴。
  • 交互:
    • 左右滑动切换相邻周;双指捏合可缩放节高(持久化)。
    • 点击空白格 → 快速建课;点击课程块 → 详情抽屉(液态玻璃 bottom sheet)。
    • 长按课程块 → 拖拽改时间(P1)/ 复制到其他周。
  • 状态:
    • 当前节:呼吸光晕 + 高亮边框;
    • 今日列:整列顶部用主题色点缀;
    • 跨多节的课:纵向合并为一个块,中间显示课名。
  • 空状态:首次进入引导「新建课程 / 导入课表」。

验收:60 FPS 滑动;切周无白屏(预渲染相邻页)。

F-CORE-02 日视图 / 月视图(P1,本次做骨架) ​

  • 日视图:单日时间轴 + 今日全部课节与任务;
  • 月视图:月历,每日格子用圆点/迷你色块表示有课。

F-CORE-03 「下一节」与「今日」 ​

  • 主页顶部常驻一张玻璃卡片:显示「下一节课名 / 距开始 X 分钟 / 地点」;
  • 下课后自动切到「下一节」。

F-CORE-04 空闲时段查找(P1) ​

  • 选定若干同学/课程后,计算共同空闲节次与空教室(需教室数据,本地维护)。

4.2 课程管理(F-COURSE) ​

字段说明约束
name课程名必填,1~20 字
teacher教师选填
location上课地点选填
color主题色(12 色板)必选,默认按 hash 分配
icon图标 emoji选填
remark备注选填,≤200 字
weeks上课周次集合必填,如 1-16 周、单周、双周
dayOfWeek周几1~7
startPeriod / endPeriod起止节次1~maxPeriod
type单双周every / odd / even
  • 冲突检测:同一周次 × 周几 × 节次区间相交 → 阻止并提示「与《X》冲突」;同地点冲突仅警告。
  • 批量操作:复制到多周、删除整门课(联动清理任务)。

4.3 学期管理(F-TERM) ​

  • 字段:名称、开学日期(周一)、总周数(默认 20)、当前周(自动推算,可手动覆盖)。
  • 多学期:归档旧学期,切换不丢数据。
  • 周次跳转:点击周条 → 滑块/输入跳转到任意周。

4.4 任务与考试(F-TASK) ​

作业 ​

  • 字段:标题、关联课程(选填)、类型(作业/小测/项目)、DDL、优先级、状态(待办/进行中/完成)、备注。
  • 排序:按 DDL 升序;逾期标红。
  • 完成动画:液态玻璃勾选 + 触感反馈。

考试 ​

  • 字段:科目(关联课程)、日期时间、时长、地点、座位号、备注。
  • 首页「考试倒计时」入口,按最近一场排序。

4.5 提醒(F-NOTIFY) ​

  • 本地通知(flutter_local_notifications):
    • 上课前 N 分钟(默认 10,可全局/单课配置);
    • 作业 DDL 前 N 小时 / 当天;
    • 考试前 1 天 + 当天早晨。
  • 免打扰:按作息自动静默夜间;勿扰时段可配。
  • 权限:首次进入「提醒」页统一申请通知权限,拒绝后给出降级文案与设置跳转。

4.6 外观与设置(F-SET) ​

  • 主题模式:跟随系统 / 浅色 / 深色;
  • 主题色:12 色动态取色(玻璃着色随之变化);
  • 玻璃强度:弱/中/强(影响模糊半径,低端机自动降级为纯色卡片);
  • 课表样式:网格 / 列表 / 紧凑;
  • 作息时间表:每节起止时间,可整体套用模板(高校通用模板);
  • 数据:导出 JSON / ICS / 截图分享;导入 JSON;本地备份与恢复;
  • 账号与同步(预留入口,灰色「即将上线」)。

4.7 数据导入导出(F-IO) ​

  • 导出:JSON(全量,含版本号)、ICS(写入系统日历)、长图分享。
  • 导入:JSON(校验 schema 版本,失败回滚)。
  • 教务/OCR:P2。

5. 非功能需求(NFR) ​

维度指标
性能冷启 ≤1.5s(中端机);周视图滑动 ≥58 FPS;课表 200 节内首屏 ≤300ms
兼容Android 8.0+ / iOS 14+(iOS 26 玻璃在 26 上原生级,低版本优雅降级)/ HarmonyOS NEXT
存储安装包 ≤25MB;本地库单库 ≤10MB
续航通知与「下一节」计算不常驻后台服务,依赖系统调度
隐私本地优先;同步默认关闭;隐私政策与权限说明齐全
可访问性支持系统字体缩放;对比度满足 WCAG AA;语义标签齐全
国际化预留 i18n(zh-CN / en),首版仅中文
安全导出文件不包含敏感信息明文口令;同步预留端到端加密接口

6. 信息架构与导航 ​

主导航(移动端左侧滑出菜单 / 宽屏左侧玻璃栏)
├── 课表(F-CORE)         ← 默认主页
├── 任务(F-TASK)          ← 作业/考试聚合
├── 宠物(F-PET)           ← 学习陪伴与成长反馈
├── 日历(F-CORE-02)       ← 月视图 + 今日(P1)
└── 我的(F-SET)
  • 顶部:主菜单按钮 + 周条 + 「下一节」玻璃卡 + 学期切换;
  • 全局:长按首页空白 → 快速建课;右下悬浮按钮(FAB)→ 新建任务/课程。

7. 设计规范(摘要) ​

详见 DESIGN-SPEC.md。

  • 设计语言:iOS 26 Liquid Glass(液态玻璃)—— 半透明、折射模糊、动态明暗、胶囊圆角、流体边缘高光。
  • 三端一致:同一套 Design Token(颜色、字号、圆角、模糊、间距、动效曲线)。
  • 降级策略:iOS<26 / 低端 Android / 鸿蒙低性能机 → 用纯色卡片 + 轻模糊替代实时光晕。

8. 数据模型(ER 摘要) ​

详细字段与关系见 TECH-ARCH.md 第 3 节。

Term 1 ──< Course >── 1 Schedule?   (一门课在多周多节有多个排期片段)
Course 1 ──< Task
Course 1 ──< Exam
AppSettings 1

核心表:terms、courses、schedule_slots(周次×节次片段)、tasks、exams、settings、periods(作息)。


9. 技术架构(摘要) ​

  • 框架:Flutter 3.41(Dart 3.11),单码库出 Android/iOS,HarmonyOS 经社区 flutter_harmony 适配。
  • 状态管理:Riverpod(编译期安全、可测)。
  • 本地存储:Drift(SQLite),类型安全 + 响应式流。
  • 路由:go_router(声明式、深链接)。
  • 通知:flutter_local_notifications + flutter_timezone。
  • 同步预留:数据模型含 userId / updatedAt / syncState 字段;仓储层抽象 RemoteSyncClient,本期接 NoopSyncClient。
  • 分层:presentation → application(riverpod) → domain → data(drift)。

详见 TECH-ARCH.md。


10. 三端差异与适配 ​

维度AndroidiOSHarmonyOS
液态玻璃RenderEffect.blur + 自绘高光iOS26 原生 backdropFilter;低版本 UIVisualEffectViewbackdropBlur + backgroundBlurStyle
桌面组件AppWidget(glazewidget)WidgetKitHarmonyOS Service Widget
通知通知渠道 + 精确闹钟权限UserNotificationsAdvancedNotification
字体系统默认 / 思源SF ProHarmonyOS Sans
状态栏edge-to-edge + 安全区safe area避让手势条
适配重点折叠屏/大屏响应式Dynamic Island / 灵动岛附近的「下一节」一多(one-more)布局

鸿蒙端:本期以 Flutter 适配出包为主,原生 ArkTS 增强(桌面卡片)列入 P2。


11. 里程碑与发布计划 ​

里程碑内容状态
M0 策划定稿本 PRD + 设计规范 + 架构✅ 当前
M1 MVP 开发P0 全量 + 玻璃主题进行中
M2 内部审查产品+测试审查、缺陷修复待启动
M3 灰度TestFlight / 内测分发待启动
M4 上线应用商店上架(三端)待启动

12. 验收标准(上线门槛) ​

  1. 功能:P0 全部用例通过(见测试专家用例集);无 P0/P1 缺陷。
  2. 性能:满足第 5 节 NFR;低端机(如 Android 8 / 4GB)冷启 ≤2s、滑动不卡顿。
  3. 视觉:三端关键页通过液态玻璃走查(模糊/圆角/明暗/动效),降级路径生效。
  4. 数据:导入导出往返一致;杀进程后状态无丢失。
  5. 通知:上课前 / DDL / 考试提醒准时触发;权限拒绝有降级。
  6. 安全/隐私:权限最小化;隐私政策齐全。

13. 风险与对策 ​

风险等级对策
iOS 26 玻璃在低版本/安卓难还原中自研 GlassContainer 组件 + 降级策略 + Token 化
鸿蒙 Flutter 适配成熟度中以官方 stable 出包,ArkTS 原生增强延后
教务导入版权/接口低P2,先做通用 JSON/ICS
通知后台被杀(国产 ROM)高引导加白名单 + 精确闹钟 + 重要事项双保险

本文档为后续开发、审查、修复的唯一基准。任何范围变更须经评审并更新修订记录。