memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

1.5日かけてGASの課題CSVをユニパの出席CSVに変換するツールをつくったったん

背景は当事者ではないので嘘を書く可能性があるので省略します。

Google Classroomの課題提出の結果であるCSVファイルがダウンロードできるのですが(受講生全員について提出・未提出がわかる)、これでオンライン授業の出席を取ろうという方針が示されました。

これまで出席状況を保護者が見れるように(←恐ろしいでしょう!?)、大学で使用しているポータルサイト(ユニバーサルパスポート;通称ユニパ)で公開してきました。

お察しの通り、Google Classroomからユニパへ登録するためCSV変換ツールが必要になったと取りまとめの先生から一斉メールがありました。

そのメールの中に「ボランティア募集」があったので、昨晩から試しに作ってみました。

コードはネットにころがっていたコードの継ぎ接ぎですので晒すのは避けたいと思います。

どんなことをやったのかだけ書きます(それじゃ意味ないじゃんという方はここで退室どうぞ)。

やることはCSVファイルからCSVファイルへの形式変換ですので個人用ツールならrubyあたりでちゃちゃっと作るレベルです。

一応、全教員が利用することになるでしょうから、シェルスクリプトコマンドラインツールでは使いにくいですね。

こんなときにはGAS(Google App Script)です。

サーバーの設置も管理も必要ありません。必要なのはGoogleアカウントとやる気だけです。

最終形は以下のようになりました。

f:id:ke_takahashi:20200424225205p:plain

ユニパを使っている大学も多いと思いますのでリンクを公開して使ってもらった方が浮かばれるのですが。。。今後どうよう状況になるのかわかりませんので、今はやめておこうと思います。ごめんなさい。ご要望があればソースはお渡しできます。

このツールを作るためにやったことをメモしておきたいと思います。誰得?

(1)Google Classroomで課題・テストつき課題・質問のいずれかを作成して回答してもらいます。その結果をCSVファイルとしてエクスポートします(含まれる情報は、氏名、メアド、成績、提出・未提出、あとなにか)です。

(2)ユニパにアップロードするCSVファイルに含むべき情報は(授業コード、講義日、時限、学籍番号、出席コード)です。出席コードは0が出席、3が欠席です。そんな感じです。

(3)ということで、不足する情報をフォームに入力してもらいます。不足するのは、授業コード、講義日、時限の3つです。授業コードはたくさんあるので選択にすると大変なのでテキストボックスにしました。担当科目は10未満ですので履歴が残れば入れやすいでしょう。講義日はdatepickerを利用しています。html5万歳です。

(4)ファイルアップロード用の部品はネットからコピペして少し改変して使いました。「変換」ボタンを用意しようかと思いましたが面倒なので、ファイルをドロップしたら即変換させました。悪くないと思います。

(5)変換結果は、ファイルとして自動ダウンロードするようにしました。これも初めて作りました。もちろんこれもネットのコードをコピペして使いました。

(6)意外と面倒だったのが、講義日に今日の日付をいれるところ。もっと簡単にできるのかと思いましたがフォーマッターがないんですね。。。標準のJSには。ネットにコードがあったのでそれを使わせてもらいました。ここまでが昨日の3時間くらいの作業でした。

(7)今日は見た目をもう少し今どきにしたかったのでBootstrapを使って部品配置を変え整えました。これも2,3時間くらいかかりましたね。毎日のように作って入ればもう少し早く作れるのでしょうけど。。。すぐに忘れるので。

何の参考にもならないですね。。。すんません。