Skip to main content

Theo Dõi Dự Án Golden Lotus App

Cập nhật lần cuối: 2026-05-24

Status Audit 2026-05-24

Repo mobile hiện ở main, sạch và đã push lên origin/main.

Các phần đã có trong code hiện tại:

  • Feature module layout đã phủ Auth, Home, Booking, Offers/Vouchers, Membership, Profile, Branches/Services, Notifications, Social và Lucky Wheel.
  • App gọi Golden Lotus Shop API qua apiClient.graphql() cho phần lớn nghiệp vụ chính; mock vẫn còn để dev/offline qua EXPO_PUBLIC_USE_MOCK.
  • Booking flow đã gọi API thật, đọc booking policy, availability, tạo booking, lịch sử/detail booking; màn chọn dịch vụ đã group theo nhóm hiển thị như Massage BodyMassage Foot.
  • Notification inbox, mark-read và deep link navigation đã có; push device registration hỗ trợ Expo token và Android native FCM token.
  • Lucky Wheel mobile đã có route /lucky-wheel, API client/hook, wheel animation, idempotency key, result panel và refresh point/voucher/profile query keys.
  • Environment docs đã được cập nhật theo core/config/env.ts.

Những audit cũ trước ngày 2026-05-24 giữ giá trị lịch sử, nhưng một số gap trong đó đã được xử lý. Nguồn hiện tại nên đọc cùng:

  • docs/PROJECT_STATUS_AUDIT_2026-05-24.md
  • docs/API_BACKEND_GAPS.md
  • docs/ENVIRONMENT.md

Trạng Thái Hiện Tại

Đã hoàn thành nền tảng kỹ thuật cơ bản, design system baseline, Auth Module, Home Module, Booking Module, Vouchers/Offers Module, Membership/Profile Module, Branches/Services Module và Notifications/Social Module. Route auth, Home, Booking/Schedule, Vouchers/Offers, Membership/Profile, Branches/Services và Notifications/Social hiện đã theo pattern feature module.

Metro dev-client đã được restart sạch cache để smoke test Phase 9 trên Android emulator, sau đó đã dừng để tránh để terminal/process treo.

Phase 10 đã có smoke test tối thiểu, tài liệu env, Android debug build check và nguồn so sánh thay thế từ Spa.pdf. Pixel pass qua Figma API/connector vẫn đang bị chặn vì Figma connector chưa truy cập được ổn định file thiết kế chính, token API từng bị Figma rate limit và ngày 2026-05-07 Figma MCP trả lỗi giới hạn tool call của Starter plan.

