trax / lrs
TRAX LRS
Requires
- php: ^7.1.3
- fideloper/proxy: ^4.0
- jenssegers/mongodb: ^3.4
- laravel/framework: 5.7.*
- laravel/tinker: ^1.0
- trax/framework: ^1.0@RC
- trax/xapi: ^1.0@RC
Requires (Dev)
- beyondcode/laravel-dump-server: ^1.0
- filp/whoops: ^2.0
- fzaninotto/faker: ^1.4
- mockery/mockery: ^1.0
- nunomaduro/collision: ^2.0
- phpunit/phpunit: ^7.0
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为此场景提供了一些选项,包括MySQL、MariaDB和PostgreSQL。
-
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!)
-
OpenSSL、Mbstring、Tokenizer、XML、Ctype、JSON、Curl、BCMath、Exif
-
PDO_MySQL如果您想使用MySQL或MariaDB。
-
PgSQL和PDO_PgSQL如果您想使用PostgreSQL。
-
MongoDB如果您想使用MongoDB。
-
-
Composer用于安装和更新应用程序。
安装应用程序
克隆应用程序
将应用程序克隆得最简单的方法是在终端中使用Composer的create-project
命令。以下示例将在名为traxlrs的目录中安装应用程序。
composer create-project --prefer-dist --stability rc trax/lrs traxlrs
目录权限
在克隆应用程序后,您可能需要配置一些权限。在storage
和bootstrap/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
。对于混合数据库场景,它应该是根据您的数据库类型为mysql
或pgsql
。
关系数据库(如有适用情况)
-
DB_HOST
和DB_PORT
用于定位您的数据库。 -
DB_DATABASE
是您的数据库的名称。 -
DB_USERNAME
和DB_PASSWORD
是您的数据库的凭据。 -
当使用MariaDB时,
DB_MARIADB
应该是1
,否则应该是0
。
MongoDB数据库(如有适用情况)
-
MONGO_DB_HOST
和MONGO_DB_PORT
用于定位您的MongoDB数据库。 -
MONGO_DB_DATABASE
是您的MongoDB数据库的名称。 -
MONGO_DB_USERNAME
和MONGO_DB_PASSWORD
是您的MongoDB数据库的凭据。
数据存储驱动程序
-
对于纯MongoDB场景,应添加并设置
USER_STORE_DRIVER
为mongo
。否则,此设置应删除。 -
对于纯MongoDB和混合数据库场景,应添加并设置
CLIENT_STORE_DRIVER
为mongo
。否则,此设置应删除。 -
对于纯MongoDB和混合数据库场景,应添加并设置
XAPI_STORE_DRIVER
为mongo
。否则,此设置应删除。
会话
-
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.eu,sebastien@fraysse.eu。