2021.01.27

MuleSoft Hackathon 2020に参加してみた

みなさん、こんにちは!

今回、テラスカイ西日本チームで、MuleSoft Hackathon 2020に参加しました。
世界各国から参加した28チームを相手に、6位に入賞しました!

このイベントの内容と、イベントで作ったものについて、ご紹介します。

Mulesoft Hackathon 2020について

MuleSoft HACKATHON 2020はMuleSoft社が主催する第1回目のハッカソンです。
2020年10月末から11月末にかけて開催されました。

以下の3つのカテゴリーから1つを選択して、MuleSoftを用いたプロジェクトを構築し、ブログにてプレゼンを実施しました。
・COVID-19 and emerging from the pandemic(コロナとパンデミックへの警鐘)
・Everyday is an API day(毎日がAPI)
・IoT and MuleSoft(IoTとMuleSoft)

MuleSoft社からイベントの参加方法についてMeetupを設けてくれたり、質問などをその場で回答してくれるOffice Hoursを開催してくれたりと、バーチャルイベントでしたがとても雰囲気が良かったです。
イベントの詳細はこちら

作ったものについて

それでは、本イベントで作ったものについて紹介いたします。

3つのカテゴリーのうち、私たちはEveryday is an API dayを選択しました。「毎日がAPIの日」というテーマですので、APIを使用して何を作るかチームで議論しました。そこで、あるメンバーの子供が恐竜に夢中であることから、子供が書いた恐竜の絵を気軽に共有できるアプリを作りたいと考えました。

このアプリケーションには、2つのメイン機能があります。

(1)子供が書いた絵をデータベース内の恐竜と照合し、何の恐竜であるかを識別し、識別率を元に恐竜の能力値を設定
恐竜絵の識別ではEinstein Vision APIを使用しました。恐竜の能力値は力、速さなどを設定していますが、これらの値についてはEinstein Vision APIの識別率やランダムな値を設定しています。値としては意味を持ちませんが、重要な点ではないので簡易的な実装としております。

(2)他の人の絵を見て、同じような興味を持つ友達を見つける
画像アップロード後、自分と同じ恐竜を書いた絵が友だちリストとして表示され、位置情報をONにしていれば地図に表示されます。画面表示をLightning Web Componentを使用して作成しました。ソースコードをGithubに公開していますので、興味ある方はこちらでご覧いただけます。

APIについて

APIの内容は下記の通りです。

・Einstein Visionにて予測判定
 Einstein Vision APIについてはこちら

・アップロードされた画像をS3に保存
S3に保存する画像のファイル名に詳細情報を_(アンダーバー)で全部結合する仕組みにしています。今回はS3以外のデータベースを使っていません。

・S3にアップロードした画像の参照URLと同種の恐竜の画像のURLも含めて取得
 画面表示のために、S3のPresigned URLを使用してます。

・JSONに変換して返す
 Transform MessageコンポーネントでDataweaveを使って識別結果、画像のURL、恐竜の能力値などをまとめています。

実装は下記の画像通り、シンプルにしております。実装詳細についてはこちらでご覧いただけます。

アプリケーションの動作を下記動画で確認できます。

MulesoftHackathon2020: Share your dinosaur

まとめ

結果はブログを提出した28チーム中、6位に入賞できて良かったと思います。自分が作成しているアプリケーションに関するところもたくさん勉強できまして、参加した別の方々の成果物もすごく勉強になりました。MuleSoftを勉強している方々にも役に立つかと思いますので、こちらを見てみてください。

最後に、1ヶ月を通して一緒に頑張ってくれたチームメンバーのみなさん本当にありがとうございました!!
18 件

関連する記事