見出し画像

ペットフードの相談ができるAIを作りたい 要件定義編2

こんにちは、ほーゆーです。
前回は、要件定義をChatGPTに投げてフィードバックをしてもらいました。
要件定義を修正していきます。

筆者は業務未経験でポートフォリオ作成のために今回のサービスを作成しています。技術的に拙い点はご了承ください。

以下は、改めて整理した要件定義です。目的、必要要件、不必要要件、技術スタックを各項目で明確に記載しました。プロジェクトのフェーズごとに分けて実装していくと、スムーズに開発を進められると思います。

要件定義書

1. サービスの目的

犬の飼い主が、犬に適した食事を見つけるための情報を得られるWebサービスを提供します。犬種や食事の好みに合わせたペットフードを提案し、ユーザーが犬に合った食事を選びやすくすることを目指します。サービスの役割としては、獣医に相談するほどでもない食事に関する軽い質問や、一般的なフードに関する情報提供も行います。

2. 必要要件

2-1 ユーザー管理機能

ユーザーアカウント登録: メールアドレスまたはSNSアカウントで登録可能。

ペットアカウント追加機能: ユーザーは複数のペットアカウントを追加でき、以下の情報を保存できる。

  犬種、年齢、体重、性別
  健康状態、アレルギー、食事の好み
  日常的な運動量や食事習慣などの基本情報

2-2 フード提案機能

質問ベースのフード提案: ユーザーが入力した犬の情報に基づき、日本国内で流通している総合栄養食から、最適なフードをいくつか提案。

検索フィルター: ユーザーが条件を絞ってフードを検索できる機能を提供。

フィルター項目:成分、価格、嗜好性、犬種、年齢など

2-3 チャット相談機能

カジュアルなチャット形式: チャットボット形式で、自然言語処理(NLP)を用いたフード提案や食事に関する簡単な質問に対応。

質問方法: ユーザーが自由入力で質問できる機能と、選択肢から質問内容を選べる機能の両方を提供。

FAQからの回答: 質問に対しFAQからの情報も返答できるよう、よくある質問を事前に登録。

2.4 FAQ機能

よくある質問の表示: 総合栄養食の基本的な知識や、飼い主がよく抱く疑問に対する回答をFAQ形式で提供。

定期的なFAQの更新: ユーザーから寄せられるフィードバックを基に、FAQを適宜更新。

2-5 データ管理

ペットフードデータベースの構築: 日本で販売されているペットフードの成分、価格、嗜好性に関するデータを格納し、検索やフィルタリングが可能な状態にする。

2-6 フィードバック機能

- **問い合わせ機能**: チャットの応答が期待に沿わない場合、ユーザーからのフィードバックや問い合わせを管理者(開発者)に通知する機能。

3. 不必要要件

医療行為: 獣医師の診察が必要な医療に関する内容は取り扱わない。

おやつの提案: おやつについてはFAQで簡単な情報提供のみ行う。

4. 技術スタック

4-1 フロントエンド

React: 動的でインタラクティブなUIを構築するためのJavaScriptライブラリ。

TypeScript: 型付けによりコードの保守性を向上。

Tailwind CSS: 簡便なスタイリングを実現するutility-firstのCSSフレームワーク。

4-2 バックエンド

Node.js: フロントエンドと一貫性のあるJavaScriptベースのランタイム環境。

Express.js: シンプルかつ柔軟なWebアプリケーションフレームワーク。

MongoDB: ペットやペットフードに関するデータを保存するためのNoSQLデータベース。

4-3 自然言語処理 (NLP)

OpenAI GPT-3 API: チャットボットの応答生成に利用するNLPモデル。

4-4 デプロイメント

Docker: アプリケーションのコンテナ化による環境一貫性の確保。

AWS または Google Cloud Platform: クラウド上でのアプリケーションのデプロイとホスティング。

4-5 CI/CD

GitHub Actions: 継続的インテグレーションとデリバリーの自動化。

4-6 その他のツール

Jest: ユニットテストと統合テストのためのJavaScriptテストフレームワーク。

ESLint: コード品質とスタイルの一貫性を保つ静的コード分析ツール。

5. 開発フェーズ

フェーズ1: MVP開発

ユーザー登録、ペットアカウント追加、質問ベースのフード提案、FAQの実装

フェーズ2: 機能追加

チャット相談機能とフィードバック機能の実装

フェーズ3: 拡張と改善

フィルタリング機能の高度化やペットフードデータの充実、デプロイメントのスケーリング

要件定義はこれで完成としていきます。
まずはフェーズ1の実装をやってみます。

この記事が気に入ったらサポートをしてみませんか?