100謎BOTの開発

記入日:2024/5/9 17:24:11

blog thumbnail

はじめに

2024/5/11の会津大学学内LT会の発表用として開発しました。概要は以下の発表用スライドを御覧ください。

スライドリンク

作ったもの

下のQRコード、もしくはリンクからLINEBOTに登録できます。

LINEBOTリンク(パソコンやタブレット版の場合リッチメニューが表示されないためスマホでのアクセスを推奨します)

サイトリンク

スライド補足

今までブログなどを作るためにAPIを叩く経験はあっても自分でAPIを準備するのは初めてでした。そもそもの知識がなくどのようにBOTとサイトを連携させるかが分からずAPIを作る方向で進めていったがBOT側のドメインで作ったりもできたんでしょうか?

この連携の点やスライドでも書いた通りホスティング先の特徴などを何も考えず開発を始めてしまったので、初期に細かく設計することの重要性を知ることができました。改めて振り返ってみるとかなり雰囲気で進めてしまい中身はひどいことになってる(特にAPI部分が辞書型?ではなく配列になっていてむりやりitem[i]のような形で参照していた)ため今後の開発に活かしていきたいです。

発表直前に画像のファイル名が連番だったり何故かimageタグのalt属性に答えが入っていたりといくらでも不正ができる形でしたが、改めて作りを見直し私の見る範囲では不正のできない形に持っていけたと思っています。また、学外の謎解きコミュニティに公開したところ少人数ではありますが楽しんでもらえたので、今後も私の好きなコンテンツを広めるための開発をしていきたいです。

改善案

  • 現在外部のサービスを使用して定期的にリクエストを送ることでサーバーのリブートを防いでいます。調べたところRender側で課金プランのみDBを用意しているため現在の設計で運用するなら別のホスティング先が必要になります。今回は課金が怖くてメジャーなAWSやGCPなどを避けましたが、おそらく無料内で収まりそうなので別のサーバーを検討しています。
  • APIを叩いて戻って来るjsonが分かりにくく、設計の度にこれは何かを確認していたためもう少し分かりやすい形にしたいです。
  • DBのテーブルの要素を見直したいです。例えばanswerテーブルに開示・公開フラグや答えのテキストなどを一つにまとめていたので、外部キーなどを理解してもう少しテーブルを細かくすれば良かったかもしれません。