ついカッとなって、飲み会座席のくじ引きアプリを作った話

この記事は、 JSL (日本システム技研) Advent Calendar 2019 - Qiita 12/2の記事です。

昨年同様、今年もJSLメンバーによるアドベントカレンダーをお届けします。

 
今回の記事は、ついカッとなって作成したアプリについて、ゆるく書いていきます。

目次

 

作ったもの

歓迎会の前日の雑談で「自分はなぜか最近の飲み会で役付きの方の隣が多いですー」という話題になりました。

そこで、ついカッとなって、翌朝までに、飲み会座席のくじ引きアプリを作ることにしました。

 

作成するまでの流れ

まず、欲しい機能としては

  • 自分の社員番号を入力したら、席番号を表示する
  • ランダムで席番号を割り当てる
  • 一回表示した社員番号の場合は、同じ席番号を表示する
  • 存在しない社員番号の場合は、エラーを表示する

があれば良さそうでした。

 
そこで、Python & Python製WebフレームワークのDjangoを使うことにより、各機能を実現できそうでした。

 

一方、最低限動けばいいだろうと考え、

あたりは、がんばらない方針としました。

 
機能と実現方法さえ決まれば後は実装するだけなので、夕食後に実装し始めて22時半くらいには完成しました。

ただ、翌朝までという時間制限を加えることで、ハッカソン的になったことから

と、作るだけで満足してしまいました。。。

 

アプリの画像

トップ

f:id:thinkAmi:20191202184442p:plain:w200

 

座席決定

f:id:thinkAmi:20191202184457p:plain:w200

 

存在しない場合

f:id:thinkAmi:20191202184514p:plain:w200

 

社内への公開から運用へ

満足したとはいえ、お蔵入りするのもなーと迷う気持ちがありました。

社内Slackでは分報を運用しているため、気軽に

最近の飲み会、くじ引きから自由席になった結果、なぜか役付きの人の近くにしか行けず。。。 ランダム性がほしいと思って、昨夜ついカッとなってくじ引きアプリを作ったけど、アプリ作ったら満足してしまった。。。

と書いてみました。

するとありがたいことに、@_sin_tanaka より

一旦ランダムでやってみる感じでいいと思います!せっかく作ったものなので!

と後押しがありました。

そこで、社内の雑談チャンネルにて

f:id:thinkAmi:20191202183005p:plain:w450

と書いたところ、ありがたいことに @chinoppy0727 の手により運用してもらえることになりました。

 

とはいえ、上記の通り、かなり機能を絞ったまま公開してしまったため

  • アプリ仕様や使い方のドキュメントが無い
  • 社員場号だけが使われるので、社員番号が不明だと、誰か分からない
  • Django adminによる管理画面作ってなかった
    • fixtureは用意していた
  • 「実際の物理席に、座席番号を書いて置く必要がある」という制約

など、かなり運用はつらい感じだったと思います。。。

 

運用に乗ってみて

ランダムで座席を決めているはずなのに、役付の人のまわりには変わり映えしないメンバーが集まるという、現実不具合がありました*1

そのため、歓迎会が始まるまではつらい気持ちになりました*2

 
とはいえ、自分が作ったものが使われると嬉しかったこともあり、カッとなって作るというのもたまには良いなーと感じました。

あと、今年度は開発合宿もあるので、このようなものがまた作れるかもしれないのも楽しみです。

 

ソースコード

GitHubに上げました。
https://github.com/thinkAmi/nomikai_kuji

*1:自分はおすそわけできた

*2:歓迎会で飲み始めたら忘れました