Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

from-vilog #1017

Merged
merged 226 commits into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
226 commits
Select commit Hold shift + click to select a range
bc16068
Revert "docs: Word to CHiBi-CHiLO"
ties-makimura Apr 28, 2023
a946a1b
Merge pull request #2 from npocccties/to-vilog
ties-makimura Apr 28, 2023
8a92538
Merge pull request #3 from npocccties/master
ties-makimura May 2, 2023
efd0838
Imported changes from master for README-en.md README-ja.md README.md
kou029w Sep 19, 2023
65bb759
データ構造・テーブル設計 #39
YouheiNozaki Sep 20, 2023
024bccd
prisma migrate
YouheiNozaki Sep 20, 2023
a04eaea
fix migration file name
YouheiNozaki Sep 20, 2023
a7a6c9f
Merge pull request #50 from LTRP-SOC5-OU/feat/bookmark
kou029w Sep 20, 2023
e01ea72
Add files via upload
szshirai Mar 24, 2022
1ff3915
Add files via upload
szshirai Mar 24, 2022
ef731a7
Merge pull request #51 from LTRP-SOC5-OU/feat/bookmark-create-table
YouheiNozaki Sep 24, 2023
3447040
feat/40
YouheiNozaki Sep 24, 2023
673c89c
fix bookmark model
YouheiNozaki Sep 30, 2023
553b709
Merge pull request #52 from LTRP-SOC5-OU/restore-docs-assets
kou029w Oct 3, 2023
9458c32
fix createBook args
YouheiNozaki Oct 4, 2023
e5e826b
generate openapi
YouheiNozaki Oct 4, 2023
23900d3
fix: createbookmark args session
YouheiNozaki Oct 4, 2023
6eb9490
feat:#43 動画視聴画面のタグ作成UIを作成
YouheiNozaki Oct 5, 2023
b5ebaab
fix option margin
YouheiNozaki Oct 5, 2023
74fdec8
Merge pull request #53 from LTRP-SOC5-OU/feat/#40-create-bookmark-api
YouheiNozaki Oct 18, 2023
d3db6fd
Merge pull request #56 from LTRP-SOC5-OU/feat/#43
YouheiNozaki Oct 18, 2023
402a719
feat:42[動画視聴画面]タグの取得APIの作成
YouheiNozaki Oct 18, 2023
f1a4d05
fix:bookmarks response schema
YouheiNozaki Oct 18, 2023
74ed990
fix: remove user from the response
YouheiNozaki Oct 18, 2023
622d86c
Merge pull request #59 from LTRP-SOC5-OU/feat/42
YouheiNozaki Oct 19, 2023
a9bf378
fix:TagSchemaのlabelの型をstringに変更
YouheiNozaki Oct 19, 2023
cd2e026
fix: 階層構造を持つzipファイルでサーバが異常終了する
acutus-fujii Oct 11, 2023
f9228aa
fix: 自身の著作でない場合は 403エラーにする
acutus-fujii Oct 11, 2023
3310f13
fix: ブックの上書きインポートでトピックが自身の著作かチェックする
acutus-fujii Oct 11, 2023
75ffc5b
エラーメッセージの改良
acutus-fujii Oct 12, 2023
ab48de8
build: 依存関係の更新 (2023-09-05)
kou029w Sep 5, 2023
d2622a7
test: Define `ts-jest` config under `globals` is deprecated.
kou029w Sep 5, 2023
db93d16
build(docker): 依存関係の更新
kou029w Sep 7, 2023
92c7880
build: 依存関係の更新 (GitHub Actions: actions/checkout@v4)
kou029w Sep 7, 2023
dde82b0
fix: TypeScriptの型付けの更新
kou029w Sep 26, 2023
b96e343
feat: fetch() を使う
kou029w Oct 2, 2023
83d6c34
chore: bump minor version
kou029w Oct 2, 2023
1a2d7d1
fix: Video.jsシークボタンが表示されない不具合を修正
kou029w Oct 17, 2023
66856be
fix: SyntaxErrorがログに記録される問題の修正
kou029w Oct 17, 2023
c28333f
fix: 公開している提供中ブック視聴途中でブックが最初から再生される問題の修正
kou029w Oct 19, 2023
e1cd27c
Merge remote-tracking branch 'origin/master' into v2.5.1
kou029w Oct 23, 2023
256eb54
Merge pull request #68 from LTRP-SOC5-OU/v2.5.1
kou029w Oct 23, 2023
72de60b
Merge pull request #67 from LTRP-SOC5-OU/fix/tagSchema-label-type
YouheiNozaki Oct 24, 2023
0cd2bdd
feat:60[動画視聴画面] 複数のタグ追加UI
YouheiNozaki Oct 24, 2023
785cf40
メニューの位置調整
YouheiNozaki Oct 24, 2023
b76ab33
fix style
YouheiNozaki Oct 25, 2023
6518e8b
Merge pull request #71 from LTRP-SOC5-OU/feat/60
YouheiNozaki Oct 25, 2023
342cb98
fix:[動画視聴画面]TagListコンポーネントへのリファクタ
YouheiNozaki Oct 25, 2023
c8e5277
タグの初期値を設定
YouheiNozaki Oct 25, 2023
769385d
fix:キャッシュの更新
YouheiNozaki Oct 25, 2023
7dedd75
feat:[動画視聴画面]タグの削除APIの作成
YouheiNozaki Oct 25, 2023
1ab9bd2
変数名の調整
YouheiNozaki Oct 25, 2023
6fe0c65
Merge pull request #73 from LTRP-SOC5-OU/feat/41
YouheiNozaki Oct 26, 2023
bbc0810
Merge pull request #72 from LTRP-SOC5-OU/fix/tag-defaultvalue
YouheiNozaki Oct 26, 2023
9fe76e6
feat:44[動画視聴画面]タグ削除UIの作成
YouheiNozaki Oct 26, 2023
69ea2bb
Merge pull request #74 from LTRP-SOC5-OU/fix/44
YouheiNozaki Oct 31, 2023
62546a6
feat:76[動画視聴画面] タグの削除UIのアクセス制限
YouheiNozaki Oct 31, 2023
1a30d03
feat:75[動画視聴画面] タグの削除APIのアクセス制限
YouheiNozaki Oct 31, 2023
db579e9
Merge pull request #79 from LTRP-SOC5-OU/feat/76
YouheiNozaki Oct 31, 2023
e402eb8
Merge pull request #80 from LTRP-SOC5-OU/feat/75
YouheiNozaki Nov 2, 2023
93e303a
findBookmarksにisAllUsersフラグ(userIdで絞り込むか否か)を付与
YouheiNozaki Nov 2, 2023
8fe62f0
fix: bookmarks cache invalidate
YouheiNozaki Nov 2, 2023
6d2288e
フィードバックUIのコンポーネントを作成
YouheiNozaki Nov 2, 2023
73e33ae
feat:75[動画視聴画面] タグの削除APIのアクセス制限
YouheiNozaki Oct 31, 2023
b7866dd
feat: ブックマークのタグ種別をデータベースで管理
kou029w Nov 1, 2023
3465216
Merge pull request #87 from LTRP-SOC5-OU/gh-62
YouheiNozaki Nov 7, 2023
4adf2e0
Merge pull request #86 from LTRP-SOC5-OU/feat/61
YouheiNozaki Nov 7, 2023
0f6f3b7
feat: 学習分析画面でのブックマークのタグの集計の表示 (#89)
kou029w Nov 7, 2023
dc6a1f4
feat:45[タグ管理画面]タグの取得APIの作成
YouheiNozaki Nov 7, 2023
467ea88
fix type
YouheiNozaki Nov 7, 2023
67740cd
hooksを作成
YouheiNozaki Nov 7, 2023
dcd18f2
hooksのディレクトリをbookmarkにまとめる
YouheiNozaki Nov 7, 2023
7e77428
useBookmarksに処理を共通化
YouheiNozaki Nov 9, 2023
bb44de2
コミット漏れ
YouheiNozaki Nov 9, 2023
b525cc7
fix fetchBookmarks args
YouheiNozaki Nov 9, 2023
d84002f
fix:トピック・ブック一覧画面では、タグ追加メニューを表示しない
YouheiNozaki Nov 9, 2023
6da6c05
Merge pull request #91 from LTRP-SOC5-OU/feat/45
YouheiNozaki Nov 9, 2023
f5475d6
feat:46
YouheiNozaki Nov 10, 2023
985182b
fix server response
YouheiNozaki Nov 10, 2023
c73caf0
タグ選択項目を表示
YouheiNozaki Nov 10, 2023
9a3ed3c
fix: fixed typo ltiCosumerId → ltiConsumerId (#96)
kou029w Nov 13, 2023
2b6aacd
Merge pull request #97 from LTRP-SOC5-OU/feat/46
YouheiNozaki Nov 14, 2023
16b702f
fix: query.bookIdで判定するように変更
YouheiNozaki Nov 14, 2023
e41cd60
fix args bookId
YouheiNozaki Nov 14, 2023
035dbb8
fix:フィルターアイコンを削除
YouheiNozaki Nov 15, 2023
b54e356
fix:tokenで公開Bookか否かを判定する
YouheiNozaki Nov 15, 2023
4fe5249
Merge pull request #99 from LTRP-SOC5-OU/fix/delete-filter-icon
YouheiNozaki Nov 15, 2023
54f68e6
Merge pull request #94 from LTRP-SOC5-OU/fix/92
YouheiNozaki Nov 15, 2023
a6124ba
fix: 学習分析のセレクターの文言の「トピックでのすべての活動を分析」を「他のコースを含めた活動を分析」に変更する (#108)
kou029w Nov 17, 2023
b1fe6ad
Merge pull request #1006 from npocccties/gh-1005 (#109)
kou029w Nov 20, 2023
c46ca03
ブックマークの統計情報のダウンロード (#107)
kou029w Nov 20, 2023
c05d7e2
fix/104: Lintエラー
YouheiNozaki Nov 20, 2023
7b787d3
fix:77 公開ブックが作成できない不具合の修正
YouheiNozaki Nov 20, 2023
bd3cde2
fix:100 タグ追加UIの常時表示
YouheiNozaki Nov 20, 2023
69e773e
fix:83 タグがない場合
YouheiNozaki Nov 20, 2023
4495310
Merge pull request #110 from LTRP-SOC5-OU/fix/104
YouheiNozaki Nov 21, 2023
455850c
Merge pull request #112 from LTRP-SOC5-OU/fix/100
YouheiNozaki Nov 21, 2023
f4f04d8
fix:filter
YouheiNozaki Nov 21, 2023
be13565
feat/46
YouheiNozaki Nov 21, 2023
f5e49b7
fix: ブックマークの作成APIでのエラーの修正 (#113)
kou029w Nov 22, 2023
fd25097
Merge pull request #111 from LTRP-SOC5-OU/fix/77
YouheiNozaki Nov 22, 2023
e9fb916
fix: TagMenuがVideoに隠れて表示されない
YouheiNozaki Nov 22, 2023
0488645
feat:ヘッダーにタグ管理メニューアイコンを追加
YouheiNozaki Nov 22, 2023
776df05
feat:Instructor以外のユーザーの場合にもヘッダーを表示するようにする仕様の検討
YouheiNozaki Nov 22, 2023
855772b
コミット漏れ
YouheiNozaki Nov 22, 2023
918bc96
fix:react-useで修正
YouheiNozaki Nov 24, 2023
4d0048b
fix:アイコンの変更
YouheiNozaki Nov 24, 2023
54208ee
Merge pull request #116 from LTRP-SOC5-OU/feat/add-header-bookmarks
YouheiNozaki Nov 24, 2023
fdec78e
Merge remote-tracking branch 'origin/master' into fix/display-header-…
YouheiNozaki Nov 24, 2023
e87a5c3
Merge pull request #117 from LTRP-SOC5-OU/fix/display-header-student
YouheiNozaki Nov 24, 2023
ab03cd7
Merge pull request #115 from LTRP-SOC5-OU/fix/tagMenu-zIndex
YouheiNozaki Nov 24, 2023
24bae80
feat:タグメニューの選択UIの作成
YouheiNozaki Nov 24, 2023
1c9ee93
Merge remote-tracking branch 'origin/master' into fix/46
YouheiNozaki Nov 28, 2023
00e8276
クライアントもURLSearchParamsでクエリを生成するように変更
YouheiNozaki Nov 28, 2023
b948e67
colorを定数で修正
YouheiNozaki Nov 28, 2023
977bdd7
Merge pull request #114 from LTRP-SOC5-OU/fix/46
YouheiNozaki Nov 28, 2023
17b85cd
feat:64 ブックマークのレスポンスにトピック情報を追加
YouheiNozaki Nov 28, 2023
f608bca
一覧仮表示
YouheiNozaki Nov 28, 2023
9595eef
最新の更新日時を表示
YouheiNozaki Nov 28, 2023
77ab37e
add includes query
YouheiNozaki Nov 29, 2023
36b4087
ブックマークの説明のスタイルを調整
YouheiNozaki Nov 29, 2023
9e4a48c
一覧のスタイルを調整
YouheiNozaki Nov 29, 2023
411b75f
コメント追加
YouheiNozaki Nov 29, 2023
678c255
BookmarkPreviewコンポーネントを作成
YouheiNozaki Nov 30, 2023
8810c46
feat:63 トピック詳細APIの調整
YouheiNozaki Nov 30, 2023
47a0d08
Merge pull request #119 from LTRP-SOC5-OU/feat-64-findbookmarks-response
YouheiNozaki Dec 5, 2023
d335b2f
Merge remote-tracking branch 'origin/master' into feat-63
YouheiNozaki Dec 5, 2023
9f7054a
コメントの修正
YouheiNozaki Dec 5, 2023
a92b0bc
Merge pull request #121 from LTRP-SOC5-OU/feat-63
YouheiNozaki Dec 5, 2023
1f1d2ab
fix:63 [タグ管理画面] タグ管理画面用の視聴UI
YouheiNozaki Dec 5, 2023
8290dc1
fix: createdBookmarkのレスポンスSchemaを修正
YouheiNozaki Dec 5, 2023
d00d8c2
fix:eslintエラーの修正
YouheiNozaki Dec 5, 2023
f4299cc
Merge pull request #125 from LTRP-SOC5-OU/fix/createdBookmark-schema
YouheiNozaki Dec 6, 2023
b0b9413
Merge pull request #126 from LTRP-SOC5-OU/fix/122
YouheiNozaki Dec 6, 2023
263c045
ブックマーク機能関連のstorybookを作成
YouheiNozaki Dec 6, 2023
a5ea771
Merge remote-tracking branch 'origin/master' into feat/63
YouheiNozaki Dec 6, 2023
98ca48e
fix:3db5917
YouheiNozaki Dec 6, 2023
dfb40f8
視聴時間を非表示
YouheiNozaki Dec 6, 2023
edeb05e
403になってしまうのを修正
YouheiNozaki Dec 6, 2023
d4e1712
isBookPageを受け取るように修正
YouheiNozaki Dec 7, 2023
72521b6
fix: csf3.0
YouheiNozaki Dec 7, 2023
56ee302
Merge pull request #124 from LTRP-SOC5-OU/feat/63
YouheiNozaki Dec 7, 2023
e550b85
Merge pull request #127 from LTRP-SOC5-OU/chore/bookmark-storybook
YouheiNozaki Dec 12, 2023
5b43a64
feat:103[タグ管理画面]自身のブックマークのタグのみ表示する
YouheiNozaki Dec 12, 2023
bccb8f1
Merge pull request #131 from LTRP-SOC5-OU/feat/103-filter-bookmarks-b…
YouheiNozaki Dec 12, 2023
f255ec0
fix:103[タグ管理画面]トピックでグループ化すること
YouheiNozaki Dec 13, 2023
9af498c
feat: タグ管理画面での視聴時の視聴ログの出力
kou029w Nov 13, 2023
c69ed5a
feat: Video種別ログを出力
kou029w Nov 13, 2023
1667760
feat: タグ管理画面での視聴時の視聴ログの出力
kou029w Dec 6, 2023
c283bb7
syslog 18,19,20 には無効値を出力
kou029w Dec 13, 2023
59914b4
fixed eslint error
kou029w Dec 13, 2023
62f0277
コースごとに表示
YouheiNozaki Dec 14, 2023
24fc23f
add distinct
YouheiNozaki Dec 20, 2023
b89e9f1
add query ltiConsumerId
YouheiNozaki Dec 20, 2023
1d290db
Merge pull request #133 from LTRP-SOC5-OU/fix/103-1
YouheiNozaki Dec 21, 2023
7b32a6d
feat:120 絵文字タグのUIの実装 (#134)
YouheiNozaki Dec 25, 2023
d479729
目次部分の学習時間で自動折り返しをしないようにnowrapを指定 (#136)
kou029w Jan 9, 2024
fffcdd0
feat:137 Bookmarkテーブルに自由記述タグのスキーマを追加
YouheiNozaki Jan 29, 2024
1681ba2
add model
YouheiNozaki Jan 29, 2024
b2bf359
cancel migrate memo model
YouheiNozaki Jan 30, 2024
96f4403
add memoContent to Bookmark Schema
YouheiNozaki Jan 30, 2024
45a9d55
feat: 「タグを追加」アイコンを配置 (#151)
kou029w Jan 30, 2024
2830fc8
Merge pull request #150 from LTRP-SOC5-OU/feat/137
YouheiNozaki Jan 30, 2024
465bd16
[feat:138]自由記述タグの追加APIの作成
YouheiNozaki Jan 30, 2024
8dc7c0e
fix tag nullable
YouheiNozaki Jan 31, 2024
bd5ec57
add routes
YouheiNozaki Jan 31, 2024
59c0926
Merge pull request #153 from LTRP-SOC5-OU/feat/138
YouheiNozaki Feb 1, 2024
aebe9a6
#139: [動画視聴画面] 自由記述タグを付与するUIの実装
YouheiNozaki Feb 5, 2024
c2e167a
タグが全て選択ずみの場合、自由記述タグが入力できない不具合の修正
YouheiNozaki Feb 5, 2024
7b8d056
fix lint error
YouheiNozaki Feb 5, 2024
f81a835
Merge pull request #154 from LTRP-SOC5-OU/feat/139
YouheiNozaki Feb 7, 2024
8891cd0
feat:141 [動画視聴画面] 自由記述タグを削除するUIの実装
YouheiNozaki Feb 19, 2024
f6e583e
fix useConfirm
YouheiNozaki Feb 20, 2024
81e4402
fix onDeleteBookmark type
YouheiNozaki Feb 20, 2024
5ac2228
Merge pull request #162 from LTRP-SOC5-OU/feat/141-delete-dialog
YouheiNozaki Feb 20, 2024
f2e1c43
タグ取得APIの仕様変更
YouheiNozaki Feb 27, 2024
deb4bff
feat: 実視聴回数記録用テーブルのスキーマの追加
yutsuda Feb 27, 2024
3d955fb
Merge pull request #167 from LTRP-SOC5-OU/feat/143
YouheiNozaki Feb 28, 2024
2e651df
feat146: [タグ管理画面] 一覧画面のフィルター表示 (#165)
YouheiNozaki Feb 28, 2024
5a2cc05
add endpoint wordCloud/:bookId
YouheiNozaki Mar 4, 2024
f5de160
wip: feat: ActivityTimeRangeLogを用いた実視聴記録
yutsuda Mar 5, 2024
56970b7
fix: 実視聴記録時の余計なオブジェクトの変換の除去
yutsuda Mar 5, 2024
5070d71
fix wordCloud params
YouheiNozaki Mar 5, 2024
4b94601
install kuromoji
YouheiNozaki Mar 5, 2024
f2b43bd
create dictionary file
YouheiNozaki Mar 5, 2024
9f18c22
build openapi
YouheiNozaki Mar 5, 2024
5b8eeed
fix: 実視聴記録時の余計なオブジェクト変換の削除時のバグを修正
yutsuda Mar 6, 2024
744e218
fix wordCloud value
YouheiNozaki Mar 6, 2024
0fbb255
fix: クライアントからの前回送信時刻の計算ミス
yutsuda Mar 10, 2024
2430a26
feat: ActivityTimeRangeLogでupdatedAtを設定するように変更
yutsuda Mar 10, 2024
d4c8f86
wip: fix: yarn lint(一部対応不十分)とyarn prettierで修正
yutsuda Mar 11, 2024
725e9a5
fix: 視聴記録を作る際の条件分岐を統合
yutsuda Mar 11, 2024
944176f
fix: yarn lint指摘箇所の修正
yutsuda Mar 11, 2024
02fb02b
add word-cloud-ui
YouheiNozaki Mar 12, 2024
a5d461b
Merge pull request #170 from LTRP-SOC5-OU/feat/144
YouheiNozaki Mar 12, 2024
5d2474f
feat:155
YouheiNozaki Mar 13, 2024
88d57ac
コメントの表示削除/コメントが存在する場合、アイコンの種類を出し分ける
YouheiNozaki Mar 13, 2024
9a61763
fix tagwithDeleteButton
YouheiNozaki Mar 13, 2024
908dfdb
Merge pull request #177 from LTRP-SOC5-OU/feat/155
YouheiNozaki Mar 13, 2024
c635e5d
「視聴分析データをダウンロード」ボタンにtitle属性追加 (#184)
ties-makimura Mar 14, 2024
4e776a1
fix: yarn lint指摘箇所 (createdAt, updatedAtの型) の修正
yutsuda Mar 17, 2024
613b650
Merge pull request #174 from LTRP-SOC5-OU/feat/159-activitytimerange-…
yutsuda Mar 17, 2024
92a7da9
feat: 視聴区間毎に実視聴回数を記録するActivityTimeRangeCountのスキーマの作成
yutsuda Mar 17, 2024
922196f
[タグ管理画面] 一覧画面のフィルターの見た目のフィードバック/対応
YouheiNozaki Mar 18, 2024
d320c8d
fix type
YouheiNozaki Mar 18, 2024
59a1eb7
feat: 実視聴回数記録の実装
yutsuda Mar 18, 2024
bed280d
docs: 実視聴回数記録のための環境変数の説明を追加
yutsuda Mar 18, 2024
ecae579
Merge pull request #185 from LTRP-SOC5-OU/feat/168
YouheiNozaki Mar 19, 2024
4bdbbb0
fix: 環境変数名とドキュメントの記載箇所の修正
yutsuda Mar 19, 2024
7a99835
feat: タグクラウドの表示の遷移: ブックタブではなく新しく「タグ」タブを設ける (#187)
kou029w Mar 19, 2024
c122242
179:感想コメントの更新機能
YouheiNozaki Mar 19, 2024
a6efc58
fix where query
YouheiNozaki Mar 19, 2024
2feab7e
Merge pull request #186 from LTRP-SOC5-OU/feat/161-activity-time-rang…
yutsuda Mar 19, 2024
4eee1e1
refactor: ループ内での冗長な処理の除去
yutsuda Mar 20, 2024
9b72c22
refactor: 時刻の変数名の変更
yutsuda Mar 20, 2024
02464e8
Merge pull request #188 from LTRP-SOC5-OU/feat/179
YouheiNozaki Mar 21, 2024
8a70764
感想コメント機能/タグ管理画面のフィードバック対応 (#191)
kou029w Mar 21, 2024
4247406
refactor: ActivityTimeRangeLogに直近の視聴記録を連結する関数の名称を変更
yutsuda Mar 28, 2024
1237132
refactor: concatenate関数はconcatと紛らわしいので名称を変更
yutsuda Mar 28, 2024
15a017f
タグ管理画面のコメントを5文字以上は省略 (#194)
YouheiNozaki Mar 29, 2024
e869686
Merge pull request #193 from LTRP-SOC5-OU/refactor/190-activitytimera…
ties-makimura Apr 5, 2024
d183a41
Merge remote-tracking branch 'feat-tag-upstream/master' into feat-tag
ties-makimura Apr 5, 2024
51598c4
Merge pull request #4 from LTRP-SOC5-OU/feat-tag
ties-makimura Apr 5, 2024
82656aa
Merge remote-tracking branch 'ccc/master' into feat-tag
ties-makimura Apr 5, 2024
34ee937
bot: lint:fix
Apr 5, 2024
d8ccb34
Merge pull request #5 from LTRP-SOC5-OU/feat-tag
ties-makimura Apr 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README-en.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# CHiBi-CHiLO
# ViLOG

[English](README-en.md) |[Japanese](README-ja.md)

## What kind of program is it?

CHiBi-CHiLO is an open-source program for analyzing video viewing logs. This program allows you to compile video contents already existing on Wowza, YouTube, and Vimeo into easy-to-use contents for learners and to collect and visualize video viewing logs. This system is an LTI tool provider and can be used in conjunction with LMS such as Moodle and BlackBoard.
ViLOG is an open-source program for analyzing video viewing logs. This program allows you to compile video contents already existing on Wowza, YouTube, and Vimeo into easy-to-use contents for learners and to collect and visualize video viewing logs. This system is an LTI tool provider and can be used in conjunction with LMS such as Moodle and BlackBoard.

<!--- わかりやすい動画例を添付する。 --- LTI リンクを起点とする操作例 Gif か mp4 へのリンク-->

## How to Use CHiBi-CHiLO
## How to Use ViLOG

Please read the [installation guide](INSTALL-en.md).
Please read the installation guide (INSTALL-ja.md).

### Learning Analytics

Expand Down
18 changes: 7 additions & 11 deletions README-ja.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# CHiBi-CHiLO
# ViLOG

[English](README-en.md) | 日本語

## これは何をするプログラムか

Moodle や BlackBoard などの LTI と連携して、Wowza, YouTube, Vimeo 上に存在する動画コンテンツを、学習者が利用しやすいコンテンツにまとめ上げるシステムです。
ViLOG システムはオープンソースのビデオ視聴行動分析システムです。
本システムは,Wowza, YouTube, Vimeo 上に存在する動画コンテンツを、学習者が利用しやすいコンテンツにまとめ上げる機能と,動画視聴時のログを収集し,可視化する機能を提供します。
本システムは,LTI ツールプロバイダーであり,Moodle や BlackBoard などの LMS と連携して利用できます。

下記のような画面を提供します。

--- わかりやすい動画例を添付する。 --- LTI リンクを起点とする操作例 Gif か mp4 へのリンク
<!--- わかりやすい動画例を添付する。 --- LTI リンクを起点とする操作例 Gif か mp4 へのリンク-->

## 使い方

Expand Down Expand Up @@ -45,14 +45,10 @@ CSV ファイルの各カラムの詳細は次のとおりです。

インストールしたあと、下記の URL から操作方法を学んでください。

## 貢献方法
<!--## 貢献方法

contributing.md を参考にしてください。著作権が発生するほどのコードやドキュメントを貢献していただいた方々には、Authors.rst にお名前と連絡用のメールアドレスを記載します。
contributing.md を参考にしてください。著作権が発生するほどのコードやドキュメントを貢献していただいた方々には、Authors.rst にお名前と連絡用のメールアドレスを記載します。-->

## ライセンス

MIT

## funding

永続的な開発を続けるために、寄付を歓迎します。
32 changes: 26 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,29 @@
# ![ロゴ](docs/assets/chibichilo_s.png)CHiBi-CHiLO
# ![ロゴ](docs/assets/ViLOG_s.png) ViLOG: Video viewing LOG analytics system

[English](README-en.md) | [日本語](README-ja.md)
[English](README-en.md) | [Japanese](README-ja.md)

CHiBi-CHiLO とは,LMS と外部接続する[LTI ツールプロバイダー](https://www.imsglobal.org/activity/learning-tools-interoperability) です.
ビデオを共有・再利用することを目的に開発されました.Youtube や Vimeo などのインターネット上のビデオを組み合わせ,「ブック」と呼ばれる形式のビデオ教材として LMS で配信することができます.
ViLOG (Video viewing LOG analytics system) is an open-source video viewing behavior analysis system developed as the first step of an ongoing research project on engagement analytics for video-based learning. This system was developed as a Learning Tools Interoperability (LTI)-compliant tool so that it would be easy to implement in any environment and to extend features to validate the new framework.

[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fnpocccties%2Fchibichilo&env=SESSION_SECRET,DATABASE_URL)
This work was supported by MEXT "Innovation Platform for Society 5.0" Program Grant Number JPMXP0518071489.

## Functionality

### LTI Tool Provides

This system is developed as a [LTI tool provides](https://www.imsglobal.org/activity/learning-tools-interoperability "LTI tool provides") to be integrated with an LMS.

<img src="docs/assets/overview.png" width="500" alt="Overview of the ViLOG system">

### Video Viewing Behavior Dashboard

The dashboard page is focused on confirming the overview of students' progress in real time. We defined students' progress at three levels "Completed," "Attempts," "Unopened," and collected progress data at one-second intervals. The image shows the viewing progress per video lecture.

<img src="docs/assets/dashboard.png" width="500" alt="Dashboard page for confirming video viewing behavior">

### Video Viewing Behavior Dashboard

The system has a module for advanced analytics based on video.js to collect detailed video viewing behavior log data. This module saves video viewing log data such as play, pause, fast-forward, rewind, and playback speed changes every 10 seconds, in accordance with the log format defined by National Institute of Informatics (NII), Japan’s only general academic research institution.

## Citation

Shizuka Shirai, Masumi Hori, Masako Furukawa, Mehrasa Alizadeh, Noriko Takemura, Haruo Takemura and Hajime Nagahara. 2022. Design of open-source video viewing behavior analysis system. In Companion Proceedings 12th International Conference on Learning Analytics & Knowledge (LAK22), March 23-25, 2022, online. Society for Learning Analytics Research, 82. https://www.solaresearch.org/core/lak22-companion-proceedings/
14 changes: 14 additions & 0 deletions components/atoms/Emoji.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type { Meta, StoryObj } from "@storybook/react";

import Emoji from "./Emoji";
import { bookmark } from "$samples";

export default {
component: Emoji,
} satisfies Meta<typeof Emoji>;

type Story = StoryObj<typeof Emoji>;

export const Default: Story = {
render: () => <Emoji emoji={bookmark.tag.emoji} />,
};
28 changes: 28 additions & 0 deletions components/atoms/Emoji.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { css } from "@emotion/css";
import twemoji from "@twemoji/api";

import type { TagSchema } from "$server/models/bookmark";

const emojiClass = css({
lineHeight: "1",
"> .emoji": {
width: "16px",
height: "16px",
},
});

type Props = {
emoji: TagSchema["emoji"];
};

export default function Emoji({ emoji }: Props) {
return (
<span
className={emojiClass}
dangerouslySetInnerHTML={{
// @ts-expect-error twemojiの型定義が間違っている
__html: twemoji.parse(emoji),
}}
/>
);
}
2 changes: 1 addition & 1 deletion components/atoms/LearnerActivityDot.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default function LearnerActivityDot(props: Props) {
const { activity, onActivityClick, session } = props;
const classes = useStyles();
const handleActivityClick = () => onActivityClick?.(activity);
const items = getLocaleEntries(activity, session);
const items = Object.entries(getLocaleEntries(activity, session));
return (
<Tooltip
title={
Expand Down
14 changes: 14 additions & 0 deletions components/atoms/Tag.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type { Meta, StoryObj } from "@storybook/react";

import Tag from "./Tag";
import { bookmark } from "$samples";

export default {
component: Tag,
} satisfies Meta<typeof Tag>;

type Story = StoryObj<typeof Tag>;

export const Default: Story = {
render: () => <Tag tag={bookmark.tag} />,
};
48 changes: 48 additions & 0 deletions components/atoms/Tag.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { css } from "@emotion/css";
import type { BookmarkSchema, TagSchema } from "$server/models/bookmark";
import Emoji from "./Emoji";

const tagClass = css({
display: "flex",
alignItems: "center",
justifyContent: "space-between",
height: "26px",
width: "fit-content",
boxSizing: "border-box",
borderRadius: "999px",
margin: "6px 8px 6px 0px",
padding: "4px 16px",
background: "#FFF",
border: "solid 1px #F3F4F6",
"> :first-child": {
marginRight: "8px",
},
});

const text = css({
lineHeight: "1.1",
fontSize: "12px",
marginRight: "8px",
whiteSpace: "nowrap",
});

type Props = {
tag?: TagSchema;
memoContent?: BookmarkSchema["memoContent"];
};

export default function Tag({ tag, memoContent }: Props) {
if (!tag && !memoContent) return null;

return (
<div className={tagClass}>
<Emoji emoji={tag?.emoji || "💬"} />
<p className={text}>
{tag?.label ||
(memoContent && memoContent?.length > 5
? memoContent?.substring(0, 5) + "..."
: memoContent)}
</p>
</div>
);
}
23 changes: 23 additions & 0 deletions components/atoms/TagMenu.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import type { Meta, StoryObj } from "@storybook/react";

import TagMenu from "./TagMenu";
import { bookmark, bookmarkTagMenu } from "$samples";

export default {
component: TagMenu,
} satisfies Meta<typeof TagMenu>;

type Story = StoryObj<typeof TagMenu>;

export const Default: Story = {
render: () => (
<TagMenu
topicId={bookmark.topicId}
selectedTag={[bookmark.tag]}
tagMenu={bookmarkTagMenu}
handleTagChange={() => {}}
isBookmarkMemoContent={false}
onSubmitBookmark={async () => {}}
/>
),
};
155 changes: 155 additions & 0 deletions components/atoms/TagMenu.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
import { useCallback } from "react";
import { useLockBodyScroll, useToggle } from "react-use";
import { css } from "@emotion/css";
import { Dropdown } from "@mui/base/Dropdown";
import { Menu as BaseMenu, menuClasses } from "@mui/base/Menu";
import { MenuButton as BaseMenuButton } from "@mui/base/MenuButton";
import { MenuItem as BaseMenuItem, menuItemClasses } from "@mui/base/MenuItem";
import AddReactionOutlinedIcon from "@mui/icons-material/AddReactionOutlined";
import { styled } from "@mui/system";
import type {
BookmarkProps,
BookmarkTagMenu,
TagSchema,
} from "$server/models/bookmark";
import Emoji from "./Emoji";

const menuItem = css({
"> :first-child": {
marginRight: "8px",
},
});

type Props = {
topicId: number;
selectedTag: TagSchema[];
tagMenu: BookmarkTagMenu;
handleTagChange: (tag: TagSchema) => void;
isBookmarkMemoContent: boolean;
onSubmitBookmark: (body: BookmarkProps) => Promise<void>;
};

export default function TagMenu({
topicId,
selectedTag,
tagMenu,
handleTagChange,
isBookmarkMemoContent,
onSubmitBookmark,
}: Props) {
const onClick = useCallback(
async (option: TagSchema) => {
handleTagChange(option);
await onSubmitBookmark({ topicId, tagId: option.id });
},
[handleTagChange, onSubmitBookmark, topicId]
);

const filterTags = tagMenu.filter((tag) => {
return selectedTag.every((selected) => selected.id !== tag.id);
});

const [locked, toggleLocked] = useToggle(false);

useLockBodyScroll(locked);

if (filterTags.length === 0 && isBookmarkMemoContent) {
return null;
}

return (
<Dropdown
onOpenChange={() => {
toggleLocked();
}}
>
<MenuButton>
<AddReactionOutlinedIcon
sx={{
fontSize: 16,
verticalAlign: "middle",
}}
/>{" "}
タグを追加
</MenuButton>
<Menu slots={{ listbox: Listbox }}>
{filterTags.map((option) => (
<MenuItem
key={option.id}
value={option}
onClick={async () => await onClick(option)}
className={menuItem}
>
<Emoji emoji={option.emoji} />
{option.label}
</MenuItem>
))}
</Menu>
</Dropdown>
);
}

const MenuButton = styled(BaseMenuButton)(
() => `
font-size: 12px;
box-sizing: border-box;
padding: 8px 12px;
border-radius: 8px;
text-align: left;
background: #F9FAFB;
border: 1px solid #F9FAFB;
color: #339DFF;
`
);

const Menu = styled(BaseMenu)(
() => `
&.${menuClasses.root} {
margin-top: -12px !important;
margin-left: 20px !important;
// Dialogよりも上に表示する
z-index: 1301;
}
`
);

const Listbox = styled("ul")(
() => `
font-size: 12px;
box-sizing: border-box;
padding: 6px;
width: 145px;
border-radius: 12px;
overflow: auto;
outline: 0px;
background: #fff;
border: #fff;
box-shadow: 0px 4px 6px rgba(0,0,0, 0.05)
`
);

const MenuItem = styled(BaseMenuItem)(
() => `
display: flex;
align-items: center;
list-style: none;
padding: 8px;
cursor: default;
margin-right: -8px;
margin-left: -8px;
font-size: 12px;

&:hover {
background-color: #F9FAFB;
}

&.${menuItemClasses.focusVisible} {
background-color: #F9FAFB;
outline: none;
}

> span {
margin-left: 8px;
}
`
);
Loading