🔥

【AI開発記】非エンジニア × Gemini で“AI幹事くん”を作った28日間の全記録🚀

に公開

https://www.youtube.com/watch?v=f4bW53gbMEE
https://zenn.dev/motoi_asami/articles/79d7d1c7dce174
https://note.com/memologe/n/nff706ba5f0c1

こんにちは、yuyaです!

普段は医療機器メーカーで営業をしていますが、元々はリハビリの現場にいた理学療法士という、ちょっと変わった経歴を持っています🏥👨⚕️💼。

そんな私が情熱を注ぎ込み続けているのが AI ✨。

今回、私の所属するコミュニティのメンバーとGoogle Cloudのハッカソンに参加し、非エンジニアながらAIアプリ開発に挑戦するという、自分でも無謀に思える挑戦をしてきました。

https://zenn.dev/hackathons/google-cloud-japan-ai-hackathon-vol2

おかげさまで171チーム中32チームが残る1次審査を突破し、現在は2次審査に進んでいます🎉。

この記事は、その奮闘の全記録です。

「プログラミングなんてやったことない…」
「アイデアはあるけど、形にする方法がわからない…」
半年ほど前まで私も全く同じ場所にいましたが、Geminiという最高のパートナーのおかげで、その一歩を進むことができるようになりました。

この記事が、そんなあなたの「やってみたい」をそっと後押しできればうれしいです✨。


1. すべての始まりは「面倒くさい」だった

「飲み会の幹事、なんでこんなに大変なんだ…?」

ハッカソンではまず “解決したい課題” を決める必要があります。そこで思い出したのが、毎回発生する 「団体予約の幹事業務」 🍴。

  • グルメサイトを行き来して候補を比較
  • SNSで雰囲気をチェック
  • 地図アプリで立地を再確認
  • 「いい店が見つかった!」と思ったら情報が古い or 団体条件 NG

ようやく店を見つけても「情報が古い」「団体ではNG」などで徒労に終わることも…。

「幹事の負担をAIでラクにできれば役立つのでは?」

そんな素朴な「面倒くさい」が『AI幹事くん』の出発点でした。

この課題をどう AI で解決していったのか――
下記は “面倒くさい” をどう課題に落とし込むか を Gemini とブレストしたときの一部です。

画像

【実際の入力プロンプト】ハッカソン用アイデアを Gemini と擦り合わせた冒頭のやり取り *私は音声入力で Gemini に話しかけ、思考の流れを止めずにアイデアを書き留めてます。

まだラフなブレスト段階ですが、「何に困っているか」「どうすればそれを解決できるか」を一緒に言語化していく雰囲気が伝わると思います。

ここでチームのみんなとアイデアをシェアし、ブラッシュアップしながら最終的に “幹事のお店探しの情報収集・決断の手間を削減する” という方針が固まりました。


2. アプリの実装イメージの共有とターゲット設定の難しさ

アイデアの種は生まれましたが、すぐに「誰の、どの課題を、なぜ解決するのか?」という深い迷路に入り込みました。ターゲットを広げれば多くの人に共感されやすくなりますが、限られた期間内に完成させるためには、機能を絞り込む必要があります。この「ビジネスサイド」と「開発サイド」のジレンマが、私たちの前に立ちはだかりました。

そんな中、エンジニアの方がチームに参加。雑多に書き出したアイデアから作成してくれた 「システム構成図(アーキテクチャ図)」 によって、一気に具体的なイメージが湧きました✨。

アイデア構想段階で仮で作成してくださったシステム構成図。そもそもmermaid記法でこのようなものが図式化できることを知らなかったので一気に実装のイメージが湧いた。

  • システムの流れが可視化されて実装イメージが明確に✨
  • チーム全員が共通の認識を持てた🎯
  • Mermaid記法という便利な図式化方法を知った(画像生成不要で簡単!)

こうして「Why / What / How」を整理できました。

  • Why(なぜやるのか?)
    • 幹事の「情報過多による意思決定コストの増大」と「飲食店の広告と実態のギャップによる失敗」を解消するため。
  • What(何を作るのか?)
    • 「団体利用に特化したレビュー抽出と分析により、信頼性の高い飲食店提案」ができるWebアプリ。
  • How(どうやって作るのか?)
    • Next.js + Genkit + Firebase /Firestoreを用いた最小限の技術構成。

3. 「手を動かしてみる」—— AIと二人三脚で実装へ🚀

アイデアと設計がまとまったら、いよいよ実装フェーズです。チーム内で比較的時間が取れる私がここを担当することになりました🔥。

まず、開発に使った主なツールはこちら:

  • プロジェクト管理 :Gemini(過去の会話を覚えてくれるため、進捗管理にも活用)
  • エディタ(コードを書く環境) :Firebase Studio(無料で使えるAIエディタ)
  • データベース(情報を保管する場所) :Firebase / Firestore
  • デプロイ(公開する場所) :Firebase / App Hosting
  • 機密情報管理(鍵の保管場所) :Google Cloud Secret Manager
  • バージョン管理(もしもの時のセーブ機能) :GitHub

基本的には、Geminiに「次何すればいい?」と聞きながらFirebase StuioというAIエージェントエディタを使ってコーディングを実施しました🔥

