diff --git a/docs/requirements.md b/docs/requirements.md index 7c5689f..c93d7c6 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -33,7 +33,7 @@ - **写真アップロード**(UploadThing もしくは Vercel Blob、薄いラッパー経由で差し替え可能に) - テイスティング記録(味の評価・レーダーチャート) - AI「今夜の 1 杯」提案(自分のボトルデータに基づく。**主役にしない**) -- フィルタ・並べ替えの強化 +- フィルタ・並べ替えの強化(複数軸ファセット) ### アイスボックス(将来枠・未定 / やるかも) @@ -49,6 +49,8 @@ - 店で出会ったウイスキーの地図記録(Google map API) - **バーコードスキャン**(スピリッツのバーコード DB が貧弱で、父が重視する限定版・樽違いをほぼ判別できない?) - 価格の外部 API 取得 +- あいまい検索(誤字許容。個人利用では過剰気味) +- 無限スクロール(難易度の割にコスパが低い。ページングは「もっと見る」で足りる) ### やらないこと(今のところ) @@ -65,7 +67,7 @@ ## 5. 非機能要件 -- **対応環境**:モバイルブラウザ中心(PC でも崩れない程度)。最新の Chrome / Safari 想定。 +- **対応環境**:モバイルファーストで作りつつ、PC でも見やすいレスポンシブ対応(ポートフォリオとして PC 閲覧される想定)。最新の Chrome / Safari 想定。 - **認証**:Google OAuth。パスワードは保持しない。 - **規模 / 性能**:個人利用(数十〜数百件)。過剰な最適化はしない。 - **保守性**:スタック内で完結(Next.js / Prisma / Postgres / Vercel)。 diff --git a/docs/roadmap.md b/docs/roadmap.md index cdeb8ed..5d9b306 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -14,14 +14,14 @@ ## マイルストーン(週次) -| 期間 | マイルストーン | 主な作業 | 対応ストーリー | -| ---------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | -| Sprint 0(設計) | 計画が固まる | 要件概要・ユーザーストーリー・データモデル・ロードマップ・ADR を Markdown で整備(=本ドキュメント群) | — | -| 準備(〜2 日) | 土台が立つ | `create-next-app`(TS)/ESLint・Prettier・tsconfig strict/`.env.example` 作成/GitHub Issues・Projects 起票/Vercel・Neon 接続/Prisma 初期化 | — | -| 第 1 週 | 認証と DB の土台 | Prisma スキーマ(User・Bottle)+マイグレーション/Better Auth で Google ログイン・ログアウト・保護ルート(セッション戦略・保護方式は現行の公式推奨を確認して決定)/空のボトル一覧ページ(プレースホルダ=ログイン後の着地点)/「自分のデータだけ」の基盤 | US-1 | -| 第 2 週 | ボトル CRUD(芯の本体) | 登録フォーム(zod・必須は銘柄名)/一覧(モバイルファースト・空状態)/詳細/編集/削除(確認・所有権)/Route Handlers(書き込み)+認可・読みは Server Component 直読み/**重要ロジック(zod・認可)の単体・結合テストを実装と併走**(→ `CONTRIBUTING.md` テスト方針) | US-2〜US-6 | -| 第 3 週 | 可視化 + デプロイ | ダッシュボード(国別の本数グラフ)/モバイル UI 調整/本番デプロイ(Vercel)・動作確認/README を実態に合わせて更新(デプロイ URL 反映) | US-7 | -| 第 4 週 | 品質 + 仕上げ + 父 FB | **E2E(Playwright・主要フロー 1 本)+ テストを細部まで拡充**+ GitHub Actions(CI)※導入時に CLAUDE.md の Commands と PR テンプレへ test を追記/バグ修正・UI 磨き/README 充実(スクショ・デモ GIF)・アーキ図/**父に実際に使ってもらいフィードバック収集**/予備日 | 共通 DoD | +| 期間 | マイルストーン | 主な作業 | 対応ストーリー | +| ---------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | +| Sprint 0(設計) | 計画が固まる | 要件概要・ユーザーストーリー・データモデル・ロードマップ・ADR を Markdown で整備(=本ドキュメント群) | — | +| 準備(〜2 日) | 土台が立つ | `create-next-app`(TS)/ESLint・Prettier・tsconfig strict/`.env.example` 作成/GitHub Issues・Projects 起票/Vercel・Neon 接続/Prisma 初期化 | — | +| 第 1 週 | 認証と DB の土台 | Prisma スキーマ(User・Bottle)+マイグレーション/Better Auth で Google ログイン・ログアウト・保護ルート(セッション戦略・保護方式は現行の公式推奨を確認して決定)/空のボトル一覧ページ(プレースホルダ=ログイン後の着地点)/「自分のデータだけ」の基盤 | US-1 | +| 第 2 週 | ボトル CRUD(芯の本体) | 登録フォーム(zod・必須は銘柄名)/一覧(モバイルファースト・空状態)/詳細/編集/削除(確認・所有権)/Route Handlers(書き込み)+認可・読みは Server Component 直読み/**重要ロジック(zod・認可)の単体・結合テストを実装と併走**(→ `CONTRIBUTING.md` テスト方針) | US-2〜US-6 | +| 第 3 週 | 可視化 + デプロイ | ワイヤーフレーム作成 ↔︎ ドキュメント整理/一覧の再設計(基本フィルタ〔単一軸〕・基本検索〔名前の部分一致〕・Load More ページネーション)/ダッシュボード(国別の本数グラフなど)/モバイル UI 調整・レスポンシブ(PC)対応/本番デプロイ(Vercel)・動作確認/README を実態に合わせて更新(デプロイ URL 反映) | US-3・US-7 | +| 第 4 週 | 品質 + 仕上げ + 父 FB | **E2E(Playwright・主要フロー 1 本)+ テストを細部まで拡充**+ GitHub Actions(CI)※導入時に CLAUDE.md の Commands と PR テンプレへ test を追記/バグ修正・UI 磨き/README 充実(スクショ・デモ GIF)・アーキ図/**父に実際に使ってもらいフィードバック収集**/予備日 | 共通 DoD | > **MVP 完了の定義**:第 3 週末に「Google ログイン → ボトルを登録・一覧・編集・削除 → 傾向グラフ」が本番 URL で一通り動く。 @@ -34,7 +34,7 @@ 1. 写真アップロード(UploadThing もしくは Vercel Blob) 2. テイスティング記録(味の評価・レーダーチャート) 3. AI「今夜の 1 杯」提案(自分のボトルデータに基づく) -4. フィルタ・並べ替えの強化 +4. フィルタ・並べ替えの強化(複数軸ファセット) > **開発インフラ(任意)**:ローカル DB を `docker-compose` でコンテナ化(本番=Neon、ローカル=コンテナ)。MVP には不要で、Docker 学習・環境分離の signal として芯の後に検討。デプロイの Docker 化はしない(Vercel 運用のため不要)。 @@ -42,7 +42,7 @@ > 日付なし。やるとは限らない置き場。詳細は要件概要を参照。 -ラベル写真から AI 自動入力 / 蒸留所の地図表示 / 歴史表示 / 実績バッジ / ウィッシュリスト / 読み取り専用の公開ページ / 店で出会ったウイスキーの地図記録 +ラベル写真から AI 自動入力 / 蒸留所の地図表示 / 歴史表示 / 実績バッジ / ウィッシュリスト / 読み取り専用の公開ページ / 店で出会ったウイスキーの地図記録 / あいまい検索 / 無限スクロール ## 参考:ガント(仮・開始日に合わせて調整) diff --git a/docs/user-stories.md b/docs/user-stories.md index 4ef2451..a4aa10f 100644 --- a/docs/user-stories.md +++ b/docs/user-stories.md @@ -34,6 +34,9 @@ - [ ] 自分のボトルが一覧で表示される(銘柄名・国・地域・年数・本数・限定版バッジ) - [ ] スマホ画面で崩れず見やすい(モバイルファースト) - [ ] 0 件のとき「まだ登録がありません」などの空状態が表示される +- [ ] 国で絞り込みできる +- [ ] 名前で検索できる +- [ ] 「もっと見る」で追加読み込みできる ## US-4 ボトルの詳細を見る