Quy Tắc Làm Việc

  • Cập nhật file này mỗi khi hoàn thành task hoặc phát hiện task lớn mới.
  • Giữ app/ làm layer route của Expo Router.
  • Code nghiệp vụ production chuyển vào features/*.
  • Dùng core/* cho API, auth, query, config, storage.
  • Dùng shared/design/*shared/ui/* cho UI mới.
  • Chạy npx tsc --noEmitnpm run lint sau mỗi phase hoặc refactor có rủi ro.

Phase 1 - Foundation

  • Tạo core/config/env.ts
  • Tạo core/api/client.ts
  • Tạo core/api/errors.ts
  • Tạo core/auth/session.store.ts
  • Tạo core/auth/types.ts
  • Tạo core/auth/tokenStorage.ts
  • Tạo core/storage/secureStorage.ts
  • Tạo core/query/queryClient.ts
  • Tạo core/query/keys.ts
  • Re-export legacy api/client.ts
  • Re-export legacy store/authStore.ts
  • Nối app/_layout.tsx vào queryClient chung
  • Thêm restoreSession vào splash/index
  • Chuyển mock flag sang env.useMock
  • Login/register lưu token
  • Logout luôn clear token kể cả khi API logout lỗi
  • Verify npx tsc --noEmit
  • Verify npm run lint

Phase 2 - Design System Baseline

  • Tạo shared/design/colors.ts
  • Tạo shared/design/typography.ts
  • Tạo shared/design/spacing.ts
  • Tạo shared/design/radius.ts
  • Tạo shared/design/shadows.ts
  • Tạo shared/design/tokens.ts
  • Tạo shared/ui/AppText.tsx
  • Tạo shared/ui/Screen.tsx
  • Tạo shared/ui/Card.tsx
  • Tạo shared/ui/AppHeader.tsx
  • Tạo shared/ui/SectionTitle.tsx
  • Nối legacy constants/Colors.ts vào design colors
  • Nối legacy constants/Layout.ts vào design spacing/radius
  • Nối legacy constants/Typography.ts vào design typography
  • Thêm docs/ARCHITECTURE.md
  • Thêm docs/DESIGN_SYSTEM.md

Phase 3 - Auth Module

  • Tạo features/auth/types.ts
  • Tạo features/auth/api.ts
  • Tạo features/auth/hooks.ts
  • Tạo features/auth/index.ts
  • Chuyển màn login sang features/auth/screens/LoginScreen.tsx
  • Chuyển màn register sang features/auth/screens/RegisterScreen.tsx
  • Chuyển màn forgot password sang features/auth/screens/ForgotPasswordScreen.tsx
  • Cho route app/(auth)/* re-export feature screens
  • Login dùng mutation/hook thay vì gọi trực tiếp store
  • Thêm validate email/phone cơ bản
  • Thêm loading và error UI
  • Test login/logout/session restore
  • Verify npx tsc --noEmit
  • Verify npm run lint

Phase 4 - Home Module

  • Tạo features/home/types.ts
  • Tạo features/home/api.ts
  • Tạo features/home/hooks.ts
  • Tạo features/home/mocks.ts
  • Chuyển Home screen sang features/home/screens/HomeScreen.tsx
  • Cho app/(tabs)/home.tsx re-export Home feature screen
  • Tách HomeMemberHeader
  • Tách HomeStatsBar
  • Tách HomeBanner
  • Tách HomeShortcutGrid
  • Tách BranchStrip
  • Tách EventCarousel
  • Tách BeautySection
  • Bỏ hard-code user points/voucher counts khỏi Home
  • Dùng shared/design tokens trong Home qua legacy constants đã nối token
  • Đánh giá shared/ui primitives cho Home: chưa dùng thêm vì các block hiện là custom layout theo Figma
  • Verify npx tsc --noEmit
  • Verify npm run lint
  • Build/install Android để test emulator

Phase 5 - Booking Module

  • Tạo features/booking/types.ts
  • Tạo features/booking/api.ts
  • Tạo features/booking/hooks.ts
  • Tạo features/booking/bookingDraft.store.ts
  • Chuyển booking/location.tsx
  • Chuyển booking/time.tsx
  • Chuyển booking/info.tsx
  • Chuyển booking/cart.tsx
  • Chuyển schedule.tsx
  • Thêm form validation
  • Implement booking submit flow
  • Load booking history từ API/mock
  • Verify typecheck/lint

Phase 6 - Vouchers Và Offers

  • Tạo features/vouchers
  • Tạo features/offers
  • Chuyển app/(tabs)/voucher.tsx
  • Chuyển offers/index.tsx
  • Chuyển offers/[id].tsx
  • Chuyển offers/qr.tsx
  • Chuyển offers/redeem.tsx
  • Bỏ các bottom nav bị duplicate
  • Chuẩn hóa voucher/offer cards qua mock/API/hook và route re-export
  • Verify typecheck/lint

Phase 7 - Membership Và Profile

  • Tạo features/membership
  • Tạo features/profile
  • Chuyển rank.tsx
  • Chuyển point.tsx
  • Chuyển account.tsx
  • Chuyển profile/index.tsx
  • Chuyển settings/privacy/invite screens
  • Tạo shared MemberCard
  • Tạo shared RankProgress
  • Tạo shared PointBadge
  • Verify typecheck/lint

Phase 8 - Branches Và Services

  • Tạo features/branches
  • Tạo features/services
  • Chuyển services/index.tsx
  • Chuyển services/[id].tsx
  • Chuyển map/index.tsx
  • Tách branch/service cards
  • Load data qua feature hooks
  • Verify typecheck/lint

Phase 9 - Notifications Và Social

  • Tạo features/notifications
  • Chuyển notifications.tsx
  • Tạo features/social
  • Chuyển social feed/create/profile
  • Chuẩn hóa post card
  • Chuẩn hóa notification row
  • Verify typecheck/lint

Phase 10 - Figma Và QA

  • Fix quyền Figma connector hoặc quy trình token ổn định
  • Đọc Spa.pdf local và lập audit frame chính
  • Pixel pass Login
  • Pixel pass Home
  • Pixel pass Booking
  • Pixel pass Voucher
  • Pixel pass Profile
  • Cập nhật docs/DESIGN_SYSTEM.md sau pixel pass
  • Thêm test tối thiểu
  • Android build check
  • iOS build check
  • Kiểm tra env staging/production

Blocker Phase 10

  • Figma connector hiện đọc được file mới wUCJBG4ZZP0uWGe4BVjBzK. File cũ ZllZIMyuuJY8rRniXtk5lW vẫn không nên dùng để tránh nhầm nguồn thiết kế.
  • Figma token trong .env gọi được tới API nhưng bị trả HTTP 429 với x-figma-rate-limit-type: low. Cần chờ hết rate limit hoặc dùng account/plan có quota API đủ trước khi lấy metadata chính xác từ Figma.
  • 2026-05-07: Figma MCP connector trả lỗi giới hạn tool call Starter plan khi đọc file wUCJBG4ZZP0uWGe4BVjBzK, node 72:157. Cần nâng quyền/plan hoặc dùng workflow export/screenshot thay thế trước pixel pass sâu.
  • iOS build check chưa chạy vì repo hiện không có thư mục native ios/. Cần tạo native iOS project hoặc chạy qua máy có Xcode/simulator trước khi verify.

Kế Hoạch Task Tiếp Theo - 2026-05-07

Nguồn lập plan: phụ lục yêu cầu App POS/Admin, docs/AI_HANDOFF_FIGMA_SYNC.md, docs/FIGMA_PDF_AUDIT.md, docs/DESIGN_SYSTEM.md, docs/ARCHITECTURE.md và trạng thái code hiện tại. Figma trực tiếp đang bị chặn bởi quota/permission nên task nào cần pixel-perfect phải mở blocker Figma trước.

P0 - Chốt Nguồn Thiết Kế Và Pixel QA

  • Xác nhận một nguồn Figma chuẩn duy nhất: file cũ ZllZIMyuuJY8rRniXtk5lW, file đang đọc được một phần wUCJBG4ZZP0uWGe4BVjBzK, hay content file 0zbB8qe3insf6tFhg7xO4D.
  • Mở quyền/plan Figma MCP hoặc thống nhất quy trình export PNG/PDF thủ công cho các frame chính.
  • Lấy lại screenshot/frame metadata mới cho Home, Login, Booking, Voucher, Account/Profile, Membership, Services, Notifications/Social.
  • Cập nhật docs/DESIGN_SYSTEM.md sau khi chốt token cuối: login dark, header brown, voucher art red, shadow/card/input radius.

P1 - Hoàn Thiện MVP Mobile Theo Figma

  • Pixel pass Login: Google multicolor icon, language selector, vertical offset và auth state/error/loading.
  • Pixel pass Home: header brown, banner/content source, spacing từng section, bottom tab và trạng thái data rỗng/loading.
  • Pixel pass Booking: email required, Chọn dịch vụ dạng select, bỏ branch chips khỏi form chính hoặc chuyển vào flow chọn branch riêng, kiểm tra cart/time.
  • Pixel pass Voucher/Offers: màu art, tab/list spacing, QR/detail/redeem, tránh bottom tab che card cuối.
  • Pixel pass Account/Profile: avatar/profile card, edit information page, social fields WhatsApp/Viber/Kakao, settings/privacy/invite.
  • Pixel pass Membership/Point: rule hiển thị hạng, điểm, lịch sử điểm và trạng thái hết hạn điểm.
  • Pixel pass Services/Branches/Map: branch switching, service list/detail, map placeholder/API key behavior.
  • Pixel pass Notifications/Social: bỏ lorem ipsum, hoàn thiện empty/loading state và nội dung đúng nghiệp vụ.

P1 - API Contract Và Tích Hợp Dữ Liệu Thật

  • Chốt API contract Auth: đăng ký, đăng nhập, OTP SMS, Google/Apple, quên mật khẩu, refresh/logout/session restore.
  • Chốt API contract Profile: thông tin cá nhân, cập nhật profile, avatar, liên kết WhatsApp/Viber/Kakao/social contact.
  • Chốt API contract Branch/Service: đổi chi nhánh, chi tiết chi nhánh, map, danh sách dịch vụ và chi tiết dịch vụ theo chi nhánh.
  • Chốt API contract Membership/Voucher: quy luật tích điểm, hạng Silver/Gold/Platinum/Diamond, thời hạn hạng, điểm hết hạn, đổi điểm/voucher.
  • Chốt API contract Booking/Payment: đặt lịch, lịch sử đặt lịch, thanh toán gateway, QR payment, trạng thái thanh toán.
  • Chốt API contract Promotions/Notifications: banner từ admin, push Firebase, SMS/email/Zalo OA/ZNS và template campaign.
  • Thay dần fallback mock bằng API thật, giữ EXPO_PUBLIC_USE_MOCK cho dev và smoke test.

P2 - Scope Chưa Có Hoặc Cần Làm Rõ

  • OTP/SMS vendor: xác nhận eSMS hoặc vendor khác, rate limit, retry và lỗi OTP.
  • Payment gateway: chọn cổng thanh toán và chuẩn QR.
  • Lucky wheel core: màn mobile, API client/hook, quay từ server result, lịch sử lượt quay và link notification đã có. Còn UAT wheel thật và chốt rule nâng cao như daily reset/inventory cap nếu business cần.
  • Campaign/customer segment: mobile nhận push/voucher/point từ admin theo nhóm khách hàng.
  • Settings app: ngôn ngữ, notification preferences, security/privacy và liên kết tài khoản.

P3 - QA, Release Và Vận Hành

  • Chạy npm run test:smoke, npx tsc --noEmit, npm run lint sau mỗi cụm chỉnh UI/API.
  • Android emulator screenshot regression cho các route chính sau pixel pass.
  • Tạo/verify iOS native project hoặc chạy iOS simulator trên máy có Xcode.
  • Cập nhật Expo patch versions: expo, expo-linking, expo-web-browser theo note SDK 54 nếu không gây regression.
  • Kiểm tra .env.example, staging/production env, API base URL, map/payment/ notification keys trước release.

P4 - Phụ Thuộc Admin/API Ngoài Mobile Repo

  • Admin dashboard realtime khách hàng/point, không hiển thị doanh thu tiền.
  • Customer list, point history, point expiry, saved filters và customer groups.
  • Marketing campaign templates: push, SMS, email, Zalo, Viber, WhatsApp, Kakao.
  • Admin cấu hình point/voucher, promotion banners, service catalog, booking, payment và lucky wheel.
  • Role-based access: Admin, Quản lý/Marketing/Khách hàng, Lễ tân.

Quyết Định Cần Chốt Với Stakeholder

  • Công thức tích điểm theo thanh toán/đơn hàng.
  • Danh sách hạng thành viên và thời hạn giữ hạng.
  • Quy định điểm thưởng/điểm nạp và ngày hết hạn từng loại điểm.
  • Vendor SMS/email/Zalo/payment/map chính thức.
  • Figma source of truth và cách lấy asset/screenshot lặp lại được.

Backlog Cho Dev Team - PM Breakdown 2026-05-07

Mục tiêu: biến scope hiện tại thành các task đủ nhỏ để giao cho dev, QA và BE/API. Ưu tiên trước là hoàn thiện MVP mobile có UI sát Figma, không crash, có data contract rõ và giữ mock mode để demo khi API chưa sẵn sàng.

Sprint 1 - Gỡ Blocker Thiết Kế Và Chốt UI Baseline

GL-001 - Chốt Figma source of truth

  • Owner: PM/Design
  • Dev support: Frontend lead
  • Priority: P0
  • Dependency: quyền Figma hoặc file export từ designer
  • Task:
    • Xác nhận file Figma chính dùng cho mobile app.
    • Liệt kê frame route chính: Login, Home, Booking, Voucher, Account/Profile, Rank/Point, Services/Map, Notifications/Social.
    • Chốt cách export asset/screenshot lặp lại được nếu Figma MCP tiếp tục bị chặn.
  • Acceptance:
    • docs/PROJECT_TRACKING.md có file key/frame map cuối cùng.
    • Không còn 2 nguồn Figma cạnh tranh cho cùng một màn.

GL-002 - Cập nhật design tokens cuối

  • Owner: Frontend
  • Priority: P0
  • Dependency: GL-001 hoặc Spa.pdf tạm thời
  • Task:
    • Chuẩn hóa shared/design/colors.ts: login dark, header brown, voucher red.
    • Cập nhật radius/shadow/input/button token nếu lệch Figma.
    • Đồng bộ constants/* legacy với token mới.
    • Cập nhật docs/DESIGN_SYSTEM.md.
  • Acceptance:
    • Không hard-code màu token phổ biến trong screen mới.
    • npx tsc --noEmitnpm run lint pass.

GL-003 - Thiết lập screenshot QA checklist

  • Owner: QA/Frontend
  • Priority: P0
  • Dependency: Android emulator/dev build
  • Task:
    • Tạo checklist screenshot route chính trên Android.
    • Ghi path screenshot chuẩn vào tracking sau mỗi pass.
    • So sánh thủ công với Figma/PDF theo từng màn.
  • Acceptance:
    • Có checklist pass/fail cho từng route.
    • Bug UI được tách thành ticket nhỏ, không gom chung "fix UI".

Sprint 2 - Pixel Pass MVP Mobile

GL-010 - Login/Auth UI pixel pass

  • Owner: Frontend
  • Priority: P1
  • Files: features/auth/screens/*, locales/*
  • Task:
    • Fine-tune login page theo Figma/PDF.
    • Thay Google icon đơn sắc bằng multicolor asset/component.
    • Kiểm tra loading/error/disabled state cho login.
    • Review register/forgot-password để không lệch quá xa design baseline.
  • Acceptance:
    • Login khớp screenshot Android trong sai số nhỏ.
    • Login/logout/session restore vẫn pass smoke test.

GL-011 - Home UI pixel pass

  • Owner: Frontend
  • Priority: P1
  • Files: features/home/screens/*, features/home/components/*
  • Task:
    • Cân lại header, member card, stats, banner, shortcut, discount section.
    • Chốt banner/content asset theo Figma chính.
    • Thêm/kiểm tra empty/loading/error state.
    • Kiểm tra bottom tab không che nội dung.
  • Acceptance:
    • Home không còn content mock sai nghiệp vụ.
    • Android screenshot pass với Figma/PDF baseline.

GL-012 - Booking flow pixel pass

  • Owner: Frontend
  • Priority: P1
  • Files: features/booking/screens/*, features/booking/bookingDraft.store.ts
  • Task:
    • Email liên hệ * required đúng design.
    • Chọn dịch vụ chuyển từ text input sang select/tappable row có chevron.
    • Bỏ branch chips khỏi form chính hoặc chuyển sang bước chọn branch riêng.
    • Kiểm tra flow Location -> Time -> Info -> Cart -> Submit.
  • Acceptance:
    • Form validation rõ ràng, không submit thiếu required fields.
    • Booking smoke test không redbox.

GL-013 - Voucher/Offers pixel pass

  • Owner: Frontend
  • Priority: P1
  • Files: features/vouchers/*, features/offers/*
  • Task:
    • Cân tab voucher, card spacing, dashed separator, voucher art color.
    • Kiểm tra offer list/detail/QR/redeem.
    • Đảm bảo list dài không bị bottom tab che item cuối.
  • Acceptance:
    • Voucher states: unused/gift/used/expired hiển thị đúng.
    • QR/redeem flow không dùng placeholder gây hiểu nhầm nếu chưa có API.

GL-014 - Account/Profile pixel pass

  • Owner: Frontend
  • Priority: P1
  • Files: features/profile/*, shared/ui/member/*
  • Task:
    • Cân profile brown card, avatar, menu rows và logout.
    • Làm rõ màn edit profile theo page 50: avatar, required fields, disabled email.
    • Thêm social fields WhatsApp, Viber, Kakao theo yêu cầu.
  • Acceptance:
    • Account/Profile screenshot pass baseline.
    • Form update profile có validation và trạng thái lưu/lỗi.

GL-015 - Membership/Point pixel pass

  • Owner: Frontend
  • Priority: P1
  • Files: features/membership/*, shared/ui/member/*
  • Task:
    • Hiển thị rank, progress, point summary và lịch sử điểm rõ ràng.
    • Chuẩn bị UI cho điểm hết hạn và hạng thành viên.
    • Tách rule chưa chốt thành config/mock để dễ thay API.
  • Acceptance:
    • UI không hard-code rule kinh doanh chưa được stakeholder chốt.
    • Rank/Point tab pass smoke test.

GL-016 - Services/Branches/Map pixel pass

  • Owner: Frontend
  • Priority: P1
  • Files: features/services/*, features/branches/*
  • Task:
    • Chuẩn hóa service landing/list/detail theo Figma.
    • Làm rõ branch switching và data theo chi nhánh.
    • Map placeholder phải có fallback khi thiếu API key.
  • Acceptance:
    • Đổi branch không làm UI hiển thị data sai rõ ràng.
    • Services/Map route không crash khi offline/mock.

GL-017 - Notifications/Social cleanup

  • Owner: Frontend
  • Priority: P1
  • Files: features/notifications/*, features/social/*
  • Task:
    • Bỏ lorem ipsum trong notification mock.
    • Hoàn thiện empty/loading/error state.
    • Kiểm tra social feed/create/profile theo scope MVP.
  • Acceptance:
    • Không còn text placeholder lộ trên UI.
    • Notifications/Social smoke test pass.

Sprint 3 - API Contract Và Integration Layer

GL-020 - Auth API contract

  • Owner: Backend/API
  • Frontend support: Auth dev
  • Priority: P1
  • Task:
    • Định nghĩa endpoint login/register/forgot-password/OTP/social login/refresh/logout.
    • Chuẩn response token, user profile, error code.
    • Xác nhận SMS vendor OTP.
  • Acceptance:
    • Có OpenAPI/Postman hoặc contract doc.
    • Frontend features/auth/api.ts map được contract mà không đổi screen.

GL-021 - Profile API contract

  • Owner: Backend/API
  • Frontend support: Profile dev
  • Priority: P1
  • Task:
    • Endpoint get/update profile, avatar upload, social contacts.
    • Xác định field bắt buộc và field disabled như email/phone.
  • Acceptance:
    • Profile form có schema rõ.
    • Error validation từ BE hiển thị được trên app.

GL-022 - Branch/Service API contract

  • Owner: Backend/API
  • Frontend support: Services dev
  • Priority: P1
  • Task:
    • Endpoint branch list/detail/map metadata.
    • Endpoint service categories/list/detail theo branch.
    • Chuẩn image URL, price/duration/status.
  • Acceptance:
    • Frontend thay mock bằng API qua EXPO_PUBLIC_USE_MOCK=false.

GL-023 - Membership/Voucher API contract

  • Owner: Backend/API
  • Frontend support: Membership/Offer dev
  • Priority: P1
  • Task:
    • Chốt rule điểm, rank, expiry, redeem voucher.
    • Endpoint point summary/history, rank tiers, voucher list/detail/redeem/QR.
  • Acceptance:
    • Không còn rule điểm hard-code trong UI.
    • App xử lý được voucher expired/used/insufficient points.

GL-024 - Booking/Payment API contract

  • Owner: Backend/API
  • Frontend support: Booking dev
  • Priority: P1
  • Task:
    • Endpoint availability/time slots, booking create/detail/history/cancel.
    • Chốt payment gateway và QR payment status.
    • Chuẩn trạng thái booking/payment.
  • Acceptance:
    • Booking submit flow dùng API thật trong staging.
    • App xử lý pending/success/failed/cancelled.

GL-025 - Promotions/Notifications API contract

  • Owner: Backend/API
  • Frontend support: Home/Notification dev
  • Priority: P2
  • Task:
    • Endpoint promotion banners/popup từ admin.
    • Push Firebase payload format.
    • SMS/email/Zalo message status nếu app cần hiển thị.
  • Acceptance:
    • Home banner không cần release app để thay nội dung.
    • Notification list có payload schema rõ.

Sprint 4 - Product Scope Cần Làm Rõ Trước Khi Build

GL-030 - Lucky wheel PRD / UAT Hardening

  • Owner: PM
  • Priority: P2
  • Task:
    • Core mobile/admin/backend đã có; PM cần chốt rule vận hành cuối cùng trước public rollout.
    • Xác nhận rule chơi, giải thưởng, giới hạn lượt, daily reset/inventory cap nếu cần, điều kiện nhận thưởng và luồng claim giải giá trị cao.
    • UAT app screen, admin setup và API/event tracking với wheel/prize/voucher thật.
  • Acceptance:
    • Active wheel thật quay được từ mobile, award point/voucher đúng, hết lượt và prize không hợp lệ được xử lý rõ.

GL-031 - Marketing campaign/customer segment PRD

  • Owner: PM/Marketing/Backend
  • Priority: P2
  • Task:
    • Xác định nhóm khách, filter, template và kênh gửi.
    • Chốt kênh MVP: Push/SMS/Email/Zalo/Viber/WhatsApp/Kakao.
    • Xác định app chỉ nhận notification hay có inbox/history.
  • Acceptance:
    • Scope mobile và admin được tách rõ.

GL-032 - Payment vendor decision

  • Owner: PM/Backend/Finance
  • Priority: P1
  • Task:
    • Chọn payment gateway.
    • Chốt QR payment flow, refund/cancel, reconciliation.
  • Acceptance:
    • Booking/payment ticket có vendor và API docs cụ thể.

QA Và Release Tasks

GL-040 - Regression pass Android

  • Owner: QA
  • Priority: P1
  • Task:
    • Chạy route checklist: Auth, Home, Booking, Voucher, Rank/Point, Account, Services/Map, Notifications/Social.
    • Chụp screenshot các màn chính.
  • Acceptance:
    • Không redbox/crash.
    • Bugs có ticket riêng kèm screenshot.

GL-041 - Automated checks

  • Owner: Frontend/QA
  • Priority: P1
  • Task:
    • Chạy npm run test:smoke.
    • Chạy npx tsc --noEmit.
    • Chạy npm run lint.
    • Chạy Android debug build nếu có native thay đổi.
  • Acceptance:
    • Tất cả check pass trước khi merge/release.

GL-042 - iOS readiness

  • Owner: Mobile lead
  • Priority: P2
  • Dependency: máy có Xcode/simulator hoặc tạo native iOS project
  • Task:
    • Tạo/verify iOS project nếu scope release iOS.
    • Chạy iOS build/simulator smoke test.
  • Acceptance:
    • Có log build iOS pass hoặc blocker rõ.

Verify Gần Nhất

  • 2026-05-06: npx tsc --noEmit pass
  • 2026-05-06: npm run lint pass
  • 2026-05-06: Auth screens đã migrate sang features/auth; Metro đã restart sau đó
  • 2026-05-06: Android emulator pass smoke test auth: login bằng phone, logout, force-stop rồi mở lại vẫn restore session vào Home
  • 2026-05-06: Home đã migrate sang features/home; npx tsc --noEmit pass
  • 2026-05-06: Home đã migrate sang features/home; npm run lint pass
  • 2026-05-06: Home smoke test trên Android emulator qua Metro dev-client pass, không còn redbox sau migrate module
  • 2026-05-06: Booking đã migrate sang features/booking; npx tsc --noEmit pass
  • 2026-05-06: Booking đã migrate sang features/booking; npm run lint pass
  • 2026-05-06: Booking smoke test trên Android emulator qua Metro dev-client pass cho booking/locationbooking/time
  • 2026-05-06: npm run android build debug pass và install/open app trên Android emulator Pixel_8_Pro
  • 2026-05-06: Vouchers/Offers đã migrate sang features/vouchersfeatures/offers; npx tsc --noEmit pass
  • 2026-05-06: Vouchers/Offers đã migrate sang features/vouchersfeatures/offers; npm run lint pass
  • 2026-05-06: Smoke test Android emulator pass cho offers/index và tab voucher, không redbox
  • 2026-05-06: Membership/Profile đã migrate sang features/membershipfeatures/profile; npx tsc --noEmit pass
  • 2026-05-06: Membership/Profile đã migrate sang features/membershipfeatures/profile; npm run lint pass
  • 2026-05-06: Smoke test Android emulator pass cho rank, point, account, profile, profile/settings, profile/privacy, profile/invite, không redbox
  • 2026-05-06: Bổ sung key i18n thiếu cho Privacy để không lộ text dạng privacy.* trên UI
  • 2026-05-06: Branches/Services đã migrate sang features/branchesfeatures/services; npx tsc --noEmit pass
  • 2026-05-06: Branches/Services đã migrate sang features/branchesfeatures/services; npm run lint pass
  • 2026-05-06: Smoke test Android emulator pass cho services, services/massage, map, không redbox
  • 2026-05-06: Notifications/Social đã migrate sang features/notificationsfeatures/social; npx tsc --noEmit pass
  • 2026-05-06: Notifications/Social đã migrate sang features/notificationsfeatures/social; npm run lint pass
  • 2026-05-06: Smoke test Android emulator pass cho notifications, social, social/create, social/profile, không redbox
  • 2026-05-06: Thêm npm run test:smoke; kiểm tra i18n parity, route re-export, feature barrel tối thiểu và package id pass
  • 2026-05-06: npx tsc --noEmit pass sau Phase 10
  • 2026-05-06: npm run lint pass sau Phase 10
  • 2026-05-06: ./gradlew assembleDebug pass trong android/
  • 2026-05-06: Thêm .env.exampledocs/ENVIRONMENT.md cho development/staging/production env
  • 2026-05-06: Figma connector check bị chặn vì account connector không có quyền file thiết kế chính
  • 2026-05-06: Figma token API check bị chặn bởi HTTP 429 rate limit
  • 2026-05-06: Đọc Spa.pdf local, render 60 frame và thêm docs/FIGMA_PDF_AUDIT.md
  • 2026-05-06: Home đã thay icon/image chính bằng asset lấy từ Figma connector file wUCJBG4ZZP0uWGe4BVjBzK, node 72:157: top chips, QR, bell, shortcut, branch, event image/meta, beauty image và bottom tab; npx tsc --noEmit, npm run lint pass; Android emulator không crash/redbox.
  • 2026-05-06: Home đã thay content/avatar/banner theo Figma content file 0zbB8qe3insf6tFhg7xO4D, node 1:3844; asset lưu tại assets/figma/content/home_avatar.pngassets/figma/content/home_banner.png; Android emulator hiển thị đúng avatar Nguyễn Thanh Tùng, banner chai tinh dầu nền vàng, Gold Member và 99999 Golden Point.
  • 2026-05-06: Home đã bỏ block mock EventHealthy & Beauty khỏi màn chính, thay bằng Your discount theo content Figma; dọn Lorem ipsum và ngày mock khỏi features/home; npx tsc --noEmit, npm run lint pass.
  • 2026-05-06: Login đã rewrite theo Spa.pdf page 01: nền dark brown, selector cờ Việt Nam, title/input/nút Tiếp tục/Đăng ký và social buttons; app mặc định tiếng Việt để khớp thiết kế; npx tsc --noEmit, npm run lint pass; build/run trên Android emulator qua npm run android pass và screenshot kiểm tra tại /tmp/goldenlotus_login_final.png.
  • 2026-05-07: Đọc lại docs yêu cầu, handoff Figma, audit PDF/Figma và trạng thái code; thử Figma MCP với file wUCJBG4ZZP0uWGe4BVjBzK, node 72:157 nhưng bị chặn bởi giới hạn Starter plan; bổ sung kế hoạch task tiếp theo vào file này.