Skip to content

About

A lightweight online tutoring tool featuring interactive handouts, instant answer-reveal, and real-time student performance tracking.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

1,652 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OwnClass · simple-tutor-tool

CI License: MIT

简体中文 · English

Your data. Your way. All for learning.

OwnClass 是为一对一辅导老师准备的教学工具,可以部署在自己的电脑或服务器上。老师把讲义和习题导入系统,学生通过浏览器阅读、做题、手写和订正,老师随后查看作答过程与学习情况。

AI 可以参与备课、答疑和课后复盘。老师可以让 AI 按提供的格式整理教学材料;学生可以带着当前题目和手写过程向自己连接的 AI 求助;老师也可以把学习记录交给 AI,准备下一节课。

教学资料、作答记录和手写文件保存在自己的服务器上。使用 AI 求助时,系统按老师设置的教学方式,把本题内容和选定材料发送给学生连接的 AI 服务。

在线体验

演示站提供示例课程和账号,适合用示例材料体验完整流程。演示数据会定期重置。

可以先用学生账号做几题,再用教师账号打开「数据」和「学情」,查看作答、手写原稿与学习情况。

用它可以做什么

老师:准备材料、布置任务、了解学生

  • 整理教学材料:用 Markdown 编写讲义和习题,也可以把 dsl-kit/ 交给 AI,让 AI 按格式整理现有材料。导入时一起选择题目图片,系统会检查格式并展示导入预览。
  • 安排课程与作业:把讲义和练习排成课程,给学生布置作业,设置截止时间和答案公布时间。多个练习单元可以分别布置,也可以合成一份作业。
  • 批改与回看过程:逐题查看答案、草稿、题干圈画和订正;手写过程支持倍速回放。待批队列提供快捷键,方便连续批改。
  • 查看学习情况:查看课程完成情况、正确率变化、薄弱考点、答题用时和讲义阅读情况,寻找下节课适合重点讲解的内容。
  • 交给 AI 做复盘:导出学习数据和手写图片,或通过「连接 AI」让支持 MCP 的客户端读取资料、生成报告并将报告存回系统。
  • 管理自己的数据:下载完整备份,通过密码确认恢复。每位老师分别管理自己的课程、学生和作业,也可以把教学材料发布到共享中心。

学生:阅读、动笔、提问、再试一次

  • 打开链接开始学习:使用老师提供的专属链接,或用账号密码登录;支持电脑、手机与 iPad 浏览器。
  • 边读边练:在讲练页里读一段内容、做一道题,逐题提交并查看反馈;手写题按老师批改结果查看成绩。
  • 直接动笔:在题干上圈画重点,在草稿纸演算,或用 Apple Pencil 手写答案。纸面支持全屏和分栏,笔写与手指滚动可以配合使用。
  • 按题向 AI 求助:发送当前题目、作答和选定的草稿或圈画,收到回复后继续追问,或回到原题尝试新步骤。
  • 交卷后复习:对照详解查看本次原稿,写订正与错因反思;从题目历史比较历次作答,从错题本发起重练。
  • 调整个人偏好:在头像进入的设置页中管理书写手感、AI 连接和常用提问方式。

最近更新

以下按功能整理 2026 年 10 月 10–19 日的主要变化,日期表示这些功能的集中更新时间。

按题向 AI 求助,读完继续做题(10 月 15–19 日)

  • 三种求助方式:学生可以连接自己的 AI 接口、通过 MCP 客户端处理求助,或生成供外部 AI 读取的题目链接。结果页支持选择多道题,逐题发起 AI 复盘。
  • 老师安排求助时机:支持「开放学习」「仅启发」「完成后可用」,可以为学生或作业单独设置。教师端可查看求助和回信记录。
  • 回复接在原题下面:做哪道题,就在那道题下面提问和阅读回复。宽屏时可以主动固定在旁边对照,也可以进入专注阅读。
  • 可以直接请求提示:选择问法后可以直接发送;自己写的问题会保留。发送前可以查看本次题目、作答和选定材料。
  • 读完接着尝试:点「回题试一试」回到原来的位置;补写步骤后,可以选择新稿或输入文字,请 AI 检查。沿着旧回复追问时,会继续使用当时发送的材料。
  • 输入和阅读位置都能接上:切题、收起对话、前往连接设置再返回时,保留当前会话中的提问草稿;新回复到达后先提示,由学生选择阅读时机。草稿在当前页面会话中保留,退出账号时清理。
  • 长回复更方便阅读:支持回复目录、引用某一步继续提问、专注阅读和公式排版;较长内容还提供分段文字阅读。
  • 求助记录能带回现场:从记录打开对应题目和对话,接着阅读或继续做题。

讲一段、练一题(10 月 13–16 日)

  • 讲练一体已加入正式功能:老师可以把题目放在讲义的对应位置,学生边读边答,每题单独提交。
  • 提交后逐题反馈:客观题可以即时查看判定与详解,手写题进入待批流程;最后一题提交后,本次学习自动完成。
  • 课程目录更清楚:讲练页作为一项内容加入课程,随堂题跟随讲练页呈现。导入预览也按一份讲练页展示。
  • 学习记录接上练习过程:保留逐题进度、作答与手写原稿,方便课后查看和再次练习。