非エンジニアにとって「実際に動くものを作る」のはハードルが高く感じられるかもしれませんが、Geminiがいるだけで、次に進むための一歩が明確になりモチベーションも維持できます。

https://studio.firebase.google.com/

画像

プロンプト画面:右側にプロンプトを入力して左側でプレビュー

画像

コードビュー:こちらで直接コードの編集が可能

もしあなたが「デプロイがうまくいかなくて断念してしまった…」とお悩みなら、ぜひページ最下部の【おまけTips】を参考にしてみてください!!


4. 挑戦を支えてくれたもの

  • AI木曜会 コミュニティ:挑戦のきっかけと仲間をくれた場所

https://aimokuyokai.com/

  • Gemini :24h365d、無茶振りに付き合ってくれた最高の相棒

https://gemini.google.com/app?hl=ja


🌟さあ、次はあなたの番です

「今の時代、アイデアを形にするのにエンジニアである必要はない」 もし、この28日間の奮闘記を読んで少しでもそう感じていただけたなら嬉しいです!
そして、もし一歩を踏み出したらぜひコメントや、ハッシュタグ「#AIとやってみた」であなたの挑戦を発信してください!
最後まで読んでいただき、ありがとうございました!


🙏 最後にお願いです!

この「AI幹事くん」の開発の裏側を、もっと技術的な詳細を含めてZennの記事にまとめています。もし、私たちの挑戦を「面白い!」「応援したい!」と思っていただけたら、ぜひ『イイね』で応援してください。チーム一同本当に励みになります!🙇♂️
https://zenn.dev/motoi_asami/articles/79d7d1c7dce174


【おまけ】非エンジニアのためのデプロイ攻略法🔥

〜「デプロイできない😭」を乗り越えるための3つのポイント〜

ここは正直かなり難易度が高い部分!なので個人的につまづいた3つの視点をまとめます。 専門用語はできるだけ使わず 、次回また同じ状況に出会ったとき「まずココを疑おう」と思えるヒントだけを残しました。

①バージョンなど最新情報はまず公式ドキュメントをみる!

  • 何が起きた?
    エラー発生 → AI(Gemini)が「バージョンを変えてみようか?」と提案 → フレームワーク(Next.js)だけ古い版に切り替え → かえってエラーが連鎖。
  • なぜハマる?
    最新版は “セットで最適化” されていることが多く、片方だけ古くすると相性が崩れやすい。原因が分からないまま “とりあえずダウングレード” すると泥沼になりがち。
  • 次に活かす視点
    1. まず 公式ドキュメントやリリースノート を確認して「今の推奨セット」を把握する(例:Next.js と Genkit のバージョン対応表)。
    2. バージョンを変える前に “元に戻れるスナップショット”(Gitのブランチなど) を必ず残す。
    3. エラーが出たら “一度深呼吸”。 安易なダウングレードは最後の手段

この3ステップだけ意識するだけで、開発時間が何時間も溶ける事故はグッと減ります。


② “鍵の置き場所と持ち主” —— ローカル OK・本番 NG の壁

  • 何が起きた?
    手元のパソコンでは動くのに、公開用サーバーではアプリが沈黙。原因は「大事な鍵(APIキー)をどこに置き、誰に渡すか」を理解していなかったことでした。
  • シンプルに言うと
    1. 鍵を家の玄関に貼りつけたまま外に公開 すると危険(=.env ファイルをそのままアップするのはNG)
    2. クラウドの金庫(Secret maneger) に鍵を預けると安全
    3. その金庫を 開けられる人(権限設定=IAM) をハッキリ決める必要がある
  • チーム開発でハマりやすい落とし穴
    • データベース担当とアプリ担当が 別々のクラウドプロジェクト で作業すると、鍵と持ち主がバラバラになりやすい。
    • “お互いの家の鍵を全部渡す” と費用も権限も管理がややこしいので、 なるべく1つのプロジェクトにまとめる と平和。
  • 次に活かす視点
    1. 「鍵はどこにある?」「誰が開ける?」を 整理 してみる。
    2. 分からなくなったら 画面のスクショを Gemini に渡しながら 「権限」「鍵の保存場所」をどうすればいいか聞けばOK。

③ エラーが起こったら“まずログ” —— 黒い画面にヒントが全部ある

  • 困った場面
    アプリがデータベースに保存できず原因不明。結局、 サーバーのログをファイルに出力 して初めてエラー文字列が見つかりました。そこから検索して同じ事例を発見し、ライブラリの呼び出し方を直すだけで解決
  • 次に活かす視点
    1. 「動かない」と感じたら まずログを強制的に出力 する仕組みを付ける。
    2. 出てきたエラー文を そのままコピペ検索 →解決策が見つかることが多い。
    3. “エラー文スクショ+状況” を AI に投げると原因切り分けを一緒にやってくれる。

🔖 ポイント3行まとめ

  1. 最新情報は公式ドキュメントで確認 —— 焦ってバージョンを変更しない。
  2. 鍵はクラウドの金庫に —— 置き場所と持ち主(権限)をセットで管理。
  3. 困ったらログを出す —— 黒い画面は敵ではなく最強のヒント集。

Discussion