NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

ANGEL Dojoに参加してきました

本記事は  執筆デビューWeek  9日目の記事です。
✨  8日目  ▶▶ 本記事 ▶▶  10日目  🔰

NRIネットコムの有光です。 7月~10月にかけてAmazon Web Services主催のハッカソン(ANGEL Dojo)に参加してきたのでそこでの経験を報告させていただきます。

ANGEL Dojoとは

ANGEL DojoとはAmazon Web Servicesが主催する実践型トレーニングです。 4~6名のメンバーでチームを組み、週2日の3ヵ月間でサービスの企画から実際にプロトタイプまでを作成します。

詳細はこちらAWS公式

当社からは2年目の5名で参加しました。

開発の流れ

流れとしては、初めの1カ月間は企画フェーズでAmazonがサービスを企画する際に使用するWorkingBackwardsという手法を使ってサービスを考えます。

WorkingBackwardsとは
 1.対象となるお客様はだれか
 2.お客様が抱える課題や改善点が明確か
 3.その課題の解決策は
 4.お客様が受けるメリットは明確か
 5.お客様にとってもの新しい体験とは

これらの質問を考えます。 その後、本来サービスをリリースする段階で発表するプレスリリースとFAQを開発する前に作成します。 あえて最初の段階で作成することにより、ユーザーにどのような価値を提供するのか?ユーザーに対してのメリットは何なのか?を具体的にイメージしながら開発を行うことができます。

残りの2か月で行い、プレスリリースの内容を元に開発しました。 私たちは、開発経験が少ないメンバーもいたため、モブプログラミングを取り込み、リモートという中でしたが画面共有をしながら開発を行いました。 モブプログラミングとはドライバー(キーボードの前に座って画面を操作する)とナビゲーター(問題を解決しながら支援する)に分かれて開発をしていく方法です。 この方法で開発を行うことで、1人で悩む時間が減り、効率的に開発を進めることができました。

開発したサービスについて

私たちは、「FOODLOSS×FAMILY」というサービスを開発しました。 このサービスでは家庭内の食品の在庫をLINEで管理することでフードロスの削減を行うサービスです。

開発に至った経緯

コロナ過における飲食店のフードロスのニュースを見て、身近な家庭内でもフードロスが起きてないか考えてみました。 すると、食材を買ったのは良いが使いきれずに捨ててしまう、冷蔵庫の中に食品があるかないかを把握しきれず、無駄に買いすぎてしまい廃棄してしまうことが良くありました。 それらを踏まえると食品の管理、活用ができていいないということになります。

私たちは、身近な家庭内の食品の管理、活用を手助けしてくれて、フードロスを削減を行う「FOODLOSS×FAMILY」を作成しようと考えました。 しかし、そのようなサービスは既に存在しており、差別化を図るために、幅広いユーザーが日常的に利用しているLINEにフォーカスを当て開発しました。

アーキテクチャ

今回作成したアーキテクチャです。 サーバーレスかつセキュリティも意識して、AWS WAFの設定とAWS Lambdaで使用する秘匿情報はAWS Systems ManagerのParameter Storeを使用した構成にしました。

機能について

今回作成した中のメイン機能として在庫登録と賞味/消費期限通知機能について紹介します。

1.在庫登録

対話形式または画像を送信することで食品を登録できます。 食品名、個数、賞味/消費期限の情報を入力してメッセージを送信することで、Amazon APIGatewayがリクエストを受け取り、AWS Lambdaで登録処理を行います。情報は、Amazon DynamoDB(以下、DynamoDB) に蓄積されます。

チャット形式で登録するのが煩わしい方には画像を送信するだけで簡単に食品を登録できます。
画像認識にはAmazon Rekognition Custom Labelsを利用しました。このサービスでは事前に用意した画像を元にモデルを作成し、そのモデルを使用して画像認識を行うことができます。今回は、数十種類の食品を対象に実装しました。 賞味/消費期限については、食品ごとに一般的な期限をDynamoDBに保存しておくことで画像認識時に自動で設定するようにしています。

2.賞味/消費期限通知機能

賞味/消費期限が近づくと自動で通知してくれます。 ユーザーは通知された食品に対して「消費した!」または「まだ!」を選択します。 「消費した!」を選択することでDynamoDBから削除を行います。 「まだ!」を選択することで食品に応じたレシピをAmazon Simple Storage Service(S3)から表示し期限の近い食品を賞味/消費期限内に消費させることを促します。 その他機能として以下を開発しました。
・在庫一覧表示機能
・ポイント機能
・消費状況の可視化機能

まとめ

3ヵ月間のANGEL Dojoに参加して、顧客目線でサービスを開発する難しさを体験しました。 特に、企画フェーズでは考えつくサービスは既に存在するものが多く、そのサービスよりもユーザーが使ってみたいと思うアイデアを考えることがとても苦労しました。。。 開発では自分も含めAWSにあまり触ったことのないメンバーもおり、1日環境構築で終わったのも良い経験だと感じています。

しかし、最終発表後のフィードバックでは
 「ラインで利用できるのが便利で使いやすそうだと感じました!」
 「LINEの使い方がうまくてメニューなど分かりやい!」
 「画像認識で食品登録できるのはすごい!」
等のお言葉を頂き、ANGEL Dojoに参加して良かったと感じました。

最後になりますが、ANGEL Dojoで得た様々な知見を今後あらゆる業務に活かしていきたいです。