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 quaEXPO_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 BodyvàMassage 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.mddocs/API_BACKEND_GAPS.mddocs/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/*vàshared/ui/*cho UI mới. - Chạy
npx tsc --noEmitvànpm run lintsau 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.tsxvàoqueryClientchung - Thêm
restoreSessionvà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.tsvào design colors - Nối legacy
constants/Layout.tsvào design spacing/radius - Nối legacy
constants/Typography.tsvà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.tsxre-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/designtokens trong Home qua legacy constants đã nối token - Đánh giá
shared/uiprimitives 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.pdflocal 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.mdsau 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ũZllZIMyuuJY8rRniXtk5lWvẫn không nên dùng để tránh nhầm nguồn thiết kế. - Figma token trong
.envgọi được tới API nhưng bị trảHTTP 429vớix-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, node72: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ầnwUCJBG4ZZP0uWGe4BVjBzK, hay content file0zbB8qe3insf6tFhg7xO4D. - 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.mdsau 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_MOCKcho 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 lintsau 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-browsertheo 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.mdcó 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.pdftạ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.
- Chuẩn hóa
- Acceptance:
- Không hard-code màu token phổ biến trong screen mới.
npx tsc --noEmitvànpm run lintpass.
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.tsmap đượ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.
- Frontend thay mock bằng API qua
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.
- Chạy
- 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 --noEmitpass - 2026-05-06:
npm run lintpass - 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 --noEmitpass - 2026-05-06: Home đã migrate sang
features/home;npm run lintpass - 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 --noEmitpass - 2026-05-06: Booking đã migrate sang
features/booking;npm run lintpass - 2026-05-06: Booking smoke test trên Android emulator qua Metro dev-client pass cho
booking/locationvàbooking/time - 2026-05-06:
npm run androidbuild debug pass và install/open app trên Android emulatorPixel_8_Pro - 2026-05-06: Vouchers/Offers đã migrate sang
features/vouchersvàfeatures/offers;npx tsc --noEmitpass - 2026-05-06: Vouchers/Offers đã migrate sang
features/vouchersvàfeatures/offers;npm run lintpass - 2026-05-06: Smoke test Android emulator pass cho
offers/indexvà tabvoucher, không redbox - 2026-05-06: Membership/Profile đã migrate sang
features/membershipvàfeatures/profile;npx tsc --noEmitpass - 2026-05-06: Membership/Profile đã migrate sang
features/membershipvàfeatures/profile;npm run lintpass - 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/branchesvàfeatures/services;npx tsc --noEmitpass - 2026-05-06: Branches/Services đã migrate sang
features/branchesvàfeatures/services;npm run lintpass - 2026-05-06: Smoke test Android emulator pass cho
services,services/massage,map, không redbox - 2026-05-06: Notifications/Social đã migrate sang
features/notificationsvàfeatures/social;npx tsc --noEmitpass - 2026-05-06: Notifications/Social đã migrate sang
features/notificationsvàfeatures/social;npm run lintpass - 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 --noEmitpass sau Phase 10 - 2026-05-06:
npm run lintpass sau Phase 10 - 2026-05-06:
./gradlew assembleDebugpass trongandroid/ - 2026-05-06: Thêm
.env.examplevàdocs/ENVIRONMENT.mdcho 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 429rate limit - 2026-05-06: Đọc
Spa.pdflocal, render 60 frame và thêmdocs/FIGMA_PDF_AUDIT.md - 2026-05-06: Home đã thay icon/image chính bằng asset lấy từ Figma connector
file
wUCJBG4ZZP0uWGe4BVjBzK, node72:157: top chips, QR, bell, shortcut, branch, event image/meta, beauty image và bottom tab;npx tsc --noEmit,npm run lintpass; Android emulator không crash/redbox. - 2026-05-06: Home đã thay content/avatar/banner theo Figma content file
0zbB8qe3insf6tFhg7xO4D, node1:3844; asset lưu tạiassets/figma/content/home_avatar.pngvàassets/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
EventvàHealthy & Beautykhỏi màn chính, thay bằngYour discounttheo content Figma; dọnLorem ipsumvà ngày mock khỏifeatures/home;npx tsc --noEmit,npm run lintpass. - 2026-05-06: Login đã rewrite theo
Spa.pdfpage 01: nền dark brown, selector cờ Việt Nam, title/input/nútTiế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 lintpass; build/run trên Android emulator quanpm run androidpass 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, node72:157như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.