草稿、圈画和手写配合使用(10 月 10–19 日)

  • 圈画与草稿一起展开:边圈题干边演算,按空间选择左右分栏、上下排列或全屏书写。
  • 题面与笔迹一起缩放:保存圈画时记录原题排版,回看和跨设备打开时按同一比例展示题面与笔迹。
  • 保存过程更清楚:分别跟踪答案、草稿、正式手写与圈画的保存情况;换设备继续时核对已有材料,同一份内容发生冲突时由学生选择保留的版本。
  • 本题材料可以导出:作答中导出题面、已有圈画和本题手写材料;长稿分页,每页带题面,支持下载与逐页复制。
  • 书写手感可以保存:调整后给配置起名,在当前设备选择使用;草稿、正式手写和订正共用设备配置。
  • 长作业里书写更顺畅:反复打开圈画更快,后台保存和求助状态更新时,其他题目保持原样,方便继续书写。
  • 打开和回看更顺畅:优化题目材料读取、圈画准备和重复排版;回看中的原圈画会在题目进入可见区域后加载。

作业、结果回看和个人设置更好找(10 月 10–19 日)

  • 首页聚焦待办:显示最新两份待完成作业和待办总数;「我的作业」支持状态、日期、标题筛选与分页,返回列表时接上原筛选。
  • 手机做题顶栏更简洁:返回、单元名称与更多入口集中在顶栏,保存状态和练习信息放在「更多 → 练习信息」。
  • 结果页按题整理操作:详解、本次原稿、订正、本题历史和更多操作集中排列,方便对照;从历史返回时回到原来的题目。
  • AI 连接集中管理:「我的连接」先展示连接列表,再进入新增、详情或修改;MCP 详情提供完整配置、Token 与端点,方便复制到客户端。
  • 个人设置按用途分组:个人信息、学习偏好和 AI 求助偏好集中管理;展开编辑、收起再打开时继续保留当前输入。

教师工作台与日常使用细节(10 月 12–19 日)

  • OwnClass 统一外观:教师端与管理端使用一致的品牌和靛蓝主题;导航按教学、分析、系统分组,窄屏通过抽屉访问。
  • 设置按类别查看:教学、备份与账号分类展示;保存前可以继续修改,离开时提供保存相关提醒。
  • 连续保存设置更稳妥:每次保存都会更新版本,旧页面再次提交时会提示刷新,保留已经保存的新设置。
  • 课程选项及时更新:创建或调整课程后,导入页的「同时加入课程」同步刷新。
  • 师生账号切换更稳妥:同一浏览器支持同时使用教师和学生身份,换账号时刷新对应页面数据。
  • 公式与导出显示更完整:改进公式检查、圈画底图字体和导出图片中的公式显示。

支持的内容与学习方式

四种内容格式

内容 文件里的标记 适合怎样使用
讲义 kind: lecture 阅读知识讲解、公式、折叠例题、分步推导和函数图像。
练习 kind: practice 组织题库或作业,支持判断、单选、多选、填空、计算、应用和找错题。
讲义加配套练习 kind: mixed 一份文件导入后,形成讲义和关联的练习单元。
讲练一体 kind: lesson 题目穿插在讲义中,学生边读边答,逐题提交。

学生可以通过老师布置的作业、课程中的自主练习、错题重练和讲练页学习。普通作业按老师设置的时间公布答案;讲练页按题提交、按题反馈。历次作答与交卷原稿分别保存。

三种学生 AI 连接方式

方式 怎样使用
页内 AI 在「设置 → 连接 AI」填写兼容接口地址、模型和自己的 API Key,直接在题目下提问、看回复。
MCP 客户端 复制完整 MCP 配置到支持该协议的 AI 客户端,由客户端领取题目求助并写回回复。
题目链接 生成包含本题与选定材料的链接,交给支持读取网页的外部 AI。链接可以设置有效期,也可以主动撤销。

老师可以选择「开放学习」「仅启发」「完成后可用」,并为学生或作业单独调整。启发模式会向 AI 提供本题答案与解析,并要求它用提示引导;希望学生完成后再接触 AI 的老师,可以选择「完成后可用」。本题完成后,AI 按复盘方式提供帮助。

AI 求助会发送本题上下文和选定材料;普通作答页的答案与详解继续按公布规则展示。题目链接的持有者可以读取其中内容,适合发给信任的 AI 服务。页内 AI 费用由学生选择的服务商收取,多题复盘按题分别调用。连接方法和教学设置见学生端 AI 伴学使用指南。

开始使用

环境要求

  • Node.js 24 或更新版本。
  • pnpm 12.6.0;使用 Docker 时,安装 Docker Engine 与 Compose 即可。

Windows 启动

