訪問ありがとうございます!!!
↓↓↓こちら原稿です↓↓↓
卵かけご飯作成サポートアプリえっぐきんぐだむの発表を始めます。森本陽太ですよろしくお願いします。
今回で3回目のえっぐきんぐだむとなりますが改めてこの企画の目的について説明します。
今回の企画の目的は、卵かけご飯のレシピにおける“適量”という曖昧さを解消し、誰もが自分にとって最適な味付けで楽しめる方法を提供することです。
みなさんも卵かけご飯のレシピを調べたことがあるかもしれません。その際、醤油の量が『適量』と記載されていることに疑問を持った方もいるのではないでしょうか。この『適量』という表現は非常に主観的で、人によって好みが大きく異なります。さらに、小さじ1杯など具体的に示されたレシピでも、使用するご飯の量が限定されていることが多く、自分が食べたい分量で最適な味を実現するのは簡単ではありません。
そこで、私が開発したえっぐきんぐだむでは、機械学習を活用することで、ユーザーが入力したご飯と卵の量に基づき、最適な醤油の量を計算して提案します。また、レシピを投稿する機能もあるのでお気に入りの卵かけご飯を共有できます。
これにより、好みの味を簡単に再現できるだけでなく、新しい組み合わせの発見やQOLの向上を目指しています。
もともとはiOSアプリとして開発をスタートしましたが、先々週ハッカソンでWebアプリ開発を経験したことで、より多くの人が利用しやすいWebアプリケーションへの移行を決意しました。 そのハッカソンでは短期間でFlaskを使用しAPIベースのバックエンドを構築しました。この経験を通じて得た知見や反省を活かし、えっぐきんぐだむもWebアプリとして作り直しています。因みにそのハッカソンでは優秀賞を受賞しました。
えっぐきんぐだむではこのような技術スタックを採用しています。
APIベースのモダンな技術を積極的に採用することで、スムーズな開発を目指しました。その結果10日間でバックエンドや主要機能を完成させることができました。
また、企画要件や画面遷移フローはFigjamで設計しました。
こちらサインイン、サインアップで認証機能を実装しています。トークン認証を採用しています。
こちらはホーム画面です。
ユーザーごとのデータで学習したモデルと、全ユーザーのデータで学習したモデルをプロットしたものを表示しています。縦軸が醤油の量、横軸がご飯の量です。
ポリノミアル回帰を採用しています。
下にはユーザーが投稿したレシピと、自分が投稿したレシピについたコメントの通知を表示しています。
プロフィールではユーザーネーム、プロフィール画像の更新に加え、データを分析するために性別と年齢を設定できるようになっています。
戻りまして、上からたまこモデルにデータを追加、こちらはみなさんが持っている卵かけご飯のデータをモデルに追加することができ、すぐに自分に最適なモデルを作ることができます。6件以上のめんつゆのデータを入れることで、めんつゆモデルを作成することも可能です。
一つ下の全ユーザーモデルで材料入力、こちらは全ユーザーのデータで学習されたモデルで卵かけご飯を作ることができます。
ご飯の量と卵のサイズと個数を入力することで最適な醤油量が表示されます。
こちらは評価画面です。さきほどの材料で作った卵かけご飯を、味が薄ければ1、濃ければ9、最適なら5、と評価することでデータが蓄積されモデルが最適化されていきます。
自分の味覚を相対的に知ることもできますね。
下のたまこモデルで材料入力、こちらはユーザーごとのデータで学習されたモデルで卵かけご飯を作ることができます。
下の卵かけご飯のレシピを投稿、こちらはタイトル、詳細、画像を入力してレシピを投稿することができます。
デモは以上になります。
レスポンシブ対応なのでスマホでも使うことができます。
展示サイトにデプロイしたもののURLを貼っているのでぜひ使ってみてください。
ご清聴ありがとうございました。
____________________________________
↓↓↓こちらえっぐきんぐだむ↓↓↓
Renderでデプロイしているので起動に時間がかかると思います🙏
____________________________________
↓↓↓こちらハッカソンでの制作物↓↓↓
こっちもRenderなので…
↓↓↓紹介サイト↓↓↓

____________________________________
技術的な話
今回の制作はプロダクト志向よりテック志向だと思います。
技術選定について
データベースについて、ハッカソンではSQLiteを使ってしまい、データがすぐ消失するという反省があったこと、先輩や企業様からFirebaseに代わってsupabseがトレンドだと聞いたこともあり、supabaseを採用しました。
ハッカソンではFlaskでしたが、API仕様書をフロント担当に作ってくれと言われたものの左右もわからず迷惑をかけたので、fastAPIの自動でAPI仕様書を作成してくれるという点に魅力を感じ、fastAPIを採用しました。
ですがReactでいざ繋ぎ込みをしてみるとDefaultAPI?の使い方が分からずハゲるかと思ったので結局、axiosを使ってます。
今回初めてJavascriptを触って簡単ではありますが、フロントを開発しました。
初めてのセカンド言語というのもあると思いますが、ハゲるかと思いました。
今のところはバックエンドの方が触ってて楽しいです。
スペシャリスト、フルスタック、マネジメント。就活においてどこを目指すか決めないといけませんがまだ、強いこだわりは見出せませんね。
今回制作期間が10日間、次の発表では企画変更ということもあり、ハッカソンのノリで制作を進めましたが、ユーザービリティを高めるのはとても大変だと感じました。(ユーザービリティというには烏滸がましいかも)やっぱりバックかなぁ。
____________________________________
Q&A
Q:ポリノミアル回帰の選定理由
A:前回までは単純回帰でしたが、多分曲線的なデータなんじゃないかと天啓があったとか
Q:モデルのプロット画像の更新タイミング
A:各ユーザーモデルは、ユーザーがデータを追加したとき、両モデル卵かけご飯を作成したときに更新されます。
全ユーザーモデルは、両モデル卵かけご飯を作成したときに更新されます。
Q:材料入力データのバリデーション
A:個性を尊重しています。(時間がなかったので実装できませんでした)
一応、各ユーザーモデルにデータを追加するときは、全ユーザーモデルのデータに挿入されないようにはしています。ですが、両モデル卵かけご飯を作成したときは両方のテーブルにデータが入ってしまいます。
めんつゆverも作れると言いましたが、全ユーザーモデルに影響を及ぼしてしまうので、調味料によってテーブルを分ける、そんなわけないだろっていう値を全ユーザーモデルに挿入しないようにする、などのバリデーションが理想です。
Q:こだわり
A:サブタイトルです。
____________________________________
ちなみにハッカソン最優秀賞の賞品はアマギフ4万円
優秀賞の賞品はオリジナルTシャツです…


コメント