Go-DDD マーケットプレイスアプリケーション ユーザーストーリー¶
このドキュメントは、Go-DDDマーケットプレイスアプリケーションのユーザーストーリーをまとめたものです。
1. ユーザーストーリーとは¶
ユーザーストーリーは、ユーザーの視点から機能を記述したものです。以下の形式で記述します:
「<ユーザーの役割>として、<達成したい目標>ができるようにしたい。それは<理由>のためである。」
2. 商品管理機能に関するユーザーストーリー¶
2.1 商品の基本操作¶
- 商品の作成
- 出品者として、新しい商品を作成できるようにしたい。それは自分の商品をマーケットプレイスで販売するためである。
-
管理者として、新しい商品を作成できるようにしたい。それは出品者の代わりに商品を登録するためである。
-
商品の検索
- 購入者として、すべての商品を検索できるようにしたい。それは購入したい商品を見つけるためである。
- 出品者として、すべての商品を検索できるようにしたい。それは市場の状況を把握するためである。
-
管理者として、すべての商品を検索できるようにしたい。それはマーケットプレイス全体の商品を管理するためである。
-
商品の詳細取得
- 購入者として、商品の詳細情報を取得できるようにしたい。それは商品について詳しく知るためである。
- 出品者として、自分の商品の詳細情報を取得できるようにしたい。それは商品情報を確認するためである。
-
管理者として、任意の商品の詳細情報を取得できるようにしたい。それは商品情報を確認・管理するためである。
-
商品の更新
- 出品者として、自分の商品情報を更新できるようにしたい。それは商品情報を最新の状態に保つためである。
- 管理者として、任意の商品情報を更新できるようにしたい。それは必要に応じて商品情報を修正するためである。
2.2 商品の高度な機能¶
- 商品の検証
-
システムとして、商品データを検証できるようにしたい。それは不正なデータの登録を防ぐためである。
-
商品と出品者の関連付け
-
システムとして、商品と出品者を関連付けできるようにしたい。それは商品の所有者を明確にするためである。
-
存在しない出品者のエラー処理
-
システムとして、存在しない出品者に関するエラーを適切に処理できるようにしたい。それはユーザーに明確なエラーメッセージを提供するためである。
-
商品が見つからない場合の404レスポンス
- システムとして、商品が見つからない場合に適切なHTTPステータスコードを返せるようにしたい。それはクライアントに正確な情報を提供するためである。
3. 出品者管理機能に関するユーザーストーリー¶
3.1 出品者の基本操作¶
- 出品者の作成
- 出品者として、自分のアカウントを作成できるようにしたい。それはマーケットプレイスで商品を販売するためである。
-
管理者として、新しい出品者アカウントを作成できるようにしたい。それは出品者の代わりにアカウントを登録するためである。
-
出品者の検索
- 購入者として、すべての出品者を検索できるようにしたい。それは信頼できる出品者を見つけるためである。
- 管理者として、すべての出品者を検索できるようにしたい。それは出品者を管理するためである。
-
出品者の詳細取得
- 購入者として、出品者の詳細情報を取得できるようにしたい。それは出品者について詳しく知るためである。
- 出品者として、自分の詳細情報を取得できるようにしたい。それは自分の情報を確認するためである。
- 管理者として、任意の出品者の詳細情報を取得できるようにしたい。それは出品者情報を確認・管理するためである。
-
出品者の更新
- 出品者として、自分の情報を更新できるようにしたい。それは情報を最新の状態に保つためである。
- 管理者として、任意の出品者情報を更新できるようにしたい。それは必要に応じて出品者情報を修正するためである。
-
出品者の削除
- 管理者として、出品者を削除できるようにしたい。それは不適切な出品者をシステムから除外するためである。
3.2 出品者の高度な機能¶
-
出品者の検証
- システムとして、出品者データを検証できるようにしたい。それは不正なデータの登録を防ぐためである。
-
出品者が見つからない場合の404レスポンス
- システムとして、出品者が見つからない場合に適切なHTTPステータスコードを返せるようにしたい。それはクライアントに正確な情報を提供するためである。
4. システム機能に関するユーザーストーリー¶
4.1 API機能¶
-
RESTful API
- システムとして、RESTful APIを提供できるようにしたい。それはクライアントアプリケーションとの標準的な通信を可能にするためである。
-
DTOとマッパー
- システムとして、ドメインエンティティを外部に公開しないためのDTOとマッパー機能を提供できるようにしたい。それはドメインモデルを保護するためである。
-
エラーハンドリング
- システムとして、エラーを適切に処理できるようにしたい。それはユーザーに明確なエラーメッセージを提供するためである。
4.2 データ管理機能¶
-
タイムスタンプ管理
- システムとして、エンティティの作成・更新日時を管理できるようにしたい。それはデータの変更履歴を追跡するためである。
-
ソフトデリート
- システムとして、エンティティの論理削除を実行できるようにしたい。それはデータを完全に削除せずに非表示にするためである。
4.3 開発支援機能¶
- テスト
- 管理者として、各機能に対するテストを実行できるようにしたい。それはアプリケーションの品質を確保するためである。
5. ユーザーストーリーの優先順位付け¶
ユーザーストーリーは、以下の基準に基づいて優先順位付けされています:
5.1 高優先度(リリース1: MVP)¶
- 商品の作成 (1)
- 商品の検索 (2)
- 商品の詳細取得 (3)
- 出品者の作成 (9)
- 出品者の検索 (10)
- 出品者の詳細取得 (11)
- RESTful API (16)
- エラーハンドリング (18)
- タイムスタンプ管理 (19)
- テスト (21)
5.2 中優先度(リリース2: 拡張機能)¶
- 商品の更新 (4)
- 商品の検証 (5)
- 商品と出品者の関連付け (6)
- 出品者の更新 (12)
- 出品者の検証 (14)
- DTOとマッパー (17)
5.3 低優先度(リリース3: 高度な機能)¶
- 存在しない出品者のエラー処理 (7)
- 商品が見つからない場合の404レスポンス (8)
- 出品者の削除 (13)
- 出品者が見つからない場合の404レスポンス (15)
- ソフトデリート (20)