WELIFE Docs Swagger Admin Web

14 — Screen Matrix chính thức (CON · PAR · DRV · ADM)

Chốt 2026-07-29 · Nguồn: inventory FE + design-index + Swagger tags · Audit JPG trước đó. Doc này là source of truth cho: mockup còn thiếu · nav · RBAC · API trước khi code sâu. Gap JPG cũ: 13-FE-SCREEN-GAP-MATRIX.md


0. Legend

Cột Giá trị
Trạng thái DONE = mockup+code+API khớp MVP · PARTIAL = thiếu form/depth · PLANNED = chưa có mockup/board
Có mockup Y / N / P (partial — có CTA trên board khác, chưa board riêng)
Có code Y / N / P (screen mỏng / gộp tab)
API Tag Swagger · IMP / PARTIAL / N/A

Quy tắc code sâu (Step 5): một vertical = List → Detail → Create/Edit → Action → Success/Error → History Không ship màn rời ngoài chuỗi này.

Ưu tiên code (chốt): Driver → Admin → Shared KYC/Chat/Wallet → Partner forms → Error states CON


1. Board bổ sung (14) — Step 2

Chưa có file JPG → trạng thái mockup = N. Spec panel ở design-boards/. Khi design xong: thả JPG root + cập nhật design-index.md + cột Có mockup → Y.

# Board ID Surface Domain Panels tối thiểu WP
1 BOARD-DRV-01 DRV D-DRIVER Trip list · Trip detail active · Accept/Reject WP-FE-DRV-UI-01
2 BOARD-DRV-02 DRV D-DRIVER In-trip nav · Slide pickup/complete · Chat/Call WP-FE-DRV-UI-02
3 BOARD-DRV-03 DRV D-DRIVER · D-KYC Register · eKYC wizard · Wallet withdraw · Ratings depth WP-FE-DRV-UI-03
4 BOARD-ADM-01 ADM Platform Shell · Login ADMIN · Overview KPIs WP-FE-ADM-01
5 BOARD-ADM-02 ADM D-KYC · D-PARTNER · D-DRIVER Approve queue KYC / Partner / Driver WP-FE-ADM-02
6 BOARD-ADM-03 ADM Vertical ops Trip/Order ops · Wallet ledger · Support desk WP-FE-ADM-03
7 BOARD-ADM-04 ADM CMS · Promo CMS edit · Promo admin · Broadcast notif WP-FE-ADM-04
8 BOARD-SHR-KYC CON/PAR/DRV D-KYC Wizard: loại giấy · upload · status · reject reason WP-FE-KYC-UI-01
9 BOARD-SHR-CHAT CON/PAR/DRV D-CHAT Inbox · Thread · Call · Empty/Error WP-FE-CHAT-UI-02
10 BOARD-SHR-WALLET CON/DRV D-WALLET Topup · Withdraw · Transfer · Success/Fail WP-FE-WALLET-05
11 BOARD-PAR-FORM-01 PAR D-RENTAL Landlord: Create/Edit listing · Tenant list · Messages WP-FE-PAR-RENT-04
12 BOARD-PAR-FORM-02 PAR D-MED Clinic: Create Rx · Edit patient · Exam history WP-FE-PAR-MED-03
13 BOARD-PAR-FORM-03 PAR D-SCHOOL Add student · Teacher · Tuition remind WP-FE-PAR-SCH-03
14 BOARD-PAR-FORM-04 PAR D-FNB · D-PROMO Menu item form · Promo create · Staff invite WP-FE-PAR-FNB-03

Tổng: 3 Driver + 4 Admin + 3 Shared + 4 Partner forms = 14 boards.


