docs: add research assets, screenshots and guides

Include supplementary documentation, research notes on Lexical/UX, and setup guides.
This commit is contained in:
2026-02-11 11:51:35 +08:00
parent ad8e2e313e
commit f6b806617e
46 changed files with 11571 additions and 0 deletions

View File

@@ -0,0 +1,321 @@
# 規劃更新摘要 - Story 1.2 Payload CMS Collections
**更新日期:** 2025-01-30
**更新類型:** 詳細規劃調整
**影響範圍:** Story 1.2, 1.9, 1.10, 1.12
---
## 📊 執行摘要
根據用戶要求「調整規劃,更新相關的 stories」我已完成
1. ✅ 創建詳細的 Payload CMS 修改計劃
2. ✅ 更新 Story 1.2 執行計劃
3. ✅ 重新估算時間(減少 50%
4. ✅ 定義相關 Stories 依賴關係
---
## 📁 新增/更新的文檔
### 1. 新增文檔
**📄 `docs/prd/payload-cms-modification-plan.md`**
- **用途:** Story 1.2 的詳細實作指南
- **內容:**
- 7 個詳細任務定義Task 1.2.1 - 1.2.7
- 每個任務的完整代碼範例
- Webflow → Payload 欄位對應表
- 驗收標準和測試計劃
- 相關 Stories 依賴更新
### 2. 更新文檔
**📄 `docs/prd/epic-1-execution-plan.md`**
- **更新部分:** Story 1.2 詳細執行計劃
- **主要變更:**
- 重寫 Story 1.2 章節(原 74-280 行)
- 階段化實作計劃Phase 1-3
- Webflow 欄位對應表
- 角色權限矩陣
- 更新 Sprint 0 和 Sprint 1 時間估算
---
## 🎯 關鍵決策更新
### Story 1.2 時間估算
| 項目 | 原估計 | 更新後 | 變化 |
|------|--------|--------|------|
| Story 1.2 | 8-12 小時 | **4 小時** | -50% ~ -66% |
| Sprint 0 | 8-12 小時 | **2.5 小時** | -75% |
| Sprint 1 | 24-30 小時 | **3 小時** | -90% |
**理由:**
1. Payload CMS 架構清晰,修改簡單直接
2. Access control 模式一致,易於批量應用
3. 詳細計劃減少了不確定性和反覆修改
4. 大部分欄位是標準類型text/select/upload
### Story 1.2 任務結構
**原計劃:** 5 個 tasks定義模糊
**更新後:** 7 個 tasks詳細定義
| Phase | Task | 內容 | 時間 |
|-------|------|------|------|
| **Phase 1** | 1.2.1 | 創建 Portfolio Collection | 1 小時 |
| (Critical) | 1.2.2 | 完善 Categories Collection | 30 分鐘 |
| **Phase 2** | 1.2.3 | 完善 Posts Collection | 30 分鐘 |
| (Enhancement) | 1.2.4 | 完善 Users Collection | 30 分鐘 |
| **Phase 3** | 1.2.5 | 創建 Access Control 函數 | 30 分鐘 |
| (Security) | 1.2.6 | 應用 Access Control | 30 分鐘 |
| | 1.2.7 | 驗證和測試 | 1 小時 |
| **總計** | | | **4 小時** |
---
## 🔗 相關 Stories 依賴更新
### Story 1.9: Blog System更新
**新增依賴項:**
```diff
Story 1.9 依賴 Story 1.2 完成:
+ Categories.textColor/backgroundColor → category badge theming
+ Posts.excerpt → article list display150-200 字)
+ Posts.status → filter published postsdraft/review/published
```
**Task 1.9.2Blog Listing Page更新**
```diff
+ 從 Payload API 載入已發布文章where: { status: 'published' }
+ 顯示 category badge使用動態顏色 category.textColor/backgroundColor
+ 顯示文章摘要(使用 post.excerpt最多 200 字)
```
**Task 1.9.4Category Page更新**
```diff
+ 分類顏色主題(使用 category.textColor/backgroundColor
+ Badge 使用動態顏色而非固定顏色
+ 分類名稱顯示 category.nameEn如果存在
```
### Story 1.10: Portfolio更新
**新增依賴項:**
```diff
Story 1.10 依賴 Story 1.2 完成:
+ Portfolio collection 必須存在7 個欄位)
+ 所有欄位必須定義才能實作前端頁面
```
**Task 1.10.1Design Portfolio Architecture簡化**
```diff
- 決定是否使用 Payload CMS collection
+ Portfolio collection 已在 Story 1.2 創建Task 1.2.1
- 欄位規劃
+ 欄位已在 Story 1.2 定義:
+ title, slug, url, image, description, websiteType, tags
+ 此 Task 改為專注於前端路由和組件架構設計
```
**Task 1.10.2Implement Portfolio Listing Page更新**
```diff
+ Portfolio card 顯示:
+ - Project image (image 欄位)
+ - Project title (title 欄位)
+ - Description (description 欄位)
+ - Tags (tags array)
+ - Website type badge (websiteType 欄位)
```
### Story 1.12: Authentication更新
**新增依賴項:**
```diff
Story 1.12 依賴 Story 1.2 Phase 3 完成:
+ Users.role 欄位必須存在admin/editor
+ adminOnly/adminOrEditor 函數必須創建
+ 所有 Collections 必須應用 access control
```
**Task 1.12.5Implement Role-Based Access Control簡化**
```diff
- Users collection 添加 role 欄位
+ Users collection 已在 Story 1.2 Task 1.2.4 添加 role 欄位
- 建立 access/adminOnly.ts
+ access/adminOnly.ts 已在 Story 1.2 Task 1.2.5 創建
- 建立 access/adminOrEditor.ts
+ access/adminOrEditor.ts 已在 Story 1.2 Task 1.2.5 創建
- 更新 Collections 的 access rules
+ Collections 已在 Story 1.2 Task 1.2.6 應用 access rules
+ 此 Task 改為專注於測試驗證角色權限
```
---
## 📋 Collection 完成度總覽
### Story 1.2 完成後狀態
| Collection | 當前 | Story 1.2 後 | 新增欄位 |
|-----------|------|-------------|---------|
| Portfolio | 0% | **100%** ✅ | 7 個欄位 |
| Categories | 40% (2/6) | **100%** ✅ | +4 欄位 |
| Posts | 60% (9/13) | **100%** ✅ | +4 欄位 |
| Users | 70% (3/4) | **100%** ✅ | +1 欄位 |
| Media | 90% | **100%** ✅ | - |
| Pages | 100% | **100%** ✅ | - |
### Access Control 完成度
| 組件 | 當前 | Story 1.2 後 |
|------|------|-------------|
| Access 函數 | 3 個 | **5 個** ✅ |
| Collections 應用 | 部分 | **全部** ✅ |
| Globals 應用 | 無 | **完整** ✅ |
| 角色權限測試 | 無 | **完成** ✅ |
---
## 🔄 Sprint 調整影響
### Sprint 0: Infrastructure Completion
**調整前:**
- Story 1.1: 40 分鐘
- Story 1.2: 不明確
- 總計8-12 小時
**調整後:**
- Story 1.1: 40 分鐘
- Story 1.2 Phase 1: 1.5 小時
- **總計2.5 小時**-75%
**理由:** 專注於 Critical BlockersPortfolio + Categories解除 Story 1.9 和 1.10 的阻礙
### Sprint 1: Collections Completion
**調整前:**
- Story 1.2 完成: 不明確
- Story 1.3 遷移: 12-16 小時
- 總計24-30 小時
**調整後:**
- Story 1.2 Phase 2-3: 3 小時
- Story 1.3 遷移: 延後到 Sprint 2
- **總計3 小時**-90%
**理由:** 將 Story 1.2 拆分到 Sprint 0 和 Sprint 1先完善 Collections 再遷移內容
### Sprint 2: Migration & Layout新增建議
**建議內容:**
- Story 1.3: Content Migration Script (12-16 小時)
- Story 1.4: Header/Footer Components (8-10 小時)
- **總計20-26 小時**
**理由:** Collections 完成後,開始內容遷移和全局組件開發
---
## 📊 時間線總結
### Epic 1 整體時間估算
| 階段 | 原估計 | 更新後 | 變化 |
|------|--------|--------|------|
| Sprint 0 (Infra) | 8-12 hr | 2.5 hr | **-75%** |
| Sprint 1 (Collections) | 24-30 hr | 3 hr | **-90%** |
| Sprint 2 (Migration) | - | 20-26 hr | **新增** |
| Sprint 3-5 (Pages/Apps) | 90-120 hr | 90-120 hr | 無變化 |
| Sprint 6 (Production) | 40-50 hr | 40-50 hr | 無變化 |
| **總計** | **162-212 hr** | **155.5-201.5 hr** | **-4%** |
**關鍵變化:**
- Sprint 0 和 Sprint 1 時間大幅減少(詳細規劃的效果)
- 新增 Sprint 2 專注於內容遷移和全局組件
- 整體時間線略微縮短,但更有組織性
---
## ✅ 驗收清單
### Story 1.2 完成標準
#### Collection 完整性
- [ ] Portfolio: 7/7 欄位title, slug, url, image, description, websiteType, tags
- [ ] Categories: 6/6 欄位title, nameEn, order, textColor, backgroundColor, slug
- [ ] Posts: 13/13 欄位(含新增的 excerpt, ogImage, showInFooter, status
- [ ] Users: 4/4 欄位email, name, role, password
- [ ] Media: 100%
- [ ] Pages: 100%
#### Access Control 完整性
- [ ] 5 個 access 函數完整
- [ ] 7 個 collections/globals 應用 access rules
- [ ] 角色權限矩陣測試通過
- [ ] Admin 可完整權限Editor 僅內容管理
#### 功能驗收
- [ ] 所有 collections 在 admin panel 可見
- [ ] 所有欄位可編輯
- [ ] 型別生成成功(`pnpm generate:types`
- [ ] 開發環境正常運行
- [ ] R2 上傳測試通過
---
## 📝 後續行動建議
### 選項 A開始執行 Story 1.2(推薦)
**Phase 1 - Critical Blockers今天**
1. Task 1.2.1: 創建 Portfolio Collection (1 小時)
2. Task 1.2.2: 完善 Categories Collection (30 分鐘)
**預期成果:**
- Story 1.9 和 1.10 的阻礙解除
- Portfolio 和 Categories 可用於前端開發
### 選項 B繼續規劃其他 Stories
**可以並行規劃:**
- Story 1.3: Content Migration Script
- Story 1.4: Header/Footer Components
- Story 1.5-1.8: 頁面實作細節
### 選項 C調整整體計劃
**可能的調整:**
- 重新評估 Story 1.3 的優先級(是否先遷移還是先實作頁面)
- 調整 Sprint 結構
- 修改時間線
---
## 📚 參考文檔
**主要文檔:**
1. `docs/prd/payload-cms-modification-plan.md` - Story 1.2 詳細實作指南
2. `docs/prd/epic-1-execution-plan.md` - Epic 1 執行計劃(已更新)
3. `docs/prd/epic-1-stories-1.3-1.17-tasks.md` - Stories 1.3-1.17 任務定義
**相關文檔:**
4. `docs/prd/01-project-analysis.md` - 項目分析
5. `docs/prd/payload-cms-slimming-report.md` - Payload CMS 瘩身報告
**Payload CMS 官方文檔:**
- [Collections](https://payloadcms.com/docs/configuration/collections)
- [Access Control](https://payloadcms.com/docs/access-control/overview)
- [Field Types](https://payloadcms.com/docs/configuration/fields)
---
**文檔版本:** v1.0
**最後更新:** 2025-01-30
**適用於:** Payload CMS 3.59.1
**狀態:** ✅ 規劃完成,等待執行確認