Flutter App Referral System Upgrade

Замовник: AI | Опубліковано: 10.11.2025

# Flutter Referral System Enhancement with Deep Linking and Auto-Fill ## Project Goal To implement a **seamless, user-friendly, and highly effective** referral system in an existing Flutter application. This involves enhancing the referral code sharing experience and building a robust deep-linking flow to automatically track referrals and pre-fill the sign-up form upon a new user's first app install. ## Key Requirements & Features ### 1. Referral Code Sharing Improvements (In-App) * **Tap-to-Copy:** Implement a dedicated, highly visible "tap-to-copy" button or action next to the user's personal referral code within the app. * **Share Message Formatting:** Ensure the shared referral message (e.g., when sharing via WhatsApp, Telegram) includes the referral code prominently. * The shared code should be visually distinct (e.g., bolded or using appropriate markdown for the sharing channel) and easily copyable from the message text. * *Note: While *underlined* and *clickable* text within third-party messaging apps is limited by their respective platforms, the focus should be on making the code **copyable** and **clear** within the shared message.* ### 2. Deep Linking and Installation Flow Management The core of this task is to ensure the **referral code is persistently carried** from the click of the referral link through to the first successful app opening. * **Deep Link Setup:** Configure a Firebase-based solution (likely **Firebase Dynamic Links** or **Firebase Hosting with custom deep link configuration**) to generate and manage the referral links. * **Play Store Redirection:** When a new user clicks the referral link: * If the app **is not installed**, the link must redirect the user directly to the app's page on the **Google Play Store**. * **Post-Install Redirection & State Check:** After the user installs and opens the app for the **very first time**: * The app must **detect** that it was opened via a referral deep link. * The app must **bypass the existing guest flow** (location permission request and guest home screen). * The user must be **redirected immediately** to the main **Sign-Up/Registration screen**. ### 3. Automatic Code Pre-filling * **Auto-Fill Logic:** The referral code captured from the deep link must be automatically **pre-filled** into the designated referral code input field on the Sign-Up screen. * **Persistence:** The deep link payload (containing the referral code) must be handled robustly to ensure the code is available even after the app is killed and reopened following the Play Store install (i.e., on the very first successful launch). ### 4. Existing App Flow Integration * **Flow Modification:** The existing application flow (Splash Screen $\to$ Location Access Request $\to$ Guest Home Screen) must be modified *only* for users coming from a referral deep link. * **Default Flow:** The standard flow should remain intact for users who open the app normally (i.e., not via a referral link). * **Login Types:** The implementation must integrate seamlessly with the existing sign-up screen, which supports Manual Login, OTP Login, and Social Login. ## Technical Stack * **Framework:** Flutter (Specify version if critical). * **Backend:** Firebase (For Dynamic Links/Deep Link handling, and potentially for existing OTP/data storage). * **Platform:** Focus on **Android (Google Play Store)** for initial deployment. ## Deliverables 1. Fully implemented and tested Flutter code for the referral system enhancements. 2. Configuration documentation for the Firebase deep link setup. 3. Confirmation that the code retrieval and auto-fill feature works for first-time installs. 4. Clear pull request with well-commented code. ## Freelancer Requirements * Proven experience with **Flutter Deep Linking** and **Firebase Dynamic Links**. * Strong understanding of Flutter navigation and routing, especially state-checking on app startup. * Ability to integrate new logic without disrupting existing, complex application flows (e.g., guest user flow, multiple login types).