FlutterFlow Developer – Clinical Trial Discovery App (LabRat)

Job ID: 39992957

Budget: $250 – $750 USD

# FlutterFlow Developer – Clinical Trial Discovery App (LabRat)

**Platform:** iOS + Android + Web Admin Panel
**Builder:** FlutterFlow (NOT Flutter)
**Backend:** Firebase
**Timeline:** Open

---

## PROJECT OVERVIEW

Build a production-ready clinical trial discovery app with map-first UI, subscription paywall, and web admin panel. Users browse paid medical research studies on an interactive map, subscribe to contact recruiters.

---

## TECH STACK (REQUIRED EXPERIENCE)

- **FlutterFlow** (mobile + web apps)
- **Firebase** (Auth, Firestore, Analytics, Extensions)
- **Google Maps API** (with marker clustering)
- **RevenueCat** (native IAP with free trials)
- **Geo Collection** package (geospatial queries)
- **Custom Dart widgets** (pixelation effect)

---

## CORE FEATURES

### MOBILE APP (iOS + Android)

**1. Authentication**
- Email/password + Google Sign-In
- Firebase Authentication
- Persistent sessions

**2. Bottom Navigation (3 tabs)**
- Home: Map dashboard
- Saved: Saved studies list
- Account: Profile & subscription management

**3. Map Dashboard**
- Google Maps with custom markers (Yellow Pin / Green Star / Flame Icon)
- Marker clustering (5+ studies = cluster)
- Bottom drawer (collapsed / half-open / full-screen states)
- Geohash-based viewport queries (Geo Collection package)
- Real-time filter updates

**4. Filters (6 total)**
- Pay Amount (single-select: Any, $500+, $2k+, $5k+)
- Distance (visible only if location granted)
- High-Pay Only (toggle)
- Jackpot Only (toggle)
- Condition (dropdown)
- Study Type (Inpatient/Outpatient)

**5. Location Permissions**
- Pre-permission screen (before native dialog)
- Haversine distance calculation
- "X.X mi away" display on cards
- Fallback sort by pay when location denied

**6. Study Detail Page**
- Visible fields: Pay, title, condition, city/state, eligibility, phase, description
- **Restricted fields (pixelated blur for unsubscribed):**
- Facility name (pixelated)
- Sponsor name (pixelated)
- Recruiter phone (hidden with lock icon)
- Recruiter email (hidden with lock icon)

**7. Custom Pixelation Widget**
- Blur restricted text for unsubscribed users
- Lock icon overlay
- Tap triggers paywall modal
- Complete Dart code provided in spec

**8. Apply Now Button**
- Mobile: `tel:` link to call recruiter (subscribed only)
- Tablet/Web: Copy phone to clipboard (subscribed only)
- Unsubscribed: Show paywall modal

**9. Saved Studies**
- Free users: Max 3 saved studies
- Subscribed users: Unlimited saves
- 4th save attempt → Paywall

**10. Subscriptions (Native IAP)**
- RevenueCat integration (Apple + Google)
- 2 products: $4.99/month, $49/year (both with 3-day free trial)
- RevenueCat Firebase Extension (auto-sync subscription status to Firestore)
- Paywall triggers: Apply Now, recruiter contact, pixelated fields, save limit
- Restore purchases functionality

**11. Sharing & Deep Linking**
- Native share sheet
- Firebase App Links (iOS Universal Links + Android App Links)
- Deep link format: `https://labrat.pro/study/{study_id}`

**12. Analytics**
- 21+ Firebase Analytics events
- Trial conversion tracking
- Location permission tracking

---

### WEB ADMIN PANEL (FlutterFlow Web)

**1. Role-Based Access**
- Super Admin: Full access + user management
- Admin: Create/edit/delete studies
- VA: Create/edit studies only

**2. Dashboard**
- Total studies count
- Published vs draft count

**3. Studies Management**
- Table view with search, filter, sort
- Create/edit/delete studies
- Publish/unpublish toggle
- Auto-geocoding (city/state → lat/lng)
- Geocode cache (saves API costs)

**4. CSV Bulk Import**
- Upload CSV (max 10MB)
- Field validation
- Preview table with error highlighting
- Batch geocoding (with cache lookup)
- Export invalid rows with error messages

**5. User Management** (Super Admin only)
- Assign roles (Super Admin, Admin, VA)
- View user list with roles

---

## FIREBASE BACKEND

**Collections:**
1. **users** (uid, email, role, subscription_status, subscription_expiry, product_id, saved_studies)
2. **studies** (title, condition, pay_amount, is_high_pay, is_jackpot, facility_name, sponsor_name, recruiter_phone, recruiter_email, city, state, lat/lng, geohash, published, etc.)
3. **geocode_cache** (city/state/country → lat/lng/geohash)

**Security Rules:** Provided (role-based access)

**Indexes:** 5 composite indexes specified (published + pay_amount, published + geohash + pay_amount, etc.)

**Extensions:**
- RevenueCat Firebase Extension (auto-handles subscription status updates)

---

## REQUIRED PACKAGES/INTEGRATIONS

- `geo_collection` (official Firebase geospatial package)
- `permission_handler` (location permissions with pre-screen)
- RevenueCat (FlutterFlow plugin)
- Google Maps (clustering + custom markers)
- Google Geocoding API (admin panel only, with caching)
- Papa Parse (CSV parsing)
- Firebase Analytics

---

## DELIVERABLES

- FlutterFlow mobile app project (transferable ownership)
- FlutterFlow web admin project (transferable ownership)
- Firebase configuration files
- Firestore security rules
- Custom PixelatedText widget code
- iOS IPA (TestFlight-ready)
- Android AAB (Internal Testing-ready)
- Web admin build (deployed-ready)
- Technical documentation

---

## MUST-HAVE DEVELOPER EXPERIENCE

**Required (must have ALL):**
- ✅ Google Maps integration in FlutterFlow (with clustering)
- ✅ Native IAP implementation (Apple + Google) with free trials
- ✅ RevenueCat integration in FlutterFlow
- ✅ Firebase (Auth, Firestore, Security Rules, Indexes)
- ✅ FlutterFlow Web app development
- ✅ Custom Dart widget development
- ✅ Geospatial queries (Geo Collection or similar)

**Preferred:**
- CSV import/validation in FlutterFlow
- Deep linking (Firebase App Links or Universal Links)
- Location permission flows (iOS 18+ pre-permission screens)

---

## PROJECT SCOPE

**This is a complete build from scratch:**
- Mobile app: ~12 screens/pages
- Web admin: ~5 pages
- Custom widgets: 1 (PixelatedText)
- Firebase collections: 3
- Integrations: 5 (Maps, RevenueCat, Geocoding, Geo Collection, Analytics)

---

## WHAT YOU'LL RECEIVE

- Complete build specification (every feature defined)
- Firebase collection schemas
- Firestore security rules (copy-paste ready)
- Firestore indexes list
- Custom widget code (PixelatedText)
- Analytics events list (21 events)
- Deep linking configuration
- API security setup guide
- Error states for all screens

---

**Looking for an experienced FlutterFlow developer who can execute independently and deliver a polished, production-ready app. This is not a learning project – you must have proven FlutterFlow expertise.**