|
以降の手順を実行する前に初期設定を行うこと。 |
GakuNinLMS-LTI-MC (CHiBi-CHiLO互換) の 視聴ログ分析基盤を構築する。
docker compose up -d --no-build // (1)
-
イメージをビルドする場合は
--no-build
の代わりに--build
オプションを指定
項目 |
名称 |
コンテナ名 |
前処理 |
ログフォーマット変換・加工 |
lti-mc-log-processor |
ステートメント変換 |
xAPIステートメント変換 |
lti-mc-xapi |
Caliperステートメント変換 |
lti-mc-caliper |
|
学習活動のデータストア |
Learning Locker(Web) |
learninglocker |
Learning Locker(DB) |
learninglocker-mongo |
|
learninglocker-redis |
||
OpenLRW(Web) |
openlrw |
|
OpenLRW(DB) |
openlrw-mongo |
|
分析システム |
Superset(Web) |
superset |
Superset(DB) |
superset-db |
|
JupyterHub(Web/DB) |
jupyterhub |
graph TB
ST([生徒]) -- 学習活動 --> LMS[LMS] --> VL[/視聴ログ/]
subgraph 本システムの対象
VL .-> P[[前処理]]
P -. 学習ログ .-> X[[xAPI変換]] -- xAPIステートメント --> L[(Learning Locker)]
P -. 学習ログ .-> C[[Caliper変換]] -- Caliperステートメント --> O[(OpenLRW)]
L --> S[Superset]
L --> J[JupyterHub]
O --> S
O --> J
S -- 可視化 --> T([教師])
J -- 分析結果 --> T
J -. 分析結果 .-> S
end
T == 教育方法とコース設計の改善 ==> LMS
LMS == 学習体験と成果の向上 ==> ST
スクリプトの設定ファイルを編集する。
const config = {
LRS:{
url:'http://<learninglocker-ip-address>:8081/data/xAPI/', // (1)
clients:{
'default':{
user:'<lrs-client-username>', // (2)
pass:'<lrs-client-password>' // (2)
}
}
},
...
-
Learning LockerのIPアドレスを設定
-
クライアントの設定 で確認したLRSのクライアント情報を設定
docker compose up -d lti-mc-xapi --force-recreate
OpenLRWから取得したAPIキー( mongoOrg.apiKey
)を caliper/.env
に設定する。
OPENLRW_DATABASE=caliper // (1) OPENLRW_USERNAME=caliper // (1) OPENLRW_PASSWORD=caliper // (1) API_KEY=$( docker exec openlrw-mongo \ mongo --quiet ${OPENLRW_DATABASE} \ -u ${OPENLRW_USERNAME} \ -p ${OPENLRW_PASSWORD} \ --eval 'db.mongoOrg.findOne({"org.name": "DEFAULT_ORG"}, {_id:0,apiKey:1}).apiKey' ) sed -i -e "s/OPENLRW_APIKEY=.*/OPENLRW_APIKEY=${API_KEY}/" caliper/.env docker compose up -d lti-mc-caliper # 変更を反映
-
OpenLRWの設定 を参照
学習ログをCaliperステートメントに変換する。
<CONSUMER_KEY>
にはLMSから取得する情報に付与される oauth_consumer_key
を指定する。
./run caliper /path/to/logfile <CONSUMER_KEY>
OpenLRWにステートメントが登録されていることを確認する。
docker exec openlrw-mongo \ mongo --quiet ${OPENLRW_DATABASE} \ -u ${OPENLRW_USERNAME} \ -p ${OPENLRW_PASSWORD} \ --eval 'db.mongoEvent.find().pretty()'
💡
|
操作方法の詳細は ユーザガイド - Creating Charts and Dashboards を参照すること。 |
Superset( http://localhost:8088 )にAdminユーザでログインする。
[Data] > [Datasets]
で選択した xapi_statements
を以下の条件で可視化する。
大項目 |
小項目 |
設定値 |
Visualization Type |
|
|
Time |
TIME COLUMN |
|
Query |
DIMENSIONS |
|
METRIC |
|
JupyterHub( http://localhost:8001 )に jupyter
ユーザ(パスワード: jupyter
)でログインする。