2. Screen Matrix — Driver (ưu tiên #1)

Surface Domain Screen (SCR) Trạng thái Mockup Code API
DRV D-AUTH SCR-DRV-LOGIN PARTIAL P (7b769 settings) Y LoginScreen auth IMP
DRV D-DRIVER SCR-DRV-REGISTER PARTIAL N → BOARD-DRV-03 Y RegisterScreen driver POST register IMP
DRV D-KYC SCR-DRV-KYC-WIZARD DONE P → BOARD-DRV-03 Y KycScreen driver PATCH kyc IMP
DRV D-DRIVER SCR-DRV-HOME PARTIAL Y 7b769 Y HomeScreen pixel driver me/status/earnings IMP
DRV D-DRIVER SCR-DRV-TRIP-LIST DONE P → BOARD-DRV-01 Y TripsScreen GET trips/available|active IMP
DRV D-DRIVER SCR-DRV-TRIP-DETAIL DONE Y 7b769 #1 Y TripDetailScreen accept/pickup/complete IMP
DRV D-DRIVER SCR-DRV-IN-TRIP DONE Y 7b769 #1 Y InTripScreen arrive → pickup → complete + WS /rides
DRV D-WALLET SCR-DRV-WALLET DONE Y 7b769 #3 Y WalletScreen driver earnings + wallet IMP
DRV D-WALLET SCR-DRV-WITHDRAW DONE P → BOARD-SHR-WALLET Y modal withdraw POST wallet/withdraw IMP
DRV D-REVIEW SCR-DRV-RATINGS DONE Y 7b769 #5 Y RatingsScreen GET ratings + reply IMP
DRV D-CHAT SCR-DRV-CHAT DONE P → BOARD-SHR-CHAT Y ChatInboxScreen chat IMP
DRV D-USER SCR-DRV-SETTINGS DONE Y 7b769 #4 Y SettingsScreen users/me + driver/me IMP

Nav DRV (chốt): AuthStack(Login|Register|Kyc) → MainTabs: Home | Trips | Wallet | Ratings | Account Online toggle chỉ trên Home. In-trip = modal/stack trên Trips.


3. Screen Matrix — Admin (ưu tiên #2)

Surface Domain Screen (SCR) Trạng thái Mockup Code API
ADM D-AUTH SCR-ADM-LOGIN DONE P → BOARD-ADM-01 Y LoginPanel auth + ADMIN_EMAILS IMP
ADM Platform SCR-ADM-OVERVIEW DONE P → BOARD-ADM-01 Y OverviewModule KPI từ kyc/partners/driver/support
ADM D-KYC SCR-ADM-KYC-QUEUE DONE P → BOARD-ADM-02 Y KycModule kyc admin IMP
ADM D-PARTNER SCR-ADM-PARTNER-QUEUE DONE P → BOARD-ADM-02 Y PartnersModule partners admin IMP
ADM D-DRIVER SCR-ADM-DRIVER-QUEUE DONE P → BOARD-ADM-02 Y DriverModule driver admin IMP
ADM D-RIDES · D-FNB SCR-ADM-OPS-TRIPS-ORDERS DONE P → BOARD-ADM-03 Y OpsModule rides/orders admin thin IMP
ADM D-WALLET SCR-ADM-LEDGER DONE P → BOARD-ADM-03 Y LedgerModule wallet/admin/ledger IMP
ADM D-SUPPORT SCR-ADM-SUPPORT-DESK DONE P → BOARD-ADM-03 Y SupportModule support IMP
ADM D-HOTEL · D-MED · D-PHARM · D-SCHOOL SCR-ADM-VERTICAL-* IMP N Y actions admin cancel/confirm/verify
ADM D-CMS · D-PROMO · D-NOTIF SCR-ADM-CMS-PROMO DONE P → BOARD-ADM-04 Y CmsModule cms/promotions/notifications admin IMP
ADM D-HEALTH SCR-ADM-HEALTH PARTIAL N Y HealthModule health IMP

Nav ADM (chốt) — WP-FE-ADM-IA-01: Sidebar: Tổng quan · Duyệt hồ sơ eKYC / Đối tác / Tài xế / Agent AI · Vận hành Chuyến & đơn / Sổ ví / Hỗ trợ · Đặt chỗ KS / Khám / Thuốc / Trường / Trọ / Đỗ · Bản đồ Điểm POI / Xăng · Hệ thống Phân quyền / Nội dung & KM / Health. Role: chỉ ADMIN. Gap UI (chưa API admin): Social/Review/Chat mod · ATM/sạc/buýt CMS · Bills/QR/Home · Payment ops — DASHBOARD-AUDIT-PLAN.


4. Screen Matrix — Shared KYC / Chat / Wallet (ưu tiên #3)

Surface Domain Screen (SCR) Trạng thái Mockup Code API
CON D-KYC SCR-KYC-SUBMIT DONE P → BOARD-SHR-KYC Y wizard steps POST kyc/submit · GET status IMP
CON/PAR/DRV D-KYC SCR-KYC-WIZARD DONE P → BOARD-SHR-KYC Y KycSubmitScreen cùng tag kyc / driver kyc
CON D-KYC SCR-KYC-STATUS DONE P → BOARD-SHR-KYC Y step status GET status IMP
CON D-CHAT SCR-CHAT-INBOX DONE P Y ConversationsScreen chat IMP
CON D-CHAT SCR-CHAT-THREAD DONE P Y ChatThreadScreen WS /chat IMP
CON D-CHAT SCR-CHAT-CALL DONE P Y CallScreen signal IMP
CON/PAR/DRV D-CHAT SCR-CHAT-EMPTY-ERROR DONE P → BOARD-SHR-CHAT Y Empty/Error N/A UI
CON D-WALLET SCR-WALLET-HOME DONE Y 6183 Y GET wallet IMP
CON D-WALLET SCR-WALLET-TX DONE Y Y GET transactions IMP
CON D-WALLET SCR-WALLET-METHODS DONE Y Y payment-methods IMP
CON D-WALLET SCR-WALLET-ADD-CARD DONE Y Y POST methods IMP
CON D-WALLET SCR-WALLET-TOPUP DONE P → BOARD-SHR-WALLET Y WalletAction POST topup IMP
CON D-WALLET SCR-WALLET-WITHDRAW DONE P → BOARD-SHR-WALLET Y WalletAction POST withdraw IMP
CON D-WALLET SCR-WALLET-TRANSFER DONE P → BOARD-SHR-WALLET Y WalletAction POST transfer IMP
CON D-WALLET SCR-WALLET-ACTION-RESULT DONE P (868c pay) Y PaySuccess/Fail N/A UI
CON D-WALLET SCR-WALLET-STATS DONE Y 1eabc Y PARTIAL (local/agg)

5. Screen Matrix — Partner forms (ưu tiên #4)

Surface Domain Screen (SCR) Trạng thái Mockup Code API
PAR D-RENTAL SCR-PAR-RENT-LIST PARTIAL Y cfcf P multi-tab rentals partner IMP
PAR D-RENTAL SCR-PAR-RENT-CREATE PLANNED N → BOARD-PAR-FORM-01 N POST/PATCH listing IMP
PAR D-RENTAL SCR-PAR-RENT-TENANTS PLANNED N → BOARD-PAR-FORM-01 N PARTIAL
PAR D-RENTAL SCR-PAR-RENT-MESSAGES PLANNED N → BOARD-PAR-FORM-01 N chat IMP
PAR D-MED SCR-PAR-MED-HOME PARTIAL Y 679af P medical partner IMP
PAR D-MED SCR-PAR-MED-RX-CREATE IMP N → BOARD-PAR-FORM-02 N medical prescriptions
PAR D-MED SCR-PAR-MED-PATIENT-EDIT PLANNED N → BOARD-PAR-FORM-02 N PARTIAL
PAR D-SCHOOL SCR-PAR-SCH-STUDENTS PARTIAL Y f311 P schools IMP
PAR D-SCHOOL SCR-PAR-SCH-STUDENT-ADD PLANNED N → BOARD-PAR-FORM-03 N PARTIAL
PAR D-FNB SCR-PAR-FNB-MENU-FORM PARTIAL P c884 P merchants/menu IMP
PAR D-PROMO SCR-PAR-PROMO-CREATE IMP N → BOARD-PAR-FORM-04 N promotions IMP
PAR D-PARTNER SCR-PAR-STAFF-INVITE PARTIAL P P partners staff IMP

Nav PAR (chốt): Auth → Onboarding/KYC → Home (chọn vertical) → mỗi vertical: Overview | Ops(List) | Catalog/Form | Finance | Account Role JWT: PARTNER_OWNER · PARTNER_STAFF (scope store) · LANDLORD · DOCTOR.


6. Screen Matrix — Consumer (tóm tắt + Error ưu tiên #5)

CON MVP hầu hết DONE (≈100 screens). Dưới đây chỉ gap / error còn theo ưu tiên.

Surface Domain Screen (SCR) Trạng thái Mockup Code API
CON System SCR-SYS-EMPTY / OFFLINE / GPS / PAY-* / SESSION DONE Y 868c Y SystemStates + shared N/A
CON System SCR-SYS-PER-VERTICAL-EMPTY PARTIAL Y P (chưa gắn hết list) N/A
CON D-AUTH Splash · Onboard · Login email · Location · Session DONE Y bfb028 Y auth IMP
CON Verticals List→Detail→Action→Success (FNB…ATM) DONE Y 39 JPG Y tags IMP
CON D-CHAT Inbox/Thread/Call DONE P Y IMP
CON D-KYC / Wallet topup-withdraw xem §4 PLANNED/PARTIAL N N/P IMP

Nav CON (chốt — hiện tại giữ): MainTabs: Map | Reels | Social | Chat | Account Services qua MapStack. Role: USER.


7. RBAC & Surfaces (Step 3 — chốt)

Role JWT App Được vào Cấm
USER mobile/ CON tabs + services partner/driver ops (trừ POST /driver/register · KYC · GET /driver/application)
DRIVER driver/ trips · earnings · ratings · chat rider CON book / cart / social — cấm dual-account (WP-AUTH-HAT-SPLIT-01)
PARTNER_OWNER partner/ full store ops + staff admin queues
PARTNER_STAFF partner/ ops theo org (FNB/KS/thuê…) · ẩn tab NV settings owner / payout · IMP WP-PAR-STAFF-JWT-01 · WP-PAR-STAFF-OPS-01
LANDLORD partner/ rental listings · viewings · revenue FNB/Fuel tabs
DOCTOR partner/ medical BN · lịch · DT school/hotel tabs
ADMIN dashboard/ mọi queue + CMS không dùng app CON làm admin

Capability tài xế (không phải Role): RIDE · COURIER · DELIVERY · SCHOOL_TRIP — ROLE-MATRIX.md · GET /users/me/hats.

Guard BE: JwtAuthGuard + RolesGuard + HatSplitInterceptor + ownership filter (storeId/orgId từ JWT, không tin client).

flowchart TB
  subgraph CON["mobile USER"]
    M[Map] --> S[Service stacks]
    R[Reels] --> Soc[Social]
    C[Chat]
    A[Account / Wallet / KYC]
  end
  subgraph PAR["partner roles"]
    PH[Home vertical picker] --> VT[Overview/Ops/Form/Finance/Account]
  end
  subgraph DRV["driver DRIVER"]
    DH[Home online] --> DT[Trips] --> DW[Wallet] --> DR[Ratings] --> DA[Account]
  end
  subgraph ADM["dashboard ADMIN"]
    AO[Overview] --> Q[KYC/Partner/Driver]
    Q --> OPS[Ops/Ledger/Support]
    OPS --> CMS[CMS/Promo]
  end
  API[(api/v1 JWT)]
  CON --> API
  PAR --> API
  DRV --> API
  ADM --> API

8. API contract & data states (Step 4 — chốt)

8.1 Tag ↔ surface (không mở API thứ hai)

Tag CON PAR DRV ADM Data state
auth ● ● ● ● IMP
users ● ○ ○ ● IMP
kyc ● ○ ○ ● IMP — wizard UI thiếu
driver — — ● ● IMP — FE DRV mỏng
partners — ● — ● IMP
rides + WS ● — ● ○ IMP
wallet ● ○ payout ● ○ IMP — topup/withdraw UI thiếu
chat + WS ● ● ● ○ IMP — board shared thiếu
orders/cart/merchants ● ● ○ ○ IMP
hotels/rentals/parking/fuel/pharmacy/medical/schools ● ● — ○ IMP
support/reviews/promotions/notifications/cms ● ○ ○ ● IMP
payments ● — — ● IMP MOCK/MoMo/VNPay
health ○ — — ● IMP deps
atm/places/routing/favorites/assistant/social/addresses/media ● ○ — ○ IMP

8.2 Entity lifecycle (trước khi code sâu)

Entity States (chuẩn) UI bắt buộc
Ride / Trip REQUESTED → MATCHING → ACCEPTED → PICKUP → IN_TRIP → COMPLETED | CANCELLED CON + DRV success/cancel
Order (FNB/Grocery/Pharm) NEW → ACCEPTED → PREPARING → DELIVERING → DONE | CANCELLED CON track + PAR accept
KYC NONE → PENDING → APPROVED | REJECTED Wizard + ADM queue
Partner onboarding DRAFT → SUBMITTED → APPROVED | REJECTED PAR + ADM
Wallet tx PENDING → SUCCESS | FAILED Topup/Withdraw result
Support ticket OPEN → IN_PROGRESS → REPLIED → CLOSED CON + ADM
Hotel booking / Rental viewing / Med appt / School consult theo module hiện có Success + History

8.3 Rule trước code

  1. Endpoint đã có trên /docs với DTO — không invent URL FE.
  2. Response lỗi: Nest HttpException → FE map Empty | Error | Offline (SCR-SYS).
  3. Realtime chỉ /chat và /rides (đã IMP).
  4. Payment live secret = stop-gate (MOCK local OK).

9. Hàng đợi implement (Step 5)

Làm 1 WP / turn, vertical đủ chuỗi L→D→C/E→A→S/E→H.

# WP Surfaces Board Mục tiêu Status
1 WP-FE-DRV-UI-01 DRV BOARD-DRV-01 Tabs Trips: list available/active + detail accept IMP
2 WP-FE-DRV-UI-02 DRV BOARD-DRV-02 In-trip UI + slide pickup/complete + chat entry IMP
3 WP-FE-DRV-UI-03 DRV BOARD-DRV-03 KYC wizard · Wallet · Ratings · Settings pixel IMP
4 WP-FE-ADM-01 ADM BOARD-ADM-01 Overview shell + nav sidebar chốt IMP
5 WP-FE-ADM-02 ADM BOARD-ADM-02 KYC/Partner/Driver queue UX thống nhất IMP
6 WP-FE-ADM-03 ADM BOARD-ADM-03 Ops trips/orders + ledger + support polish IMP
7 WP-FE-KYC-UI-01 CON(+PAR/DRV) BOARD-SHR-KYC Wizard shared IMP
8 WP-FE-CHAT-UI-02 All FE BOARD-SHR-CHAT Empty/Error + PAR/DRV entry IMP
9 WP-FE-WALLET-05 CON/DRV BOARD-SHR-WALLET Topup · Withdraw · Transfer · result IMP
10 WP-FE-PAR-RENT-04 PAR BOARD-PAR-FORM-01 Create listing · tenants · messages IMP
11 WP-FE-PAR-MED-03 PAR BOARD-PAR-FORM-02 Rx + patient edit IMP
12 WP-FE-PAR-SCH-03 PAR BOARD-PAR-FORM-03 Add student · tuition IMP
13 WP-FE-PAR-FNB-03 PAR BOARD-PAR-FORM-04 Menu form · promo · staff IMP
14 WP-FE-SYS-02 CON 868c Gắn empty/error vào mọi list vertical còn thiếu IMP

| 7 | WP-FE-ADM-04 | ADM | BOARD-ADM-04 | CMS edit · Promo admin · Broadcast | IMP |

tiếp (P5f) → DONE_QUEUE. Journey còn thiếu → Wave P6 15 §5–6 (Rate · FNB Success · DRV History/Cancel · PAR bind).

9b. Gap journey còn mở (sync 2026-07-30 — chi tiết ở doc 15)

SCR / gap Surface Status WP P6
SCR-RIDE-RATE CON IMP WP-FE-RIDE-RATE-01
SCR-RIDE-CHAT-WIRE CON IMP WP-FE-RIDE-CHAT-01
SCR-FNB-ORDER-SUCCESS CON IMP WP-FE-FNB-SUCCESS-01
SCR-DRV-TRIP-HISTORY DRV IMP WP-FE-DRV-HIST-01
SCR-DRV-TRIP-CANCEL DRV(+API) IMP WP-DRV-CANCEL-01
SCR-MED-BOOK-SUCCESS CON IMP WP-FE-MED-SUCCESS-01
SCR-RENT-VIEW-SUCCESS CON IMP WP-FE-RENT-SUCCESS-01
SCR-PAR-PROMO-CREATE PAR IMP WP-FE-PAR-PROMO-01
SCR-PAR-PHARM-STOCK PAR IMP WP-FE-PAR-PHARM-STOCK-01
SCR-PAR-MED-RX-CREATE PAR IMP WP-FE-PAR-MED-RX-02
SCR-ADM-VERTICAL-OPS ADM IMP WP-FE-ADM-VERT-01
SCR-ADM-RENT-FUEL-PARK ADM IMP WP-FE-ADM-VERT-02

10. Liên kết

Doc Vai trò
design-boards/ Spec 14 board thiếu
design-index.md JPG hiện có + board planned
04-SURFACES-CONTRACT.md Surface contract
13-FE-SCREEN-GAP-MATRIX.md Gap JPG↔FE lịch sử
15-COMPLETION-AUDIT-MATRIX.md P6 journey UX queue
09-AGENT-AUDIT-QUEUE.md Gate «tiếp»
12-NEXT-WORK-PLAN.md Wave P5/P4/P6