App Readiness

Production & App Store submission checklist

← Public Site
84%

⚠️ Almost Ready

37 passed7 need attention0 failing

Last checked: 12:44:22

Authentication

1/1 passed

Base44 Auth system active

Email/password, Google, Apple login all handled by Base44 platform

Passed

Sign up flow

Join page at /join — handled by platform

View Passed

Login redirect

redirectToLogin() used throughout

Passed

Logout

base44.auth.logout() wired in Profile screen

Passed

Delete account page

Available at /mobile/delete-account

View Passed

Apple Sign In (iOS)

Handled by Base44 OAuth — StoreKit compliant

Passed

Google Sign In (Android)

Handled by Base44 OAuth — Play Store compliant

Passed

Database & Backend

9/9 passed

TV Programmes entity

TVProgramme records accessible

Passed

Radio Settings entity

RadioSettings accessible

Passed

News Articles entity

NewsArticle records accessible

Passed

Community Posts entity

CommunityPost records accessible

Passed

Events entity

Event records accessible

Passed

Advertisements entity

Advertisement records accessible

Passed

Competitions entity

RadioCompetition records accessible

Passed

Radio stream URL set

RadioKing stream URL configured in RadioSettings

View Passed

Radio station name set

station_name field set in RadioSettings

Passed

Content Readiness

3/4 passed

TV content published

At least one published TVProgramme

View Passed

News content published

At least one published NewsArticle

View Passed

Community posts exist

At least one active CommunityPost

View Passed

Live broadcast configured

At least one LiveBroadcast record created

View Needs Attention

Mobile Features

6/6 passed

Radio auto-reconnect

globalAudio singleton persists across navigation

Passed

Offline error state

StreamErrorState shown when all data calls fail

Passed

Push notification permission explainer

PermissionExplainer shown before OS prompt

Passed

Quiet hours respected

notificationManager.js enforces quiet window

Passed

Deep linking from notifications

Notification URLs route to correct screen

Passed

Notification categories

TV, Radio, Community, Events, Competitions

Passed

Security

3/4 passed

Admin routes protected

Admin pages check user.role === 'admin'

Passed

No API keys in frontend

All keys stored server-side in Base44 secrets

Passed

Upload file validation

uploadValidator.js enforces MIME type and size limits

Passed

React error boundary

Add a global ErrorBoundary component to catch runtime errors gracefully

Needs Attention

Uploads

4/4 passed

Profile image upload

Base44 UploadFile integration used

Passed

Video upload

200MB limit enforced client + server

Passed

Admin media upload

AdminShorts, AdminLiveTV, AdminAdvertising

Passed

File size limits enforced

10MB images, 200MB video

Passed

Push Notifications

4/4 passed

Permission request flow

Shown contextually, not on first launch

Passed

Quiet hours

Configurable 10pm–8am window

Passed

Deep link routing

url field in notification data

Passed

Category subscriptions

Per-category opt-in in Notification Settings

Passed

App Store Compliance (iOS + Android)

8/8 passed

Privacy Policy page

Available at /mobile/privacy

View Passed

Terms of Service page

Available at /mobile/terms

View Passed

Community Rules page

Available at /mobile/community-rules

View Passed

Delete Account page

Available at /mobile/delete-account

View Passed

iOS IAP (Apple In-App Purchase)

PremiumUpgradeModal triggers StoreKit via native bridge

Passed

Android IAP (Google Play Billing)

PremiumUpgradeModal triggers Play Billing via native bridge

Passed

No Stripe in native app

Stripe only used for web advertiser bookings, not in mobile IAP

Passed

Permission rationale shown

PermissionExplainer shown before Notifications OS prompt

Passed

Native App Assets (requires Xcode / Android Studio)

2/6 passed

App name set

'Channel ONE Africa' — confirm in Xcode project target

Passed

App description written

Ready — see app store metadata below

Passed

Bundle / Package ID

Set com.channelone.africa in Xcode + build.gradle

Needs Attention

App icon (all sizes)

Generate 20×20 → 1024×1024 from logo using Xcode asset catalog or makeappicon.com

Needs Attention

App Store screenshots

Capture iPhone 6.5", 5.5", iPad 12.9" — use simulator or real device

Needs Attention

Privacy manifest (iOS 17+)

Add PrivacyInfo.xcprivacy to Xcode target. Required API reasons: NSUserDefaults, NSFileManager

Needs Attention

App Store Metadata

Copy this directly into App Store Connect and Google Play Console

App NameChannel ONE Africa
Subtitle (iOS)Live TV · Radio · News · Community
Category (iOS)Entertainment
Secondary CategoryNews
Bundle ID (iOS)com.channelone.africa
Package Name (Android)com.channelone.africa
Version1.0.0
Build Number1
Minimum iOS16.0
Minimum AndroidAPI 26 (Android 8.0)
Age Rating12+ (mature news themes, community discussions)

Short Description (80 chars):

Live TV, radio, breaking news and community — Channel ONE Africa.

Full Description:

Channel ONE Africa brings South Africa's premium broadcaster straight to your screen. WATCH & LISTEN • Live TV streaming across all devices • Channel ONE Radio — live 24/7 • Original series, interviews and exclusive shows • Podcast library updated daily STAY INFORMED • Breaking news from across Africa • Live event coverage • Celebrity and entertainment news COMMUNITY • Join discussions, polls and competitions • React and share with millions of Channel ONE members GO PREMIUM Subscribe for ad-free viewing, exclusive content and VIP event access. Real People. Real Stories. Real Impact.

Keywords (iOS — comma separated):

south africa,live tv,radio,news,channel one,africa,streaming,broadcast,entertainment,podcast

Required Permissions Manifest

Only request these — nothing else

Push Notifications

iOS + Android

Breaking news, live broadcast alerts and competition results

Camera (optional)

iOS + Android

Community profile photo — only requested if user taps Upload Photo

Photo Library (optional)

iOS + Android

Profile image and community post images

Background Audio

iOS + Android

Radio continues playing when app is backgrounded

Network Access

iOS + Android

Streaming live TV, radio and loading content

Microphone

NOT REQUIRED

App does not record audio — do not request

Location

NOT REQUIRED

Location-based ad targeting uses IP-based geolocation — no GPS required