camera510PC7の栞

情報系学生のTips、ポエム、活動記録

ハッカソンでDiscordBotを作りました

概要

9月20日から22日までサークル内でオンラインハッカソン・アイデアソンを開催しました。その内容を紹介していきます。
GoogleMeetを使って行いました。
サークル内で参加希望を取ったものの実際に参加したのは3~4人程度でした。(時期が悪かったっぽい...)

イデアソン

まずはアイデアソンを行いました。
それぞれのアイデアをスライド1枚にまとめてもらい、画面共有をして発表を行いました。そしてGoogleフォームにて各案の投票を行いました。
投票の結果以下のような機能を持ったDiscordのbotを参加者みんな(3~4人)で作ることになりました。

  • 画像検索機能
  • 地震情報表示機能
  • タイマー機能
  • YouTubeの新着動画通知機能

ハッカソン

20日の昼頃から21日の夜まで実装を行いました。そして22日の午前中に発表資料を作り、午後から実際に発表を行いました。

画像検索機能

  1. Google画像検索をCustom Search API経由で利用し画像のURLを取得する
  2. 画像を各サーバから取得して保存する
  3. 画像をDiscordの添付ファイルとして投稿する

という流れです。

f:id:camera510PC7:20200928144350j:plain

f:id:camera510PC7:20200928142946j:plain

地震情報表示機能

今回は地震情報の取得にP2P地震情報というものを利用しています。

マグニチュードを指定するとそのマグニチュード地震についての情報を表示しています。

f:id:camera510PC7:20200928144934j:plain

f:id:camera510PC7:20200928144953j:plain

タイマー

時間(分)を指定するとその時間後にお知らせしてくれるというものです。

f:id:camera510PC7:20200928182839j:plain

f:id:camera510PC7:20200928182857j:plain

YouTube新着動画通知

事前に登録したYouTubeチャンネルに新着動画が上がったら教えてくれる機能。
こちらはノンコーディングで実現!!

f:id:camera510PC7:20200928184256j:plain

f:id:camera510PC7:20200928184323j:plain

くじ引き機能(おまけ)

参加していた後輩が急遽作成した機能です。(予定していた機能を作り終えて余裕があったらしい)

くじの最大値を入力すると1からその数値までの乱数を返すというものです。

f:id:camera510PC7:20200930173231j:plain

f:id:camera510PC7:20200930173747j:plain

成果物発表

成果物の内容をスライドにまとめてGoogleMeetで画面共有をしながら発表しました。(全員この開発に携わっていましたが...)

スライドは上記の画像をまとめたものです。

ソースコード

感想

良かった点

今回初めてdiscordのbotを開発したので良い経験になりました。思っていたよりも簡単に実装できました。またPythonで外部のAPIを叩いてJSONを取得してくるというのも今までしたことがなかったので勉強になりました。

反省点

対面で作業をしているわけではないため、チームのメンバーの進捗状況が分かりずらかったです。進捗報告を求めると把握することはできますが、頻繁に行わないと順調に進んでいるのかつまずいているのかが全く分からなかったです。オンラインを使ってチーム開発するときは進捗報告をこまめに行うことが大切だと思いました。

総括

開催頻度は低いかもしれないけれどまたサークル内でハッカソンを開催できればいいなぁ