ゴルフ コンペ用スコア集計Webアプリケーション

      2014/03/27

イントロダクション

前回の会社コンペの出来事です。自分は幹事役だったのだけどスコアの集計が円滑に行えず、参加者からさんざんな評価になってしまいました。

スコア集計には Google スプレッドシートでスコアを入力すれば各種賞(波や前回差など)が自動で求められるように準備しました。Google スプレッドシートをオフライン編集可にしたにもかかわらずタブレットでデータを開くことができず、画面の小さいスマートフォンで入力と集計を行ったがために時間を要してしまいました。

会社のコンペは毎回2位が次回の幹事をするのですが、なぜか優勝した自分が今回も幹事をやるはめに。。。

反省点

集計表へのスコア入力が問題でした(スマートフォンでの入力だったし)。この反省を受けてスコアの集計を簡単するための結論が「プレーヤー自身にスコアを入力してもらう」ことでした。調べてみてもプライベート コンペ用を円滑にするアプリケーションは存在しないようだったので、ベスト ソリューションを作ったろうじゃないかと Web アプリ作成をやってみました。

主な要件

  • PHP で作成、細かいところは JavaScript で補う
  • レコード数は少ないのでデータは CSV で扱う
  • スマートフォンでデータを入力させるのでレスポンシブ デザインにする(jQuery Mobile)
  • 全員が他のスコアを見ることができないように、組別にパスワード制限を設ける(たいしたプライバシーじゃないのでパスワードは平文でかまわない)
  • 自分専用なので時間をかけずに作成する(最低限のところはハードコード、テーブルのソートは DataTables)

画面イメージ

編集ページを開き、組を選択してパスワードを入力します。組のメンバが表示されるので、それぞれ OUT と IN のスコアを入力し、[登録] ボタンをクリックします。

 パーティー選択モード   スコア編集モード

幹事はリーダーボード用のページを開き、スコアと順位を確認できます。入力データにハンディキャップ、前回のスコアを入力しておけば、前回差や OUT と IN の差も分かります。テーブルは列ごとにソートできるので伸び賞や波賞も簡単に分かります。この集計は同率スコアの場合ローハンディ優先です。

リーダーボード

今後の予定

来週末コンペに向けた練習ラウンドをするので参加者と共に動作検証します。万が一反響があれば洗練させて公開を目指します。

まとめ

1 日で作成したのでかなり荒削りですが、社内コンペには使えるレベルで完成したと思います。1回あたり15分程度の作業を改善するために10時間以上費やすということが無駄なことなのか、、、趣味の範囲ならば間違いなく無駄ではないでしょう。勉強にもなったし。

ITエンジニアやコンサルタントは問題を問題だと認識して改善させたいと思うことが大事!

 - Web, 日記, プログラミング