Phụ lục C: Mẫu Epic + User Story backlog đầy đủ (dự án FoodNow)

Nội dung dưới đây in lại đầy đủ từ file mẫu gốc: templates/user-story-epic/FoodNow-UserStories.md. Xem cách phân rã Epic thành User Story tại Chương 24, cách viết Acceptance Criteria tại Chương 23, và cách ưu tiên hoá tại Chương 26.


Epic A: Đặt món & Thanh toán

ID User Story Ưu tiên
US-101 Là khách hàng, tôi muốn xem thực đơn theo danh mục, để dễ dàng tìm món tôi muốn ăn Must have
US-102 Là khách hàng, tôi muốn thêm/sửa/xoá món trong giỏ hàng, để tôi kiểm soát đúng đơn hàng trước khi thanh toán Must have
US-103 Là khách hàng, tôi muốn chọn giao tận nơi hoặc lấy tại quán, để phù hợp với nhu cầu của tôi lúc đó Must have
US-104 Là khách hàng, tôi muốn thanh toán bằng thẻ hoặc ví điện tử, để tôi không cần chuẩn bị tiền mặt Must have
US-105 Là khách hàng, tôi muốn thanh toán khi nhận hàng (COD), để tôi yên tâm khi chưa quen với thanh toán online Should have
US-106 Là khách hàng, tôi muốn áp dụng mã giảm giá khi thanh toán, để tôi tiết kiệm chi phí Must have

Acceptance Criteria mẫu cho US-106 (xem đầy đủ tại Chương 23, mục 23.3):

Scenario 1: Áp dụng mã giảm giá hợp lệ
  Given giỏ hàng có tổng giá trị 200.000đ
  And mã giảm giá "FOODNOW10" đang có hiệu lực, giảm 10%
  When khách hàng nhập mã "FOODNOW10" và bấm Áp dụng
  Then tổng tiền thanh toán giảm còn 180.000đ
  And hệ thống hiển thị thông báo "Đã áp dụng mã giảm giá FOODNOW10"

Scenario 2: Nhập mã giảm giá đã hết hạn
  Given mã giảm giá "TET2024" đã hết hạn sử dụng
  When khách hàng nhập mã "TET2024" và bấm Áp dụng
  Then hệ thống hiển thị thông báo lỗi "Mã giảm giá đã hết hạn"
  And tổng tiền thanh toán không thay đổi

Scenario 3: Nhập mã giảm giá thứ hai sau khi đã áp dụng một mã
  Given khách hàng đã áp dụng thành công mã "FOODNOW10"
  When khách hàng nhập thêm mã "SUMMER5" và bấm Áp dụng
  Then hệ thống hiển thị thông báo "Chỉ được áp dụng 1 mã giảm giá cho mỗi đơn hàng"
  And mã "FOODNOW10" vẫn được giữ nguyên hiệu lực

Epic B: Theo dõi đơn hàng

ID User Story Ưu tiên
US-201 Là khách hàng, tôi muốn xem trạng thái đơn hàng theo thời gian thực, để tôi biết khi nào đồ ăn sẽ đến Must have
US-202 Là khách hàng, tôi muốn nhận thông báo đẩy khi trạng thái đơn hàng thay đổi, để tôi không cần liên tục mở app kiểm tra Must have
US-203 Là khách hàng, tôi muốn xem lịch sử các đơn hàng đã đặt, để tôi có thể đặt lại nhanh chóng Should have
US-204 Là khách hàng, tôi muốn huỷ đơn hàng trong vòng 2 phút sau khi đặt, để tôi có thể sửa sai nếu đặt nhầm Should have

Epic C: Chương trình khách hàng thân thiết

ID User Story Ưu tiên
US-401 Là khách hàng, tôi muốn được tự động tích điểm sau mỗi đơn hàng thành công, để tôi tích luỹ dần Must have
US-402 Là khách hàng, tôi muốn xem số điểm hiện có, để biết mình còn bao nhiêu điểm Must have
US-403 Là khách hàng, tôi muốn xem lịch sử tích/đổi điểm, để kiểm tra lại giao dịch Should have
US-404 Là khách hàng, tôi muốn đổi điểm lấy mã giảm giá, để tiết kiệm chi phí đơn hàng tiếp theo Must have
US-405 Là khách hàng, tôi muốn nhận thông báo khi điểm sắp hết hạn, để không bỏ lỡ cơ hội dùng Could have
US-406 Là Ban giám đốc, tôi muốn xem báo cáo tổng điểm đã phát hành/đã đổi theo tháng, để đánh giá hiệu quả Should have

Epic D: Quản trị đơn hàng (dành cho nhân viên chi nhánh)

ID User Story Ưu tiên
US-301 Là nhân viên chi nhánh, tôi muốn nhận thông báo ngay khi có đơn hàng mới, để tôi xử lý kịp thời Must have
US-302 Là nhân viên chi nhánh, tôi muốn xác nhận hoặc từ chối đơn hàng kèm lý do, để khách hàng biết trạng thái đơn của họ Must have
US-303 Là nhân viên chi nhánh, tôi muốn cập nhật trạng thái xử lý đơn hàng, để khách hàng theo dõi được Must have
US-304 Là quản lý chi nhánh, tôi muốn xem báo cáo doanh thu và số đơn theo ngày/tuần/tháng, để theo dõi hiệu quả kinh doanh Should have