Skip to content

Delivery Index — Nâng cấp Voucher Management

FieldValue
FeatureNâng cấp Voucher Management: Kiểm soát, Thống kê & Đối tác
Version1.0
Date19/03/2026
ComplexityLarge (4 phases, cross-module)

Files

#FileAudienceGhi chú
1PRDPO, Tech Lead, AllZ + A: 22 FRs, 4 phases, decision log
2UI SpecFE Dev, UI/UXB: 10 components, wireframes, states, copy text
3Dev SpecBE Dev, FE Dev, Tech LeadC1-C12: SQL, Hasura YAML, Go, traceability
4QA Test PlanQAD1-D5: 76 test cases, seed data
5Go-Live ChecklistOps, Tech LeadE1-E5: per-phase deploy, rollback plan
6Perf-fix Campaign DetailBE Dev, FE DevPrerequisite: 3 tasks tối ưu hiệu năng

RACI

DeliverablePOTLFE DevBE DevQAOps
PRDACIII
UI SpecCIRII
Dev SpecIACRI
QA Test PlanCIIIR
Go-Live ChecklistIAIIIR
Migration + Hasura (P1)IARIC
Migration + Hasura (P2)IARIC
Migration + Hasura (P3)IARIC
Migration + Hasura (P4)IARIC
Go HandlersICRI
FE Components (P1)IIRI
FE Components (P2)IIRI
FE Components (P3)IIRI
FE Components (P4)IIRI
Perf-fixIARRI
Partner App UIACPartner Dev (R)R

R = Responsible, A = Accountable, C = Consulted, I = Informed


Timeline

#MilestoneTargetOwnerPhụ thuộc
0Perf-fix deployT+3 ngàyBE Dev + FE Dev
1P1 — BE migrations + Go handlersT+5 ngàyBE Dev
2P1 — Hasura metadataT+6 ngàyBE DevSau migration
3P1 — FE componentsT+9 ngàyFE DevSau Hasura + codegen
4P1 — QA testingT+12 ngàyQASau FE deploy staging
5P1 — Go-LiveT+14 ngàyTLQA pass
6P2 — BE function + migrationT+17 ngàyBE DevPerf-fix done
7P2 — FE tab + exportT+20 ngàyFE DevSau codegen
8P2 — QA testingT+23 ngàyQASau FE deploy
9P2 — Go-LiveT+25 ngàyTLQA pass
10P3 — BE table + quota logicT+27 ngàyBE DevP2 done (report)
11P3 — FE wizard step + badgeT+30 ngàyFE DevSau codegen
12P3 — QA testingT+33 ngàyQASau FE deploy
13P3 — Go-LiveT+35 ngàyTLQA pass
14P4 — BE functionsT+37 ngàyBE DevPerf-fix done
15P4 — FE tab + chartT+40 ngàyFE DevSau codegen
16P4 — QA testingT+43 ngàyQASau FE deploy
17P4 — Go-LiveT+45 ngàyTLQA pass

Lưu ý: P2 và P4 có thể chạy song song nếu có 2 FE dev (cả 2 chỉ depend Perf-fix, không depend nhau). P3 phải chờ P2 xong vì extend report.

Gantt Overview

Week 1    Week 2    Week 3    Week 4    Week 5    Week 6    Week 7
|---------|---------|---------|---------|---------|---------|---------|
[PERF-FIX ]
[===P1 BE===][=P1 FE=][P1 QA][✓]
                      [==P2 BE==][=P2 FE=][P2 QA][✓]
                                          [==P3 BE==][=P3 FE=][P3 QA][✓]
                      [==P4 BE==][=P4 FE=][P4 QA][✓]  ← song song P2 nếu có resource

Open Items / Blockers

IDItemOwnerDeadlineStatusBlocking?
ASM-01Verify staff_id populated đúng cho voucher offline hiện tạiBE DevTrước P2OpenYes — P2 report thiếu data nếu sai
ASM-02Confirm Partner app dùng Hasura GraphQL (không phải REST riêng)TLTrước P2OpenYes — nếu REST → cần thêm endpoint
ASM-03Verify module Affiliate có data (không trống)POTrước P3OpenYes — nếu trống → cần flow tạo đối tác
ASM-04Confirm PostgreSQL >= 14 trên productionOpsTrước P4OpenYes — PERCENTILE_CONT cần PG14
RSK-01staff_id type mismatch (Go: *string, DB: uuid)BE DevP2 migrationOpenNo — fix trong migration
PERFDeploy perf-fix trước P2/P4BE+FE DevT+3OpenYes — P2/P4 tabs on slow page

Cross-feature Note

Feature voucher-gift-order-report (báo cáo đơn hàng voucher/gift trong Revenue Report Group) không conflict với feature này:

  • gift-order-report = macro view (cross-campaign, góc đơn hàng, module report)
  • voucher-enhancement = micro view (per-campaign, góc quản lý voucher, module cms)
  • Cả hai đọc bảng user_vouchers nhưng cột khác nhau, index khác nhau
  • Migration order: deploy gift-order-report indexes trước (chỉ READ, ít risk), sau đó enhancement (ALTER tables)

Handoff Checklist

  • [ ] PO review + sign-off PRD
  • [ ] TL review + sign-off Dev Spec
  • [ ] Verify 4 ASM (trước khi bắt đầu code)
  • [ ] Perf-fix deploy + verify
  • [ ] Phase 1 → Phase 2 → Phase 3 → Phase 4 (tuần tự)
  • [ ] Mỗi phase: BE → Hasura → FE → QA → Go-Live
  • [ ] Post-deploy monitoring per phase (xem go-live-checklist.md E5)