- 家长手机号登录 + 孩子设备一次性激活(长期会话) - 周模板自动生成每日任务快照,支持拍照凭证直传对象存储 - 连击计算(空白日自动达成)、家长补卡带标记 - 家长端三标签:今日概览 / 任务模板 / 设备管理 - Docker 独立输出,经 Traefik 接入 jump.hn12301.net Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.4 KiB
3.4 KiB
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 自动签发续期 |
四、明确暂缓
- 打卡提醒推送(在家口头提醒即可)
- 数据备份(与服务器整体备份策略同步,后期再定;照片已由对象存储三重冗余)
五、后续模块候选(顺序待定,第一期上线后再议)
- 家长看板全量:历史日历、完成率、趋势统计
- 试卷上传收集:家长拍照上传,按孩子/科目/日期归档
- 学习内容:视频、图文材料,分科目组织
- 检测:题库、练习、自动判分
六、第一期里程碑
- 数据库层:表结构 + 迁移 + 种子(徐家 + 家长 + 两个孩子)
- 认证:家长登录 + 设备激活 + 会话 + 角色中间件
- 打卡核心:任务快照生成、勾选、照片直传、连击计算、家长补卡
- 页面:孩子端今日任务页;家长端今日概览 + 周模板管理 + 设备管理
- 部署验收:
https://jump.hn12301.net全流程走通(登录→激活→打卡→传照片→家长查看)