Priority Action List — App Pre-Launch Issues
Last Updated: 14/07/2026
Type: Priority Checklist — Pre-Launch Issues
Reporter: Product Owner
[!IMPORTANT] This is a list of high priority issues that must be resolved before the App launches to real users. Ordered by impact level.
1. 🔐 Login — Complete Authentication Flow
Issue: The login flow is incomplete — especially the OTP input screen and the PIN setup/entry screen.
Requirements:
- The "Login" / "Submit" button must be positioned above the numeric keyboard (so it is not blocked by the keyboard when typing OTP or PIN) — see
login-button-relocation.md - Correctly handle error states: incorrect OTP, expired OTP (60s countdown), and incorrect PIN entered more than X times.
- Ensure a smooth continuous flow: Enter Phone Number → Receive OTP → Verify → Create PIN (first time) / Enter PIN (subsequent times).
- Thoroughly test on both iOS and Android.
Assignee: Mobile Dev + Backend Dev
Priority: 🔴 P0 — Mandatory before launch
2. 📐 Layout & Aspect Ratio — Prevent Visual Breakage & Scale Issues
Issue: Several screens have broken layouts or scale inconsistently across different screen sizes.
Requirements:
- Check all screens on at least 4 representative device sizes:
- Small iOS: iPhone SE (375×667)
- Regular iOS: iPhone 14 (390×844)
- Small Android: ~360×800
- Large Android: ~412×915
- Do NOT use absolute hardcoded pixel values for layout widths — use
flex, percentage%, orDimensions.get('window'). - Header, navigation bar, and bottom tab bar: align correctly using
SafeAreaView/useSafeAreaInsets()— avoid overlapping with notches or the Dynamic Island. - Specific recorded layout issues:
- BigFan header misalignment → see
bigfan-header-layout-correction.md - Small typography/gauge font size → see
typography-and-gauge-design-spec.md
- BigFan header misalignment → see
Assignee: Mobile Dev
Priority: 🔴 P0 — Direct impact on user experience
3. 🖼️ Avatar & Article / Event Layout
Issue: Images in news articles and the event page do not display in the correct ratio, and the article layout is unorganized.
Requirements:
- Article Avatar (thumbnail):
- Display with the correct aspect ratio — no stretching, distorting, or bad cropping.
- Recommended: Use
resizeMode="cover"on a container with a fixed ratio (e.g.,16:9or4:3).
- News Card Layout:
- Standardize the card layout: image on top, title + short summary below, publish date + tags in the footer.
- Titles should not be truncated past 2 lines (
numberOfLines={2}). - Summaries should not exceed 3 lines.
- Article/Event Detail Page Layout:
- The banner image at the top should maintain its original aspect ratio.
- Render CMS rich text content correctly: headings, paragraphs, bullet lists, and inline images.
- CMS: Verify that the Admin can upload and update the avatar image for articles and events.
Assignee: Mobile Dev + CMS Admin
Priority: 🟠 P1 — Direct impact on content quality
4. 🎠 Activity Slider Images — Aspect Ratio & Customization
Issue: Images in the homepage banner slider (or event slider) do not display in the correct aspect ratio and cannot be easily updated from the CMS.
Requirements:
- Correct Aspect Ratio:
- The slider should use a fixed aspect ratio (recommended:
16:9or2:1). - Images uploaded to the CMS must be cropped/resized to match this ratio before displaying on the app — or the app must use
resizeMode="cover"with a fixed aspect ratio container.
- The slider should use a fixed aspect ratio (recommended:
- Easy Updates via CMS:
- The Admin must be able to add, delete, and reorder slides from the CMS without needing to release a new app version.
- Each slide should support: an image and a redirect link (deeplinking to a specific event or news article).
- Standard Image Dimensions: Provide Admin instructions for standard image dimensions (e.g.,
1200×600px, max file size 500KB).
Assignee: Mobile Dev + CMS Admin
Priority: 🟠 P1 — High impact on user's first impression
5. 🎁 Welcome Bonus of 10k Points — Is it CMS-configurable?
Issue: The policy to grant a 10,000 GPoint Welcome Bonus to newly registered accounts — currently unclear if active and if it can be configured in the CMS.
Questions:
❓ Has the CMS implemented the setting for the Welcome Bonus amount?
❓ If we want to change from 10,000 Points to 15,000 Points, where does the Admin configure it?
Requirements:
- Backend: Confirm that the registration API (
POST /register) triggers the welcome bonus event. - CMS: Implement the following configuration fields:
New Member Welcome Settings:├── Welcome GPoints: [10000] ← Changeable by Admin├── Welcome Point Validity: [365 days]└── Enable Program: [✅ Active]
- If not yet implemented in the CMS: Dev must add this settings module. Do NOT hardcode
10000in the backend code. - Testing: Create a new account → verify that the wallet receives
+10,000 GPointsand the transaction history shows the "Welcome Bonus" transaction.
Assignee: Backend Dev + CMS Dev
Priority: 🟠 P1 — Direct impact on new user onboarding value
6. 🎡 Daily Popup (Daily Lucky Spin Popup) — Not showing up & Configuration mystery
Issue: The Lucky Spin Popup does not show up when opening the App. It is unclear where to configure the daily popup frequency limit during the minigame event.
Questions:
❓ Is the spin popup disabled or is there a trigger logic error?
❓ Where is the maximum daily popup limit configured in the CMS?
6.1 Check why the popup is not showing
- Confirm if the
luckySpinEnabledflag in CMS/bootstrap config is set to true. - Check the trigger logic on the Mobile App: the popup must show exactly once per day when the user opens the App for the first time in a calendar day (after 00:00).
- Check if the
hasSeenPopupTodaylocal state has a bug (e.g., permanently savingtrueinstead of resetting at midnight).
6.2 CMS Requirements — Minigame Popup Config
The CMS needs to support the following settings for the Lucky Spin module:
| CMS Setting | Default Value | Description |
|---|---|---|
luckySpinEnabled | false | Enable/Disable the entire spin wheel module |
dailyPopupEnabled | true | Enable/Disable automatic popup when opening the App |
maxPopupPerDay | 1 | Max times the popup shows to a user per day |
popupStartDate | — | Start date of the Minigame campaign |
popupEndDate | — | End date of the Minigame campaign |
extraSpinsPerCampaign | 0 | Extra marketing spins granted (outside the daily free spins) |
extraSpinsExpireDays | 3 | Validity of extra marketing spins (see lucky-spin-mechanics-and-widget.md) |
- If not yet available: Add these fields under the CMS settings.
- Recommended path: Settings > Minigames > Lucky Spin.
Assignee: Backend Dev + CMS Dev + Mobile Dev
Priority: 🟡 P2 — Critical for minigame launch, cannot launch without active popups
Summary of Status
| # | Item | Assignee | Priority | Status |
|---|---|---|---|---|
| 1 | Complete Login flow | Mobile + BE | 🔴 P0 | ⏳ In Progress |
| 2 | Responsive layout (no scale issues) | Mobile | 🔴 P0 | ⏳ In Progress |
| 3 | News/Event images & layouts | Mobile + CMS | 🟠 P1 | ❓ Unconfirmed |
| 4 | Active banner aspect ratio | Mobile + CMS | 🟠 P1 | ❓ Unconfirmed |
| 5 | Welcome bonus 10K Points | BE + CMS | 🟠 P1 | ❓ CMS Pending |
| 6 | Daily Spin Popup | BE + CMS + Mobile | 🟡 P2 | ❌ Not Working |