设计原则
Paideia LMS 建立在六个核心设计原则之上,这些原则指导我们的开发并确保平台兑现其承诺。这些原则解释了我们为什么构建 Paideia、它解决的问题,以及为什么 Paideia 可能是你机构的最佳选择。
Paideia 从一开始就使用最新技术和最佳实践构建。 这意味着没有遗留代码,没有技术债务,也无需支持过时的模式。我们选择了高性能、可维护且具有良好前景的技术。
相比之下,Moodle 和 Canvas 等传统 LMS 平台是多年前使用旧技术构建的。多年来积累的技术债务使它们难以维护、更新缓慢且部署复杂。这些平台经常面临性能问题、安全漏洞,需要大量资源来维护。
Paideia 的现代技术栈 — Bun 运行时、React Router v7、Elysia 和 TypeScript — 使我们能够提供高性能、可维护的平台,可以与最新的 Web 标准一起发展。我们对现代技术的关注意味着你获得一个为今天的需求和明天的机会而构建的平台。
稳健的设计决策
Section titled “稳健的设计决策”Paideia 建立在以 React 为核心的坚实基础上。 我们选择 React 是因为它经过实战考验、被广泛采用,并拥有庞大的生态系统。结合 Mantine 组件,我们提供一致、现代且强大且易于访问的 UI。
我们的架构决策从一开始就是生产级的。我们使用:
- 全面类型生成的类型安全 TypeScript
- 基于结果的错误处理,而不是 try-catch 块
- 基于事务的数据库操作以确保数据完整性
- 非破坏性、向后兼容的迁移
- 严格的编码标准,内部函数零类型转换
这种稳健的基础意味着 Paideia 可靠、可维护,并且从一开始就准备好用于生产。你无需等待我们”强化”平台 — 它从一开始就采用企业级实践构建。
Paideia 提供开箱即用的全面 LMS 功能。 在短短 30 天的开发中,我们构建了一个完整的学习管理系统,包含 27 个数据库集合,涵盖所有基本 LMS 功能。
Paideia 包括:
- 带章节和类别的课程管理
- 带基于角色的访问控制(管理员、内容管理器、分析查看者、讲师、学生)的用户管理
- 活动模块:页面、白板、作业、测验和讨论
- 带拖放界面的高级测验构建器
- 带类别和项目的成绩簿系统
- 带组的注册管理
- 带 S3 集成的媒体存储
- 搜索功能
- LTI(学习工具互操作性)支持,用于与外部工具无缝集成
- 内置到平台的 AI 原生功能
- 内置 Microsoft 集成(Teams、OneDrive、Office 365)
与其他需要插件或大量配置的平台不同,Paideia 开箱即用,功能完整。你无需寻找插件、担心兼容性或管理复杂的依赖关系。
Paideia 部署为单个二进制文件 — 下载并运行。 这种设计灵感来自最受欢迎的开源项目之一 PocketBase,它彻底改变了后端应用程序的部署方式。无需复杂设置,无需配置多个服务,无需依赖管理。只需为你的平台(macOS ARM64、Linux ARM64 或 Linux x64)下载二进制文件,使其可执行,然后运行即可。
这与需要以下内容的传统 LMS 平台形成对比:
- 多个服务(Web 服务器、数据库、应用服务器)
- 复杂的配置文件
- 依赖管理
- 版本兼容性问题
- 持续维护和更新
使用 Paideia,部署只需几分钟,而不是几小时或几天。启动 PostgreSQL 数据库和 S3 兼容存储,配置环境变量,你就可以开始了。单二进制方法意味着跨环境的一致行为和轻松更新 — 只需替换二进制文件。
Paideia 使用 PostgreSQL 和 S3 作为其基础 — 占用空间小但可大规模扩展。 PostgreSQL 是最可靠和可扩展的数据库之一,受到各种规模公司的信任。S3 兼容存储提供无限存储容量,具有行业标准的可靠性。
这种方法意味着:
- 占用空间小: Paideia 本身是轻量的,基础设施(PostgreSQL + S3)是你在任何生产系统中都会使用的
- 大规模可扩展: PostgreSQL 处理数百万条记录,S3 可扩展到艾字节
- 经过验证的可靠性: 这两种技术都在全球生产环境中经过实战考验
- 成本效益: 你只需为使用的部分付费,可以在扩展时优化成本
无论你服务 100 名学生还是 100,000 名,Paideia 的架构都能与你一起扩展。数据库和存储层设计用于处理增长,Paideia 的高效查询确保随着数据增长保持一致的性能。
Paideia 避免了困扰 Moodle 和 Canvas 的插件架构。 而不是导致兼容性问题、管理开销和安全问题的插件系统,Paideia 包含所有基本的内置功能。
具有插件架构的传统 LMS 平台面临几个问题:
- 插件兼容性: 更新可能破坏插件,需要持续维护
- 安全漏洞: 每个插件都是潜在的安全风险
- 管理开销: 跟踪插件、更新和依赖关系
- 性能问题: 编写不当的插件可能拖慢整个系统
- 供应商锁定: 某些插件仅限商业使用,增加了成本
Paideia 的方法不同。我们包含所有基本的内置功能,因此你不需要核心功能的插件。这意味着:
- 无兼容性担忧
- 更好的安全性(更少的活动部件)
- 更容易管理
- 一致的性能
- 无供应商锁定
如果你需要自定义功能,Paideia 的现代代码库易于扩展。但与 Moodle 和 Canvas 不同,你不需要基本功能的插件 — 它们都已包含在内。
Paideia 完全无状态 — 所有数据都存储在 PostgreSQL 和 S3 中。 这种无状态设计意味着 Paideia 不在服务器本身存储任何数据或状态。所有内容 — 课程、用户、作业、成绩、媒体文件 — 都存储在 PostgreSQL(用于结构化数据)和 S3(用于媒体和文件)中。
这种架构带来几个好处:
-
大规模可扩展: 由于服务器上没有数据,你可以通过简单地添加更多应用实例将 Paideia 扩展到数百万用户。数据库和存储层独立处理规模。
-
易于迁移: 迁移 Paideia 非常简单,因为服务器上不存储任何内容。只需将新的 Paideia 实例指向相同的 PostgreSQL 数据库和 S3 存储,就完成了。无需数据导出/导入,无需复杂的迁移脚本。
-
高可用性: 无状态设计意味着你可以在负载均衡器后面运行多个 Paideia 实例。如果一个实例宕机,其他实例会无缝地继续处理请求。
-
零停机部署: 通过简单地替换二进制文件并重启服务来更新 Paideia。无需数据迁移,因为数据独立存在于 PostgreSQL 和 S3 中。
