関連企業 Testlify

Testlify LTI 1.3 Advantage プラグイン

1EdTech 認定の LTI Advantage(1.3)統合。講師が Testlify のアセスメントをコースに割り当て、LMS の中からスコアを追跡できる。独自の OIDC/JWT ハンドシェイク、名簿同期、成績パスバックを Next.js 14 で構築した。

Canvas、Moodle、Blackboard のような学習管理システム(LMS)は、学校や企業研修チームが日々の運用を回す場所です。Testlify のアセスメントをそうしたシステムの中で使えるようにするには、安全で標準に準拠した橋渡しが必要でした。私は唯一のフルスタックエンジニアとして Testlify LTI プラグインを構築しました。講師が Testlify で作ったアセスメントをコースに登録された候補者に割り当て、そのスコアを追跡できます。すべて LMS の中から行えます。

Testlify LTI 1.3 プラグインのデモ

この統合は、LTI Advantage(v1.3)について 1EdTech の公式認定を取得しています — Names and Role Provisioning Services 2.0 と Assignment & Grade Services 2.0 です。適合性テストは 1EdTech が実施するので、これは自己申告ではありません。独立した機関が、実装が仕様に沿っていることを検証しました。

作ったもの

  • 独自の LTI 1.3 実装: 重いサードパーティの LTI ライブラリに頼るのではなく、仕様を Next.js 14 で直接実装しました。LMS と Testlify のあいだの信頼を確立する OpenID Connect ハンドシェイク、JWT 署名の検証、JWKS 公開鍵エンドポイントです。
  • 割り当てと追跡のフロー: ワークフロー全体を支える API 層を構築しました。講師が Testlify のアセスメントを選んでコースに課題として組み込む Deep Linking、そのコースに登録された候補者を取得する Names and Role Provisioning Services(NRPS)、そして各候補者のスコアを LMS の成績表に書き戻し、講師がふだん使う場所で結果を見られるようにする Assignment & Grade Services(AGS)です。
  • フルスタックのシステム: マルチテナントの API ルーティングと React 18 のダッシュボードを 1 つのアプリにまとめ、プラットフォームごとの設定のための MongoDB スキーマを設計し、ローカルテスト用に隔離された LMS 環境を再現するのに Docker を使いました。

なぜ意味があったか

標準に準拠した LTI 統合により、Testlify は高等教育と企業研修の市場に開かれました。そして私が作ったプラグインは 1EdTech の適合性テストを通過し、認定を得ました。講師はコース全体にアセスメントを割り当て、スコアを自動で成績表に受け取れます。名簿を書き出したり結果を手でコピーしたりする必要はありません。この種の手間こそ、LMS の導入をたいてい止めてしまうものです。