本記事は、めんどい太郎の Advent Calendar 2023 8日目の記事です。
はじめに
この記事は初心者が書いています。
今回は、私のクラスの文化祭の模擬店で使用するシステムを作成しましたので、振り返っていきたいと思います。
概要
作成のために用意された時間が異常に短く、作りがひどいので画像などはなしで行きます。すみません。
(なんとたった2日間(学校にいる間は飾り付けなどをしたので実質1日もないです。))
今回作成したシステムは、大まかに以下の機能があります。
- 得点管理(追加・参照・ソート)
- ユーザー管理(アカウント作成・参照)
それぞれを軽く説明します。
得点管理
私達の模擬店では、物を箱に投げ入れ箱と入れたものに応じて得点がつけられるというシンプルな仕組みでした。
それだけなら簡単でしたが、その日の一番得点が高かった人に豪華景品を贈呈するという案が出ました。
渡すのが難しいということで却下となりかけましたが、私がシステムを作れば解決!ということで採用ということです。
さて、一番得点が高かった人に景品を贈呈ということですのでいわゆるランキング形式となるわけです。
そのためデータベースなどに得点を登録してソートを行い、得点とユーザーを参照できるという仕組みが必要です。
これをこのシステムの1つ目の機能として組み込みました。
また、このランキングをプロジェクターを使用して大きなスクリーンに常に表示することで誰でも簡単にランキングを見ることが可能です。
昨日の記事1はそのスクリーンに表示するためにWebSocketを使ってリアルタイム更新を行っていたときに行ったことです。
そして得点の登録はできる限り簡単で素早いことが望まれます。
そのためにお客さんの識別をQRコードで行いました。
スタッフもQRコードを読み込んで得点を入力するだけなので楽です。
ユーザー管理
しかし、得点を登録するだけではいけません。
誰が何点獲得したかという情報が必要です。
そこで、2つ目の機能としてユーザー管理機能を実装しました。
お客さんは楽にアカウントの登録を行いたいと考えられるので、数タップでアカウントを登録できるSNSログインを実装しました。
具体的にはGoogleでログインを実装しました。
1日目の記事2はこのことです。
Googleでログインの実装はインターネット上にある情報は古く、FirebaseはPHPに公式ライブラリがないなどの理由で苦労しました。
当日
デバッグがきちんとできておらず、一日目からバグありまくりでした。
ちゃんと機能しない→呼ばれる→即修正
これの繰り返しでした。
二日目、なんと仕様変更。
しかも結構大きな仕様変更です。
約30分しか残されていない中、なんとか変更できました。
そしてこの仕様変更によってまたバグが発生。
しかし、二日目は一日目よりも楽でした。
反省点
箇条書すると以下のような反省点があります。
- 操作方法の周知不足
- UIデザインの不備
- 時間不足
- 寝不足状態でのプログラミング
- ちゃんとした仕様決め
操作方法の周知不足
完成したのがほぼ当日(何なら開始直前)だったので、操作方法をわかっていないスタッフが多くいました。
操作方法のマニュアルを作成するなどして、操作方法を周知すべきでした。
UIデザインの不備
ユーザーは大きなテキストであっても、ちゃんと読みません。
例えば「すでに登録している方はこちら」という文章を登録ページに設けた結果、ユーザー登録と勘違いしてログインをしてエラーが出るといった呼び出しが度々起こりました。
登録ボタンが一番目立つようにするのが良さそうです。
時間不足
模擬店係にそんな短い期間じゃ作れないよ!と念押すべきでした。
なんとかなりはしましたが、もしなにか問題が起きていたかと考えると恐ろしいです。
寝不足状態でのプログラミング
寝不足状態でプログラミングしてはいけません。
めっちゃミスります。
修正時、なんでこんなミスしてるんだ?というミスが非常に多かったです。
ちゃんとした仕様決め
仕様はちゃんと決めましょう。
仕様が曖昧なせいでシステム設計に無駄な時間がかかりました。
また、途中で変更が入って苦労しました。
よかったポイント
箇条書きします。
- クラスメイトが優しい
- 最終的になんとかなった
- 一応なんとか修正できた
クラスメイトが優しい
クラスメイトが優しかったです。
エラーが起きたら即報告、修正後即対応...
優しい...
クソシステムなんて一言も言われませんでした。
逆にすごいと褒める言葉ばかり....
優しかったです。
お陰で僕もやる気が出ました。
最終的になんとかなった
最終的になんとかなりました。
よかったです。
一応なんとか修正できた
その場で即修正ができました。
デバッグ不足なのは時間がなかったのでもう仕方ありません。
直せない...なんて事態にならなくてよかったです。
最後に
システム開発や運用のいい経験となりました。
もし次があれば、もっとゆとりを持ったスケジュールで今回の改善点を踏まえて効率よく完成度の高いシステムを作成し、運用していきたいと思います。
文化祭って...かなり大事なイベントですね。
本当にいい経験になりました。
ちなみに、プログラムは完全非公開です。ページも現在はアクセスできないようになっています。ご了承ください。