見出し画像

誕生日お祝いアプリのバージョンアップ〜要件定義〜


ChatGPTと壁打ちしながらつくる要件定義

― 誕生日お祝いアプリのバージョンアップに向けて

歴史ブログの連載を終えて、しばらく「文章を書くモード」でAIエディターの Cursor(カーソル) を使っていました。言葉を磨きながら、資料を引用しながら、AIと一緒に原稿を育てていく作業はとても楽しかったです。

一方で、次に挑戦したいのは コードを書くほうの“AI活用”。しばらく遠ざかっていたアプリ開発を再開します。

その第一歩として、以前 Streamlit で作った 誕生日お祝いアプリ を、もう一度バージョンアップしてみることにしました。

  • 歴史探訪とお祝いアプリの記事



ChatGPTが「相棒」になってしまった理由

今回の要件定義づくりは、Cursor で作ることもできたのですが、気づけば自然と ChatGPT に向かって話しかけていました。

というのも、これまで歴史ブログや技術メモ、アプリ開発の相談など、あらゆる作業をGPTに壁打ちしてきたおかげで、

  • 過去の経緯を分かってくれている

  • こちらの癖や好みを理解してくれている

  • 「それならこういう機能もありますよ」と自然に提案してくれる

そんな存在になってしまったからです。

Gemini や Claude も興味はあります。でも、長く積み上げた会話履歴や文脈を考えると、いまのところ私は ChatGPTにロックインされている心地よさのほうが勝っている、と感じています。


壁打ちしながら作った「要件定義」

今回の誕生日お祝いアプリの要件定義書は、ChatGPT と対話しながら作りました。

会話をしていると、GPT が 「こんな機能もあるとユーザーが喜びそうですね」
と提案してくれることがあります。

ただ、今回は Cursor のエージェントを使ってみることを重視したいので、“最小限のバージョンアップ”の内容とし、「将来拡張のアイデア」として温存しつつ、基本的には私が当初考えていた範囲で要件を整理しました。

完成した要件定義書は、

  • アプリの目的

  • 基本的な動作

  • UI の流れ

  • 保存しない情報

  • トーン&体験設計

といった内容を シンプルかつ実装をイメージしやすい形 でまとめています。


次は「AIエージェント」を使ってアプリ開発へ

ここから先は、この要件定義をもとにして、

  • Cursor の AI エージェント

  • ChatGPT の対話

  • GitHub + Streamlit Cloud の運用

を組み合わせながら、誕生日お祝いアプリのアップデートを進めていく予定です。

これまで歴史ブログで「文章 × AIエディター」を使ってきましたが、次は 「コード × AIエージェント」 の番です。

自分一人で作るよりもずっと早く、そして何より楽しく進むはずだと感じています。


おわりに:AIは“共同作業者”になった

かつては「AIを使ってみる」という感覚でしたが、最近はすっかり

“AIと一緒に作っていく”

という感覚に変わってきました。

特に要件定義のような 考えを言語化しながら整理する作業 は、AIと対話することで何倍もスムーズになります。

誕生日アプリの開発が進んだら、その体験も続編の記事としてまとめたいと思います。


要件定義書

  # 🎂 誕生日お祝いアプリ「生まれてきてくれ、ありがとう」  
  ## 要件定義書(v1.0)

  ## 1. アプリ概要
  ### 1.1 アプリ名
  - アプリ名:**「生まれてきてくれ、ありがとう」**

  ### 1.2 アプリの目的
  ユーザーが自分の誕生日を入力すると、
  - **誕生日から今日まで生きてきた日数** を計算し、
  - その日数を祝う **優しくて、ほのぼのしたお祝いメッセージ** を表示する。

  このアプリを通じて、ユーザーが  
  > 「生きててよかったな」  
  > 「自分の人生も悪くないな」  
  と、少しでも幸せな気持ちになれることを目的とする。

  ## 2. 使用技術 / プラットフォーム
  ### 2.1 フレームワーク・実行環境
  - フロントエンド・UI:**Streamlit**
  - 実行環境:
    - ローカル環境(開発・個人利用)
    - Streamlit Cloud(デプロイ用)
  - Python バージョン:3系

  ### 2.2 設定・秘密情報
  - ローカル:`.env` に OpenAI API キーを保存
  - Streamlit Cloud:Secrets Manager を使用

  ### 2.3 外部サービス
  - メッセージ生成:OpenAI GPT-5

  ## 3. 機能要件
  ### 3.1 誕生日入力
  - 誕生日(YYYY-MM-DD)を入力
  - 入力後、日数計算+メッセージ生成

  ### 3.1.1 誕生日保存仕様
  - **誕生日は保存しない**(将来拡張)

  ### 3.2 日数計算
  - 日本時間(JST)で「今日」を取得して日数計算

  ### 3.3 誕生日当日の特別処理
  - 誕生日一致時:年齢を計算し、特別メッセージ

  ### 3.4 GPT-5 メッセージ生成
  - 基本トーン:優しい、ほのぼの
  - 毎日違うメッセージを生成
  - 似た表現の連続を避ける

  ### 3.5 UI・画面仕様
  - タイトル、誕生日入力欄、ボタン、メッセージ表示エリア

  ## 4. 非機能要件
  ### 4.1 時差・日付管理
  - 必ず日本時間で計算

  ### 4.2 エラー処理
  - OpenAI API の障害時はユーザーに通知

  ### 4.3 セキュリティ
  - API キーをコードに直書きしない

  ## 5. データ保存仕様
  ### 5.1 誕生日の保存
  - 保存しない

  ### 5.2 メッセージ履歴の保存
  - 保存しない

  ## 6. 将来拡張
  - 誕生日保存
  - メッセージトーン選択
  - メッセージ履歴
  - 多言語対応


いいなと思ったら応援しよう!