先在项目目录执行 pnpm install,随后选择一个脚本:

  • 测试模式.cmd:启动开发服务,前端地址 http://localhost:5173,后端端口 8787。同一 Wi-Fi 下,学生可以通过电脑局域网 IP 访问。
  • 启动服务.cmd:构建并启动生产服务,浏览器打开 http://localhost:8787。

命令行启动

pnpm install
pnpm dev

首次打开教师端,按设置向导创建管理员账号。服务完成建库后,可以运行 pnpm seed:demo 生成示例课程与学生;终端会显示 demo 教师的随机初始密码,示例学生密码为 demo-pass-123。

服务器部署

Docker Compose:

git clone https://github.com/LIziak112/simple-tutor-tool.git
cd simple-tutor-tool
mkdir -p data
sudo chown -R 1000:1000 data
docker compose up -d --build

容器启动后打开 http://服务器地址。也可以在主机上执行 pnpm build,用 systemd 管理 node apps/server/dist/index.js。详细步骤见部署文档。

小内存服务器升级时,先停止原服务,再安装依赖并构建,完成后启动服务、检查健康状态。 升级前先备份完整数据目录;systemd 使用 systemctl stop simple-tutor-tool 停服,Docker Compose 使用 docker compose stop app 停服。

环境变量 默认值 作用
PORT 8787 服务端口。
DATA_DIR ./data 保存数据库、手写文件、共享材料、备份和会话密钥。
PUBLIC_URL http://localhost:8787 填写实际访问地址;HTTPS 部署会启用安全 Cookie 和 PWA。

备份建议使用教师端「设置 → 备份与恢复」下载完整数据包;手动复制数据目录时先停服。

一次日常教学流程

  1. 把 dsl-kit/ 交给 AI,整理讲义或试卷;在教师端导入材料,查看预览并确认。
  2. 创建课程、添加学生,安排讲义与练习,按需要布置作业。
  3. 把专属链接发给学生,让学生阅读、作答、手写和按需向 AI 求助。
  4. 查看学生作答过程,批改手写题,结合学习情况安排订正和重练。
  5. 导出 AI 学情数据包,或通过教师端 MCP 连接读取学习记录,准备下一节课。

技术与开发

项目采用 pnpm workspace。共享的 Zod schema 定义内容和接口格式,前端、后端、MCP 与导出共用这些定义。

部分 使用的技术
前端 React 19、Vite、Tailwind CSS v4、shadcn/ui、TanStack Query、Zustand、React Router、CodeMirror、ECharts、KaTeX、MathLive。
手写与图片 Atrament、Excalidraw、html-to-image。
后端 Node.js 24、Hono、SQLite、better-sqlite3、Drizzle ORM、pino、MCP SDK。
检查与测试 TypeScript strict、Vitest、Playwright(Chromium / WebKit)、Biome、GitHub Actions。
部署 单个 Node 进程提供网页和 API;支持 systemd 或 Docker + Caddy。
apps/web/           学生端、教师端和管理端网页
apps/server/        API、MCP、静态资源与数据库
packages/contract/  共用的数据定义与能力清单
packages/md-dsl/    Markdown 解析、检查与规范生成
packages/grading/   服务端判分
samples/            教学样例和兼容性测试材料
dsl-kit/            交给 AI 使用的格式规范、样例、提示词与检查工具
docs/               使用、部署、设计和验收文档
e2e/                浏览器自动化测试
命令 用途
pnpm dev / pnpm build 开发启动 / 构建。
pnpm test / pnpm e2e 单元测试 / 浏览器端到端测试。
pnpm lint / pnpm typecheck / pnpm format 代码检查 / 类型检查 / 格式化。
pnpm db:generate 生成数据库迁移。
pnpm schema:export 导出 JSON Schema。
pnpm gen:spec 生成 DSL 规范,更新 dsl-kit 分发包与离线检查脚本。
pnpm tutor-lint <文件或目录> 检查教学文档格式。
pnpm reparse [--dry-run] 按当前解析规则重新提取题目和讲义内容,--dry-run 用于预览。
pnpm seed:demo 生成演示数据。

开发时先更新共享契约,判分由服务端执行;学生可见内容按作答进度与答案公布规则生成,AI 出站按教学策略授权。现存样例承担兼容性回归检查。合并前执行 lint、类型检查、单测、规范生成校验、构建和浏览器测试,具体约定见 AGENTS.md。

文档

文档 内容
页面功能清单 按页面了解现有功能。
AI 伴学使用指南 师生设置、连接方式、求助与复盘。
部署文档 安装、升级、备份恢复与运维。
DSL 规范与样例 教学材料格式与完整样例。
AI 材料整理包 给 AI 使用的规范、提示词和检查工具。
技术架构与实施方案 架构决策与实现说明。
开发进度与验收 阶段记录与验证结果。

许可证

MIT。欢迎通过 Issue 分享教学场景、使用反馈和改进建议。

About

A lightweight online tutoring tool featuring interactive handouts, instant answer-reveal, and real-time student performance tracking.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages