Google Classroomの課題提出状況を自動で集計・分析するためのGASツールです。
View the Project on GitHub phys-ken/classroom_assignment_aggregator
Googleスプレッドシート上で動作し、Google Classroomの課題提出状況を自動で集計・分析するためのツールです。
このツールは、Google Classroomのクラスが複数あり、生徒の課題提出状況を一覧で確認・集計したい先生向けのスクリプトです。スプレッドシートにメニューが追加され、簡単な操作で以下の機能を利用できます。
このスクリプトは、紐づけられたGoogleスプレッドシートから利用します。
Classroom Tools
という専用メニューが表示されます。
1. Get All Classes
: まずこれを実行し、classes
シートに対象クラスの一覧を読み込みます。2. Get Assignments
: classes
シートで集計したいクラスにチェックを入れ、これを実行します。assignment
シートに全課題データが展開されます。(初回実行時は、評価方法を設定するsetting
シートが作成されます)
3. Aggregate Scores
: assignment
シートのデータを元に、集計ダイアログが開きます。集計したいクラスや課題を選択し、新しいサマリーシートを作成します。
HELP
: 各機能の使い方を説明するダイアログが表示されます。onOpen()
: スプレッドシートを開いたときにカスタムメニューを生成します。getAllClasses()
: Classroom APIを利用して、teacherId: 'me'
の有効なクラスを取得し、classes
シートに書き出します。getAssignments()
: getAssignmentsCore_()
のラッパー関数。UIを介して確認ダイアログなどを表示します。getAssignmentsCore_()
: classes
シートで選択されたクラスの課題と全生徒の提出状況をClassroom APIから取得し、assignment
シートに整形して出力します。この際、setting
シートの評価設定に基づきFlag
列を計算します。showAggregateDialog()
: assignment
シートのデータから集計対象のクラスや課題をリストアップし、UIダイアログを生成します。aggregateScores_()
: ダイアログで選択された条件に基づき、生徒ごとのスコア、得点率、未提出率などを集計し、指定されたサマリーシートに出力します。claspを使用することで、ローカルでの開発とGoogle Apps Scriptサーバーとの同期を行うことができます。
# claspでプロジェクトをクローン
clasp clone [SCRIPT_ID]
# ローカルの変更をGASにプッシュ
clasp push
# GASの変更をローカルにプル
clasp pull
ご不明な点や改善要望がありましたら、下記までご連絡ください。
MIT License