Admin Panel Guide
Sign in at https://your-domain.com/admin. The sidebar follows the order you will typically configure things in.
Dashboard
License status, project identity (domain / Android package / iOS bundle), device and notification counters, installation date and the last license check. The license is re-verified automatically when due; temporary network problems never lock you out (there is a grace period).
At the top you will find a setup checklist while anything is still outstanding: activate the license, create the application, upload the app icon, set your allowed domains, build the navigation menu, choose your languages, add your store details, optionally connect Firebase, and download the configuration package. Nothing is ticked by hand — each step reads the real setting, so the list always matches your installation. It disappears once you reach 100%.
Applications
The single licensed app project (one license = one website/app): name, short name, website URL, Android package name, iOS bundle ID, versions and the support/privacy/terms links the stores require. Package name and bundle ID cannot change while the license is bound to them — reset the activation first.
At the bottom you also find the Flutter Configuration Package download — unzip it into the CodeCanyon Flutter project and run dart run tool/apply_config.dart (see flutter-setup.md), plus the optional deep-link signing identifiers (SHA-256 fingerprint / Apple Team ID).
Appearance
App icon (1024×1024 PNG), splash logo & background, brand colors, status/navigation bar colors, Light/Dark/System theme, font, splash duration/animation.
WebView
Engine toggles (JavaScript, cookies, cache, zoom, pull-to-refresh), uploads/camera/ microphone/location, native downloads, a custom user agent, and domain security: allowed domains open inside the app, blocked domains never load, all other links open in the in-app or system browser (your choice).
Navigation
Visual builder for Bottom / Drawer / Top / Floating-button navigation. Items: Home, Web URL, External URL, Native Page, Share, Notifications, Settings, Back, Forward, Refresh. Drag rows to reorder. If a label equals a translation key (e.g. home), the app translates it automatically.
Languages & Translations
Unlimited languages with LTR/RTL support (Arabic works out of the box). The Translation Manager is a key × language grid — cells save when you leave them. Export/import JSON for bulk work or external translators.
Push Notifications & Firebase
See firebase.md and push-notifications.md.
Devices
Every install that registered for notifications: platform, language, app version, topics, status and when it was last seen. Filter by platform, status or language, or search by app version. Push tokens are shown truncated — the full value never leaves your database.
Firebase reports tokens that stopped working; those show as stale or unregistered and can be cleared with Clean Up Stale Tokens. Removing a device only removes its registration — the app re-registers next time it runs.
Permissions
Enable only what your app really uses; every enabled permission needs an iOS usage description (defaults provided). The exported app requests only enabled permissions.
Deep Links
Domain + path rules that open your app instead of the browser. See deep-links.md.
Analytics
Daily counters sent by your app (opens, page loads, push opens, shares, downloads, external links, errors) with a 7/30/90-day chart, platform split and device languages. No device identifiers or personal data are collected.
Ads (AdMob)
Optional banner and interstitial ads, disabled by default. Enter your AdMob App IDs and ad unit IDs, choose how often interstitials may appear, then re-download the configuration package and rebuild. Follow AdMob and store policies — intrusive ads are a common rejection reason.
Store Settings
Google Play / App Store page URLs and version publishing: after releasing a new build, publish it here so older installations see an update prompt (optionally forced).
Compliance
A live checklist of store requirements computed from your actual configuration, with "Fix" shortcuts. Final approval always belongs to the store review.
License
Activate your purchase code, see the licensed domain and verification status, force a check, or reset the activation to move to a new project.
System Settings
Site name, timezone, SMTP for outgoing email (password reset), debug mode (never leave enabled in production) and Logout All Sessions. Database backups are best taken with your hosting panel's own backup tools.
Logs
System / license / login / API / notification / error entries with filters. Secrets are never written to logs.
My Account
Change your own name and email, or set a new password — both ask for your current password first. Changing your password signs every session out, including the one you are using, so you sign back in with the new one.
The same page lists everyone who can reach the panel. Add a colleague, disable them temporarily (which signs them out immediately) or remove them. You cannot disable or delete your own account, and at least one active administrator always has to remain.