trax/lrs

此软件包已被放弃,不再维护。没有建议的替代软件包。

TRAX LRS

1.0.0-rc.8 2019-12-09 16:24 UTC

This package is auto-updated.

Last update: 2022-01-09 21:08:11 UTC


README

关于此软件

TRAX LRS是一个符合最新xAPI规范的学习记录存储,并由ADL认证。它具有最小化的一组功能,但任何具有PHP/Laravel编程技能的人都可以扩展它。

用例

Web应用程序与纯API

  • Web应用程序:TRAX LRS提供符合xAPI的API以及用户界面(UI),该UI可用于管理API客户端、探索xAPI数据等。UI访问通过身份验证系统进行保护。

  • 纯API:TRAX LRS可以作为纯xAPI符合的API使用,不包含任何用户界面。为了支持这种情况,TRAX LRS提供了一组可以直接在控制台中使用的命令。

数据库场景

  • 关系数据库:大多数现代关系数据库现在支持JSON格式,可用于存储xAPI数据。TRAX LRS为此场景提供了一些选项,包括MySQLMariaDBPostgreSQL

  • NoSQL数据库:NoSQL数据库也可以作为一个好的选择,因为它们可以原生处理JSON格式,并提供高级可扩展性。为了支持这种情况,TRAX LRS可以与MongoDB一起使用。

  • 混合数据库:在某些特定情况下,使用混合解决方案可能是有意义的。使用TRAX LRS,您可以使用NoSQL数据库来存储xAPI数据,并使用关系数据库来存储其他所有内容,包括用户账户和相关数据(例如角色 & 权限、组等)。

服务器要求

  • Apache 2.4已激活mod_rewrite

  • 数据库,取决于您的场景

    • MySQL 5.7.19+(不包括MySQL 8

    • MariaDB 10.2.8+

    • PostgreSQL 10.3+

    • MongoDB 3.6.3+

  • PHP 7.1.9+带有以下扩展(Apache和CLI!)

    • OpenSSLMbstringTokenizerXMLCtypeJSONCurlBCMathExif

    • PDO_MySQL如果您想使用MySQL或MariaDB。

    • PgSQLPDO_PgSQL如果您想使用PostgreSQL。

    • MongoDB如果您想使用MongoDB。

  • Composer用于安装和更新应用程序。

安装应用程序

克隆应用程序

将应用程序克隆得最简单的方法是在终端中使用Composer的create-project命令。以下示例将在名为traxlrs的目录中安装应用程序。

composer create-project --prefer-dist --stability rc trax/lrs traxlrs

目录权限

在克隆应用程序后,您可能需要配置一些权限。在storagebootstrap/cache目录中的目录应该可以被您的Web服务器访问,否则TRAX LRS将无法运行。

公共目录

在克隆应用程序后,您应该配置Web服务器的文档/网站根目录为public目录。出于安全原因,其他目录不应可访问。

创建数据库

创建一个编码为utf8mb4_unicode_ci的空数据库。

配置

在您的应用程序根目录中,您应该找到一个名为.env的文件。如果此文件不存在,请复制并重命名.env.example文件。然后,编辑.env文件以配置您的应用程序。

常规设置

  • APP_ENV在开发期间应该是local,在生产服务器上应该是production

  • APP_KEY应该在安装期间生成。如果没有,可以使用php artisan key:generate命令为您生成密钥。没有此密钥,TRAX LRS将无法运行。

  • APP_DEBUG在开发期间应该是true,在生产服务器上应该是false

  • APP_URL应该是您应用程序的根URL。

数据库

  • DB_CONNECTION对于MySQL和MariaDB应该是mysql,对于PostgreSQL应该是pgsql,对于纯MongoDB场景应该是mongodb。对于混合数据库场景,它应该是根据您的数据库类型为mysqlpgsql

关系数据库(如有适用情况)

  • DB_HOSTDB_PORT用于定位您的数据库。

  • DB_DATABASE是您的数据库的名称。

  • DB_USERNAMEDB_PASSWORD是您的数据库的凭据。

  • 当使用MariaDB时,DB_MARIADB应该是1,否则应该是0

MongoDB数据库(如有适用情况)

  • MONGO_DB_HOSTMONGO_DB_PORT用于定位您的MongoDB数据库。

  • MONGO_DB_DATABASE是您的MongoDB数据库的名称。

  • MONGO_DB_USERNAMEMONGO_DB_PASSWORD是您的MongoDB数据库的凭据。

数据存储驱动程序

  • 对于纯MongoDB场景,应添加并设置USER_STORE_DRIVERmongo。否则,此设置应删除。

  • 对于纯MongoDB和混合数据库场景,应添加并设置CLIENT_STORE_DRIVERmongo。否则,此设置应删除。

  • 对于纯MongoDB和混合数据库场景,应添加并设置XAPI_STORE_DRIVERmongo。否则,此设置应删除。

会话

  • SESSION_DRIVER 应该为关系型数据库或混合数据库场景设置 database,或为纯 MongoDB 场景设置 file

  • SESSION_CONNECTION 应该与 MySQL 和 MariaDB 配置为 mysql,或与 PostgreSQL 配置为 pgsql。在纯 MongoDB 场景中不使用。

安装数据库

在尝试安装数据库之前,您的应用程序必须配置得当。准备好后,从应用程序的根目录中输入以下命令

php artisan migrate

创建管理员用户

安装数据库后,您可能希望创建一个管理员用户以便登录应用程序。从应用程序的根目录中输入以下命令

php artisan user:create-admin

复制生成的密码和电子邮件。然后,打开您的浏览器并登录到应用程序。别忘了在 我的资料 中更改您的密码。

创建客户端账户

一旦您的数据库安装完成,您可能希望创建一些基本的 HTTP 客户端账户,以便第三方应用程序连接到 LRS。您可以直接从 LRS 用户界面(基本 HTTP 客户端页面)或使用 php artisan client:create 命令(详见下文)创建客户端账户。

然后,您可以使用凭据和以下端点配置您的客户端,假设您的 LRS URL 是 http://trax.test

http://trax.test/trax/ws/xapi

如果您想检查端点 URL 是否正确,以及您的 LRS 是否正在运行,只需在浏览器中输入 http://trax.test/trax/ws/xapi/about。您应该看到一些 JSON 信息。

控制台命令

TRAX LRS 提供了一些方便的控制台命令,可以直接从您的控制台管理应用程序

  • php artisan user:create-admin <email>:给定电子邮件地址创建一个新的管理员用户账户。当省略电子邮件时,它创建标准的 admin 账户或重置其密码。

  • php artisan user:list:显示用户账户列表。

  • php artisan user:delete <email>:删除用户账户。

  • php artisan client:create <username> <password>:给定用户名和密码创建新的 API 客户端。用户名和密码是可选的,省略时将自动生成。

  • php artisan client:list:显示 API 客户端列表。

  • php artisan client:delete <username>:删除 API 客户端。

插件

  • Trax Sync:一个插件,可以将您的语句推送到外部存储库(LRS 或 ElasticSearch)

性能优化

为了优化应用程序的性能,您可能希望激活一些缓存功能。从根目录中,输入以下命令

php artisan route:cache
php artisan config:cache

许可证和版权

TRAX LRS 在 EUPL 1.2 许可证 下分发。

版权所有 2019 Sébastien Fraysse,http://fraysse.eusebastien@fraysse.eu