Giao diện
[TÊN FEATURE] - User Story Specification ​
| Field | Value |
|---|---|
| Doc ID | FS-XXX |
| Last Updated | YYYY-MM-DD |
| Author | [Tên BA] |
| Reviewers | [Dev Lead / Designer / PM / QA] |
| Status | DRAFT / IN REVIEW / APPROVED / BLOCKED |
| Figma Project | [Link Figma project tổng] |
| Related API Spec | [Link tài liệu API nếu có] |
| Related BRD | [Link BRD nếu có] |
| Related Impact Matrix | [Link Impact Matrix nếu có] |
1. Tổng quan dự án ​
Mô tả ngắn 2-3 câu: tính năng làm gì, giải quyết vấn đề gì, nhóm người dùng nào bị ảnh hưởng.
1.1 Bối cảnh ​
[Pain point hiện tại, trigger từ nghiệp vụ/khách hàng/đối thủ, vấn đề vận hành hoặc giới hạn hệ thống hiện tại.]
1.2 Mục tiêu ​
[Mục tiêu dự án, KPI, kết quả kỳ vọng, ràng buộc thời gian/ngân sách nếu có.]
1.3 In Scope ​
- [Những chức năng/quy trình SẼ làm trong phase này.]
- [Những màn hình, dữ liệu, API, report, notification nằm trong scope nếu có.]
1.4 Out Of Scope ​
- [Những chức năng/quy trình KHÔNG làm trong phase này.]
- [Những phần sẽ xử lý ở phase sau nếu có.]
1.5 Roles And Permissions ​
| Role ID | Role Name | Description | Permission Summary |
|---|---|---|---|
| R1 | [End user] | [Mô tả role] | [Quyền chính] |
| R2 | [Admin] | [Mô tả role] | [Quyền chính] |
2. Luồng tổng quan của dự án ​
[Mô tả flow tổng: user/role đi qua các tính năng nào theo thứ tự nào.]
text
[Entry point]
↓
[Tính năng A: US-01]
↓
[Tính năng B: US-02] ──→ [Tính năng C: US-03]
↓
[Exit / End state]Link flow nếu có:
- Mermaid / Excalidraw / Figma flow: [Link]
3. Các tính năng liên quan ​
Xét 2 loại liên quan:
Affects: tính năng khác ảnh hưởng đến tính năng hiện tại.Be Affected: tính năng hiện tại ảnh hưởng đến tính năng khác.
| Mã | Tính năng liên quan | Link tài liệu | Loại liên quan | Mục bị ảnh hưởng ở feature kia | Mục ảnh hưởng ở feature hiện tại | Mô tả ảnh hưởng |
|---|---|---|---|---|---|---|
| REL-01 | [Tên feature/module A] | [Link FS] | Affects | - | US-01.M1 - field X | [Feature A truyền state/data Y để hiển thị ở field X] |
| REL-02 | [Tên feature/module B] | [Link FS] | Be Affected | US-XX.M2 - list view | US-01.M3 - action Submit | [Khi US-01 submit thành công, list ở feature B phải refresh] |
Mã
REL-XXsẽ được tham chiếu ở phần Cross-feature AC bằng trườngMaps to.
4. Detailed Requirement ​
Danh sách User Story:
- US-01: [Tên user story]
- US-02: [Tên user story]
- US-03: [Tên user story]
US-01: [Tên User Story] ​
| Field | Value |
|---|---|
| Role thực hiện | [R1 - End user] |
| Phase | MVP / Phase 2 |
| Priority | P0 / P1 / P2 |
| Status | Draft / Ready / Approved |
4.1.1 US Statement ​
text
As a [role]
I want [hành động]
So that [lợi ích]4.1.2 Dependencies & Definition Of Ready ​
US này chỉ sẵn sàng để build khi các dependency dưới đây đã rõ.
| # | Cần sẵn sàng | Ai cung cấp | Trạng thái |
|---|---|---|---|
| D1 | Figma frame M1, M2 final | @Designer | ☐ |
| D2 | API /xxx ready hoặc đã có contract | @Backend | ☐ |
| D3 | US-XX merged hoặc behavior đã được confirm | @Frontend | ☐ |
4.1.3 Business Rules ​
Đặt business rules trước phần design để field/action/validation có rule tham chiếu rõ ràng.
Mỗi BR phải có ít nhất 1 AC (hoặc field/action/NFR cụ thể) cover — điền cột "Đã cover bởi". BR chưa có AC cover → bổ sung AC hoặc tạo Open Question, không để trống.
| ID | Rule | Áp dụng ở | Đã cover bởi (AC) |
|---|---|---|---|
| BR-01 | [Rule nghiệp vụ] | US-01.M1 - action [Tên action] | AC-M1.x |
| BR-02 | [Rule nghiệp vụ] | US-01.M2 - field [Tên field] | AC-M2.x |
| BR-03 | [Rule nghiệp vụ] | [Màn/action/field liên quan] | AC-Mx.x / EC-Mx.x |
4.1.4 Design ​
a. Mối liên hệ giữa các màn & User Flow ​
text
[Entry]
↓ user click X
[M1: Search]
↓ chọn item
[M2: Confirm]
├─ submit OK ──→ [M3: Success]
├─ lỗi A ──────→ ở lại M2, hiện inline error
└─ lỗi B ──────→ [M4: Modal error]Link flow chi tiết nếu có:
- Mermaid / Excalidraw / Figma flow: [Link]
b. Chi tiết từng màn ​
Quy ước:
- Mỗi màn dùng mã
US-01.M1,US-01.M2, ... - Mỗi màn tương ứng một Figma frame riêng nếu có UI.
- Nếu thiếu frame/state, ghi rõ
TODO: Designer bổ sung.
Màn US-01.M1 - [Tên màn] ​
| Field | Value |
|---|---|
| Figma frame | [Link frame cụ thể] |
| Trigger vào màn | [User làm gì để vào màn này] |
| Mô tả ngắn | [1-2 câu mô tả mục đích màn] |
UI States ​
| State | Khi nào | Hiển thị | Figma frame |
|---|---|---|---|
| Default | Vừa vào màn | [Mô tả UI] | [Link] |
| Loading | Đang load data | Skeleton/spinner | [Link] |
| Has data | Có data | [Mô tả UI] | [Link] |
| Empty | Không có data | Empty state + CTA nếu có | [Link] |
| Error | API lỗi | Toast/inline error + retry nếu có | [Link] |
| Disabled | Điều kiện chưa đủ | [Mô tả UI disabled] | [Link] |
Frame thiếu: ghi
TODO: Designer bổ sung [tên state].
Fields ​
| Field | Required | Type | Default | Format | Validation | Error Message | Visibility | Depends On |
|---|---|---|---|---|---|---|---|---|
| [Tên field] | Yes/No | Text/Number/Date/Dropdown/... | [Default] | [dd/MM/yyyy, regex, max length] | [Rule + ref BR-XX] | [Text khi sai] | Always/Hidden/Readonly | [Field X = Y thì field này...] |
Actions ​
A1 - [Tên action] ​
| Item | Description |
|---|---|
| Trigger | [User làm gì] |
| Behavior | [Hệ thống xử lý gì, ref BR-XX nếu có] |
| Success Result | [Kết quả mong đợi] |
Error cases:
| Case | Expected Handling |
|---|---|
| [Lỗi 1] | [Hiển thị gì / xử lý gì] |
| [Lỗi 2] | [Hiển thị gì / xử lý gì] |
A2 - [Tên action] ​
[Lặp lại cấu trúc của A1 nếu có.]
Acceptance Criteria của màn US-01.M1 ​
Format chuẩn: Given - When - Then.
AC-M1.1 - [Tên ngắn] ​
gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]Maps to:
- Business Rule: [BR-XX]
- Field/Action: [Tên field/action nếu có]
AC-M1.2 - [Tên ngắn] ​
gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]Maps to:
- Business Rule: [BR-XX]
Negative AC / Edge Cases của màn US-01.M1 ​
| ID | Tình huống | Hành vi mong đợi |
|---|---|---|
| EC-M1.1 | Mất mạng giữa flow | [Expected behavior] |
| EC-M1.2 | Mở 2 tab cùng thao tác | [Expected behavior] |
| EC-M1.3 | Input có ký tự đặc biệt/emoji | [Expected behavior] |
| EC-M1.4 | Refresh trang giữa modal | [Expected behavior] |
Màn US-01.M2 - [Tên màn] ​
[Lặp toàn bộ cấu trúc màn US-01.M1: Figma frame, trigger, UI States, Fields, Actions, Acceptance Criteria, Negative AC / Edge Cases.]
4.1.5 Cross-feature AC ​
AC riêng cho các trường hợp US này ảnh hưởng đến hoặc bị ảnh hưởng bởi tính năng khác ngoài tính năng hiện tại.
Nếu không có cross-feature AC, ghi: Không có.
Trường Maps to phải dùng mã REL-XX đã khai báo ở mục 3. Các tính năng liên quan.
AC-X-01.1 - [Tên cross-feature AC] ​
gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]Maps to:
- REL-XX ([Affects / Be Affected] - [Tên feature/module liên quan])
AC-X-01.2 - [Tên cross-feature AC] ​
gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]Maps to:
- REL-XX ([Affects / Be Affected] - [Tên feature/module liên quan])
US-02: [Tên User Story] ​
| Field | Value |
|---|---|
| Role thực hiện | [R2 - Admin] |
| Phase | MVP / Phase 2 |
| Priority | P0 / P1 / P2 |
| Status | Draft / Ready / Approved |
[Lặp toàn bộ cấu trúc từ 4.1.1 đến 4.1.5 cho US-02.]
5. Non-functional Requirements ​
| ID | Requirement | Applies To | Acceptance Criteria |
|---|---|---|---|
| NFR-01 | [Phân quyền/bảo mật] | [US/màn/API] | [Cách kiểm chứng] |
| NFR-02 | [Performance/SLA] | [US/màn/API] | [Cách kiểm chứng] |
| NFR-03 | [Logging/Audit/Monitoring] | [US/màn/API] | [Cách kiểm chứng] |
6. Open Questions ​
| ID | Question | Owner | Due Date | Status |
|---|---|---|---|---|
| OQ-001 | [Câu hỏi cần xác nhận] | [Owner] | [Date] | Open |
7. References ​
- BRD: [Link]
- Impact Matrix: [Link]
- Solution Decision: [Link]
- Figma: [Link]
- API Spec: [Link]
- Meeting Notes / Q&A: [Link]