五层结构,一条请求路径
每个请求都从学院的子域名进入。系统首先根据子域名识别租户,此后该请求只会接触这个学院的数据。
nginx · *.tkawen.comSvelteKit · /manageLaravel 13tkawen_<slug>Ed25519一条命令建好完整学院——要么全部完成,要么什么都不留
开通学院不是复制模板。一条命令即可创建租户及其数据库和数据表、所有者账户、角色、主题、证书模板和签名密钥。任何一步失败——数据库无法创建、迁移未完成——一切都会回滚:不会留下半成品学院,也不会留下无人申请的账户。
$ php artisan tenant:provision acme \ --name="Acme Academy" --owner-email=owner@acme.dz ✓ tenant acme.tkawen.com ✓ database tkawen_acme (created + migrated) ✓ owner owner@acme.dz · tenant admin ✓ roles owner · instructor · student ✓ theme logo · colours · locale ar ✓ certificate template ready ✓ signing key Ed25519 · stored encrypted Academy 'Acme Academy' provisioned. ↺ on failure: tenant, database and new owner rolled back
- 数据库
tkawen_acme - 存储
storage/acme - 队列
queue:acme - 签名密钥
ed25519:acme
- 数据库
tkawen_nour - 存储
storage/nour - 队列
queue:nour - 签名密钥
ed25519:nour
- 数据库
tkawen_atlas - 存储
storage/atlas - 队列
queue:atlas - 签名密钥
ed25519:atlas
NO SHARED DATABASE · NO SHARED STORAGE · NO SHARED QUEUE
三个界面,每个角色各有工具
所有者面板管理整个学院,讲师只能看到自己的课程,学员在电脑和手机上使用应用。以下为演示学院的真实截图(阿拉伯语界面)。



课程构建器
模块、课节与测验,并可由讲师设置顺序解锁。

学习空间
一课接一课;学习进度记录在服务器上。

报名与进度
每位学员的进度与状态;连续 14 天未学习时提前预警。
学习引擎
九种课节类型、七种题型,以及由服务器而非界面强制执行的顺序解锁——没有人能通过修改网址跳过课程。
视频
音频
文本
测验
作业
直播课
SCORM
xAPI · cmi5
顺序解锁
open · prev · prev_pass
7 种题型
单选、多选、判断、自由作答、匹配、填空、关键词。
及格分与作答次数
每个测验设有及格分和作答次数上限(默认 3 次),讲师可查看成绩册。
提前预警
连续 14 天未学习的学员会在流失之前提示给讲师。
无法伪造的证书——靠数学,而不是印章
没有人手工填写证书。学员完成 100% 课程并通过期末测验和全部作业后,证书自动签发,并以学院自己的 Ed25519 密钥签名。改动任何一个字符,签名即失效;验证读取的是登记册,而不是图片或 PDF。
{
"status": "valid",
"code": "TK-LJA74G2Z",
"holder": "Demo Student",
"programme": "Git & GitHub",
"issuer": "Demo Academy",
"credential_id": "crd_01m2ya21azztz6bmx6esgje3ns",
"signature": "Ed25519 ✓"
}演示学院英文验证页面的真实截图(持证人和课程名称为演示中的阿拉伯语数据)。提供 11 种证书设计和自由设计器,支持阿拉伯语和英语。
使用全球学习系统的通用语言
用标准工具制作的内容可直接运行,学习记录按开放标准写入,学院还能在 Moodle 中打开并将成绩回传。
运行 SCORM 课件包,记录进度与成绩。
xAPI 语句存储在每个学院独立的学习记录库(LRS)中。
从课节启动 cmi5 课件包,写入学院自己的 LRS。
LTI 1.3 工具:学院课程项目嵌入 Moodle,成绩回传。已与 Moodle 完成测试。
AI 智能体可以直接使用 TKAWEN OS
TKAWEN OS 自带 Model Context Protocol 服务器。接入它的智能助手可以一次搜索所有学院的课程、打开课程卡片、凭编号验证证书并说明签发机构、查询新学院名称是否可用,并获取可粘贴到 Moodle 的 LTI 1.3 配置——全部只读,使用的正是访客可访问的公开接口。
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "search_courses",
"arguments": { "q": "python", "certificate": true } } }
tools: overview · academies · search_courses · course
verify_certificate · check_subdomain · lti_setup
gateway: https://mcp.tkawen.com (as os__*)
search_courses
一次查询覆盖所有学院,支持阿拉伯语,可按级别、语言或证书筛选。
verify_certificate
逐一查询各学院登记册;回答证书是否有效,并给出签发机构、持证人、课程和日期。
lti_setup
学院的 LTI 1.3 注册信息——登录、启动、深度链接和 JWKS 地址——可直接用于 Moodle。
权限由服务器强制执行
界面隐藏不属于你的内容,服务器拒绝越权访问——讲师受到与保护数据相同的访问策略约束,只能接触自己的课程。
| 能力 | 所有者 | 讲师 | 学员 |
|---|---|---|---|
| 管理学院、品牌形象和讲师 | ● | — | — |
| 发布课程并审核支付 | ● | — | — |
| 构建自己的课程:模块、课节、测验 | ● | ● | — |
| 查看自己课程的学员和成绩 | ● | ● 仅限自己的 | — |
| 学习、参加测验、获得证书 | — | — | ● |
运维与安全
完全隔离
每个学院独立的数据库、存储、缓存和队列。
加密密钥
每个学院一把 Ed25519 密钥;私钥静态加密存储。
每日备份
每个数据库每日备份:服务器保留 14 天,异地存储保留 90 天。
加密传输
每个学院子域名均启用 TLS;开通失败会自动回滚。
开发中
技术参考会写明尚未完成的部分,让决策建立在已有功能之上。
academy-name.tkawen.com 上;绑定机构自有域名尚未实现。