とあるお兄さんの雑記

基本的に技術系の内容を書きますが、何を書くかは私の気分です。

ONE JAPAN HACKATHONに参加した話

f:id:kurasher:20200905215359j:plain
めぇ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



おやおや?
どうやらわたしに不在票が届いたようです。

というわけで、8月の22日、29日、30日の合計3日間行われたONE JAPAN HACKATHON 2020に参加してきました。今回のハッカソンに参加したチームの中にはバリバリのエンジニアの方や、学生の方もいました。加えて、リモート開催ということもあり、九州から参加している方もいたようです。

概要はこちらから ONE JAPAN HACKATHON 2020

チーム名

我々のチームはHTCというチーム名で参加しました。なぜ、このチーム名になったのかは知りませんが(そもそも由来を知らない)、ひとまず全員20代のピッチピチの若手5人のチームです。もっと言ってしまえば、5人中4人が今年4月に入社したばっかりの新入社員です。

ひとまずチームとしては、「いろいろな技術使って何か面白いモノつくろうぜ!」という雰囲気だったため、非常に和気あいあいとできたように思えます。

今回のハッカソンのテーマ

今回のハッカソンのテーマは

"今"の生活を楽しくするプロダクト

でした。また、なんともアバウトなテーマですが、ハッカソンらしいといえば、ハッカソンらしさがあります。

通常の仕事では「こんなの作ってください!」と言われ、それに沿うように作るため、自由さなんてものはほとんどないのですが、ハッカソンゆえのアバウトさが面白いプロダクトを作るきっかけにもなっています。
もし、興味がある方はハッカソンに参加してみてはいかがでしょう?

さて、上記テーマをうけて、まずはアイデア出しです。
あれはどう?、これが欲しい、こんなのあったら面白そう、とひとまずいろんなアイデアを出していきます。

いろいろ案は出るのですが、なかなか決まらず.......。時間もないので案出しはやめて案を絞ることにしました。

様々な案が出た中で一番面白そうチーム全員が思ったのがのが不在票でした。

コロナ禍では外出自粛のため、特にネットで複数商品をポチってしまいますよね。外出自粛のため大体は家にいる方もいらっしゃるかもしれませんが、たまたま家にいないときに限って届く不在票。しかも、不在票が何通も届いてしまい、商品が届いてうれしいはずなのに、連絡を取らなければならないためネガティブになってしまいます。

そんなネガティブな印象を持つ不在票を面白くさせようということでプロダクトの開発を始めました。

ゲーム要素を持たせたかったので、キャラクターを作成することに。
不在票が届くということからイメージを膨らまし、キャラクターはヤギとしました。そして、不在票がたまっていなければヤギは時間が経つごとにレベルアップするのですが、不在票がたまると成長速度が遅くなります。

たまっている不在票数によって、ヤギにダメージが入ってしまいます。加えて友達とのランキングも入れることで、だれのヤギが一番成長しているかが分かり、競争心が芽生え(?)、不在票をため込まないようになるはずです。

プロダクトは名付けてやぎめーるです!!

プロダクトのシステム構成と使用した技術

ここからは、われわれHTCが作ったプロダクトについて説明します。と、その前に、今回のプロダクト作成で使用した技術を簡単に説明します。ハッカソンでは企業の技術提供・技術支援もあり普段使わない技術も使うことが可能です。

加えて、使い方が分からなければ担当者が答えていただけるという手厚さ!!
使わない手はないですね。

我々が使用した技術は以下の5つです。()は企業名になります(敬称略)。

  • IBM Cloud (IBM):企業向けのモバイル・アプリケーションおよび、Webアプリケーションを作成可能です。
    詳細はこちら→IBM Cloud
  • obniz (CambrianRobotics):ON/OFFやUART通信などのIO制御をクラウドAPI経由で行える仕組みです。クラウド中心のIoT開発が可能です。
    詳細はこちら→obniz
  • kintone (サイボウズ):仕事に合わせた業務システムデータベを作成できるクラウドサービスです。今回はデータべース作成用として使いました。
    詳細はこちら→kintone
    ハッカソン用のkintoneの使い方→ハッカソンでつかえるkintoneカスタマイズ手順
  • Messaging API (LINE):このAPIを利用することで、LINE上で応答メッセージの送受信を行うことが可能です。
    詳細はこちら→Messaging API
  • LIFF (LINE):LINE Front-end Frameworkの略称で、ウェブアプリのプラットフォームです。簡単に言うと、LINE上で動くアプリケーションですね。
    詳細はこちら→LINE Front-end Framework
  • Rapid API (楽天):10,000を超えるAPIを提供しています。今回は天気取得APIを使わせていただきました。
    詳細はこちら→Rapid API

以上の技術とプラスαでFlaskやUnityあたりを使いました。システム構成の概要は以下の図になります。

f:id:kurasher:20200905191210j:plain

まず配達員が不在票をポストに投函します。

不在票がポストに投函されると、ポスト内にあるobnizのセンサが不在票を検知します。

不在票検知後、IBM Cloudに上がっているFlaskアプリに通知が飛びます。その後、kintoneのデータベースに登録されている不在票数を増やしていきます。

kintoneに不在票数を増やすと同時にFlaskからMessaging APIを利用してLINEに通知を飛ばします。

LINEの通知を受け取ると、LINEの画面からLIFFを使って、Unityで作成したアプリを起動します。

アプリを起動すると同時に、LINEからFlaskにアクセスし、Flaskはkintoneに登録されているヤギのHP、ヤギのレベル、不在票数、天気などのデータを取得します。

また、ヤギのレベルによってランキングTop 5まで表示できるようになっています。

私が作成した場所は主にFlask部分における処理で、kintoneに処理を飛ばしたり、ランキング表示を行う処理を書いたりしていました。

開発自体は楽しいのですが、29、30日の2日はほぼ寝ずにやっていました。途中暇を見つけて寝たりしましたが、やっぱり睡眠は大事ですね(ちなみに、Unity側を担当していたメンバーは一睡もせず、加えて最終日のデモ発表もやっていました。それだけの体力があるのがすごいです.......)。

結果

さぁ、ドキドキの結果発表です。正直、何か賞がもらえればいいかな?ぐらいに考えていました(正直疲れていたというのもあって、あまり深く考えられていませんでした(苦笑))。

さて、さて、結果は......?

技術提供企業賞では、なんと

obniz

様から賞をいただくことが出来ました!!(写真撮ってませんでした。すいません....。)

ちなみに、最優秀賞はというと.......、

f:id:kurasher:20200905211824j:plain

あれ!?HTCの文字がある!?

というわけで、ちくわてっくというチームと一緒に

最優秀賞

をいただくことが出来ました!!ちくわてっくさん、おめでとうございます!

(ちなみに、このちくわてっくというチーム、ほとんどの技術提供企業賞をもらっていました。いや~、強かったです......。)

おわりに

久々のハッカソンで、しかも、バックグラウンドもそれぞれ違うメンバーでしたが、非常に楽しかったです。
テーマも"今"の生活を楽しくするプロダクトという自由度の高さから非常に柔軟な発想が出来たのではないかと思います。

特に普段の仕事では扱うことのない技術に触れることが出来るのは新鮮で、この技術を他にも生かせないか、個人開発で何か応用できないかと考えるのはなかなか面白いところがあります。

皆さんも、会社の同僚を誘って一度ハッカソンというものに参加してみてはいかがでしょうか?
ちょっと変わった非日常を、自分たちの手で作成してみるのも面白いのではないでしょうか?(笑)