CookPadの開発コンテストに参加した話

「第5回 開発コンテスト24」開催のお知らせ | クックパッド株式会社

毎年開催されているクックパッド社のエンジニア向け開発コンテスト。去年は入賞したので、今年は優勝を目指して参加しました。 今回のテーマは「誰かと話すキッカケを作るサービス」。かなり漠然としているので、正直なんでもアリかなという感じでした。

イデア出し

ということで、今年は「迷惑住人と話し合いをするきっかけを作るサービス」を作ることになりました。

迷惑住人との話し合いのお手伝いをするサービス

5時間くらいで出来ました。

Wakai. - トップページ

f:id:dsaki:20141019010102p:plain

「和解準備開始」ボタンを押すと、専用のチャットルームが生成されます。このチャットルームで迷惑住民と話し合いましょうということです。

もちろん、相手にこのチャットルームの存在を知らせなければなりません。Wakai.ではそのサポートもしてくれます。書類生成ページで必要項目を入力すると、警告文が記載せれた書類(.xls)をダウンロードすることができます。これを印刷して相手のポストに投函すればOK、簡単に相手にプレッシャーを与えることができますね。面と向かって相手に文句を言えないシャイなボーイでもこれくらいならできるはず。

あとは相手がこの喧嘩話し合いに乗ってくれるのを待つだけです。

技術的な話

Wakai.はPlayFramework+Scalaで実装し、Herokuサーバ上で動かしています。

チャットルーム機能は自分で実装したわけではなく、MilkCocoaというバックエンドサービスを使っています。

Milkcocoa - JavaScript一行に詰め込まれたバックエンド

既存のプロジェクトにjavascriptのコードを数行書くだけで、WebSocketを使ったリアルタイム通信の機能を簡単に実装することができる素晴らしいサービスです。

Excel文書出力機能は"Apache POI"という、JavaからExcelファイルを操作するライブラリを使用しました。

Apache POI - the Java API for Microsoft Documents

ローカルにテンプレートとなる.xlsファイルを用意しておき、必要な文字列だけ置換するという処理を行っています。

結果

第5回 開発コンテスト24 受賞作品発表 | クックパッド株式会社

入賞すらできませんでした。来年は本気出します。