在星岛上快乐学习,探索知识宇宙。
Learn, Play & Explore.
星岛学园是面向 7–12 岁学生的星际探索式趣味学习平台。课程按人教版年级、学期、学科和目录条目组织,用原创小游戏帮助孩子练习和复习知识点。
需要 Node.js 22.16.0(版本见根目录 .node-version)和 npm。
npm ci
npm run dev生成生产静态文件并本地预览:
npm run build
npm run preview构建输出位于 dist/。
目前已开放一至六年级上下学期语文、数学和英语的 311 个可玩条目:一年级 51 个、二年级 53 个、三年级 54 个、四年级 53 个、五年级 52 个、六年级 48 个。科目合计为语文 95 个、数学 122 个、英语 94 个;具体分类以课程注册表与逐册教材清单为准。一年级语文的部分主题分组是内部课程条目,不对应教材正式编号单元。
| 年级 | 上学期 | 下学期 | 合计 |
|---|---|---|---|
| 一年级 | 26 个 | 25 个 | 51 个 |
| 二年级 | 26 个 | 27 个 | 53 个 |
| 三年级 | 27 个 | 27 个 | 54 个 |
| 四年级 | 26 个 | 27 个 | 53 个 |
| 五年级 | 25 个 | 27 个 | 52 个 |
| 六年级 | 27 个 | 21 个 | 48 个 |
| 合计 | 157 个 | 154 个 | 311 个 |
每个可玩条目提供三个难度:基础版至少 2 个按知识目标拆分的任务,进阶版和高阶版各 2 个不同任务。每个任务约 20 分钟、恰好 8 道题;学习进度和偏好只保存在当前浏览器。基础练习帮助掌握单个知识点,进阶练习迁移或组合已学知识,高阶练习在已学范围内进行多步推理与策略选择。
完成一个正式单元的全部基础任务后,星图会点亮对应节点;宇宙头衔根据跨年级、跨学期完成的单元数累计。首页展示当前成就摘要,成就详情可查看完整进度;设置中可调整学习起点,起点之前已登记的课程视为完成,所选单元及之后的进度重新开始。主题默认跟随系统,也可手动选择浅色或深色;答题鼓励语音和交互提示音默认开启,可在设置中关闭。
课程按年级、学期、学科和条目逐层存放。正式编号单元、复习站和综合实践使用不同 slug;条目入口统一为 index.ts。
src/content/
├── curriculum.ts
├── textbooks.ts
├── grade-1/term-{1|2}/{chinese,math,english}/
├── grade-2/term-{1|2}/{chinese,math,english}/
├── grade-3/term-{1|2}/{chinese,math,english}/
├── grade-4/term-{1|2}/{chinese,math,english}/
├── grade-5/term-{1|2}/{chinese,math,english}/
└── grade-6/term-{1|2}/{chinese,math,english}/
课程 ID、任务、场次、题目 ID、注册表、难度和新增课程检查步骤见课程目录与内容编写规范。主要页面、路由和进度逻辑分别位于 src/components/、src/app/ 与 src/storage/。学习星图按一至六年级上下学期规划 12 个星区;只依据已核实课程目录生成学习节点和头衔进度。
课程知识按册次优先使用可完整核实的人教社公开最新版;找不到完整新版学生书或目录时,使用用户确认的 TapXWorld/ChinaTextbook 固定快照,并在元数据中标记实际来源和回退原因。TapX 回退版本不称为人教社最新版;同一册不混用版次。来源与目录依据见一年级和三年级教材清单、二年级教材清单及四至六年级教材清单。
题目、提示、讲解和图形表达均为原创。所有基础、进阶和高阶旧题及新增题均需核对答案、表达清晰度、年龄适配、教材主题和难度归属;修复记录分别见一年级和三年级逐题审校台账、二年级逐题审校台账和四至六年级逐题审校台账。
npm run test:unit
npm run test:coverage
npx playwright install chromium
npm run test:e2e
npm run build
git diff --checkVitest 覆盖率门槛为 statements、branches、functions 和 lines 各不低于 60%;核心路由、课程校验、判题、学习进度、成就、主题和声音状态模块分别要求四项 100%。Playwright 使用专用端口 127.0.0.1:4174。GitHub Actions 会在提交和 PR 中运行构建、单元测试、覆盖率与 E2E。
在 Cloudflare Pages 项目中设置:
| 设置 | 值 |
|---|---|
| 根目录 | 仓库根目录 |
| 框架预设 | React (Vite) |
| 构建命令 | npm run build |
| 构建输出目录 | dist |
| Node.js | 根目录 .node-version 中的 22.16.0 |
本项目是纯静态 SPA,不需要 Pages Functions 或独立 Worker。不要添加顶层 404.html,以保留 Cloudflare Pages 的 SPA 回退,使单元、任务和场次深层路由可以直接打开。构建产物应包含 index.html,不应包含顶层 404.html。配置详情见 Pages 构建配置、构建镜像和页面路由官方文档。
当前仓库交付只验证本地构建和本地预览;这不代表已连接 Cloudflare 项目或完成线上部署。
正式 Logo 使用用户提供的四位太空伙伴品牌图;四张圆形伙伴头像由对话中提供的参考照片生成卡通衍生图并转为 WebP。仓库不包含参考原照片或真实姓名;公开部署前应确认监护人同意公开展示相关未成年人肖像。
学习进度、主题与声音偏好只保存在当前浏览器的 localStorage。网站不要求账号,不连接在线语音服务,也不收集访客资料。
- 本项目自有代码与内容采用 PolyForm Noncommercial License 1.0.0,该许可限制商业用途。使用前请阅读完整许可文本。
- 直接依赖
animal-island-ui按其 MIT 许可使用;作者、项目链接和许可正文见 第三方声明,构建产物包含third-party-notices.txt。 - 其他依赖按其各自上游许可使用;版本和依赖清单见
package.json与package-lock.json。
