運用中の画像

Notionに転記された課題の一覧
念のため、課題のタイトルやid、urlにはぼかしを入れている
GitHub
https://github.com/ayu0616/panda_to_ticktick
概要
-
大学の学習支援システムから課題を取得し、それをタスク管理ツールに登録するという作業を自動化した
-
使用言語:Python
-
制作時期:大学3年生の前期
-
Google Cloud RunにFlaskアプリとしてデプロイし、定期的にリクエストを送ることにより実行
- 2023/06/26:Cloud Functionsに移行、Cloud Schedulerで定期実行
-
図に起こすと次のようになる
flowchart
p(プログラム)
a("学習支援システム(PandA)")
b("タスク管理ツール(Notion)")
subgraph g ["Google Cloud"]
s("Cloud Scheduler")-->|1. 定期実行|p
end
p-->|2. リクエスト|a-->|3. 課題の情報|p
p-->|4. 課題の情報を送信|b
背景
- たくさんの授業を履修していると課題の管理が難しく自動化したかった
- 今学期は19コマ38単位履修しているため特にそう感じる
- 学習支援システムでは、課題の管理が授業ごとで、すべての課題を一覧できないという問題があった
- 学習支援システムは次のような構造になっている
- ホーム
- 経路:ホーム→授業Aのホーム→授業Aの課題→授業Aのテスト・クイズ→授業Bのホーム→⋯
- もちろん現実には課題がないとわかっている授業もあるのでここまで酷くないが、それでも大変
メリット
- 課題を消化する予定を組みやすくなった
- 未提出の課題がひと目でわかるため、課題の存在を忘れることがなくなった
苦労した点
- 大学の学習支援システムのAPIの仕様が分かりにくくて苦労した
- そもそも情報が少ない
- 課題にも「課題」と「テスト・クイズ」の2種類が存在していた
- タイムスタンプが、一方は日本標準時で、もう一方が世界標準時だったりした
- テストを重ねてズレを修正した
- Cloud Functionにデプロイするときに苦戦した
- 当初はGitHubのリポジトリと同期しようとしていろいろ試してみたが、どれもうまく行かなかった
- 結局、プログラムをコピペするという原始的な方法によって解決した