Files
SuperJump/docs/产品规划.md
T
jacobxu666andClaude Opus 4.8 af7a144d58 第一期:家庭自学打卡系统
- 家长手机号登录 + 孩子设备一次性激活(长期会话)
- 周模板自动生成每日任务快照,支持拍照凭证直传对象存储
- 连击计算(空白日自动达成)、家长补卡带标记
- 家长端三标签:今日概览 / 任务模板 / 设备管理
- Docker 独立输出,经 Traefik 接入 jump.hn12301.net

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 23:19:13 +08:00

79 lines
3.4 KiB
Markdown

# SuperJump 产品规划
> 状态:第一期开发中
> 共识来源:2026-08-02 需求确认(逐条问答式梳理,全部条目经家长确认)
## 一、产品定位
- 家庭自学网站,仅自家使用,不对外开放、不做注册
- 用户:两个孩子(徐卿玮,初一;徐子惠,小四;各有自己的 iPad)+ 家长
- 数据库表结构从第一天起按"多家庭"设计,将来可开放给亲友,无需改表
- 全部开发由 Claude Code 完成,一个模块一个模块推进
## 二、第一期:打卡(当前唯一开发范围)
### 账号与权限
- 家长账号:手机号 `18684839400` + 密码登录
- 孩子设备:家长为指定孩子生成一次性激活码 → 在 iPad 上输入 → 该设备浏览器获得长期会话,日常零登录
- 角色隔离:孩子界面只有"打卡"和"自己的统计",**不存在任何管理入口**(不是禁用,是页面里根本没有)
- 家长可在设备管理页注销某台设备
### 任务
- 每个孩子一份**周模板**(周一到周日各自的任务清单,任务可标记"需要拍照凭证")
- 系统每天自动生成当日任务**快照**;家长可对某一天临时微调
- 修改模板不影响历史记录,微调某一天也不污染模板
### 打卡
- 孩子逐项勾选完成;标记了"需凭证"的任务必须上传照片才能完成
- 照片在设备端压缩后**直传阿里云对象存储**(不经服务器中转)
- 一天完成至少 1 项任务 = 当日打卡成功
### 连击(连续天数)
- 连续打卡天数中断即清零
- 周模板空白日(如故意不设任务的周日)**自动算达成**,不断连
### 补卡
- 孩子不能补卡
- 家长可对过去的日期补卡,记录永久带"补卡"标记,与普通打卡可区分
### 家长页面(最小版)
- 仅"今日概览":每个孩子完成几项/共几项 + 当前连击天数
- 无历史查询、无图表(第二期做)
## 三、技术与部署
| 层 | 方案 |
| --- | --- |
| 形态 | 网页应用;iPad 用 Safari"添加到主屏幕"当应用使用 |
| 框架 | Next.js(TypeScript)+ Tailwind + shadcn/ui |
| 数据库 | 复用服务器现有 MySQL,建 `superjump` 专用账号(非 root) |
| 文件存储 | 阿里云对象存储,桶 `12301-test`(华东1杭州,与服务器同地域);私有读写 + 临时签名链接访问;大文件设备端直传 |
| 部署 | 代码推送至 Gitea(`git.hn12301.net/xuchao/SuperJump`)→ 服务器拉取并本地构建镜像 → Docker Compose + Traefik 自动路由 |
| 域名 | `jump.hn12301.net`,HTTPS 证书由 Traefik 自动签发续期 |
## 四、明确暂缓
- 打卡提醒推送(在家口头提醒即可)
- 数据备份(与服务器整体备份策略同步,后期再定;照片已由对象存储三重冗余)
## 五、后续模块候选(顺序待定,第一期上线后再议)
1. **家长看板全量**:历史日历、完成率、趋势统计
2. **试卷上传收集**:家长拍照上传,按孩子/科目/日期归档
3. **学习内容**:视频、图文材料,分科目组织
4. **检测**:题库、练习、自动判分
## 六、第一期里程碑
1. 数据库层:表结构 + 迁移 + 种子(徐家 + 家长 + 两个孩子)
2. 认证:家长登录 + 设备激活 + 会话 + 角色中间件
3. 打卡核心:任务快照生成、勾选、照片直传、连击计算、家长补卡
4. 页面:孩子端今日任务页;家长端今日概览 + 周模板管理 + 设备管理
5. 部署验收:`https://jump.hn12301.net` 全流程走通(登录→激活→打卡→传照片→家长查看)