Offline-first AI health companion powered by Google's Gemma 4 4B running entirely on-device. Multi-agent specialist routing, drug lookup, symptom triage, nearby doctor search, and Firebase-backed cloud sync — all in a single React Native app for Android and iOS.
YouTube Video
Sign In
Home Dashboard
AI Response
Hindi Language Support
Generated Report
PDF Clinical Report
Insight Detail
Drug Search
Affordable Alternatives
On-Device AI
Data flow between the Mobile Client, AI Orchestrator, Inference Engines, and SQLite/Firebase Data Layer.
Low-Level Design (LLD)
google-services.json → place in android/app/GoogleService-Info.plist → add to Xcode project
4. Environment variables
cp .env.example .env
Then fill in .env:
# Gemini API key — https://aistudio.google.com/app/apikey
GEMINI_API_KEY=your_gemini_api_key_here
# Google Sign-In Web Client ID (Firebase Console → Auth → Google → Web SDK config)
GOOGLE_WEB_CLIENT_ID=your_google_web_client_id.apps.googleusercontent.com
# Direct GGUF download URL for Gemma 4 4B (~1.5 GB)
MODEL_DOWNLOAD_URL=https://huggingface.co/your-org/model/resolve/main/model.gguf
Firebase credentials go in
android/app/google-services.jsonandios/GoogleService-Info.plist— not in.env.
5. Run
# Android
npm run android
# iOS
npm run ios
6. Download the AI model
On first launch, the app will prompt you to download Gemma 4 4B (~1.5 GB). Requires a stable Wi-Fi connection and ~3 GB free storage. After download the model runs fully offline.
Project Structure
src/
├── components/ # Reusable UI components
│ ├── ui/ # AppButton, AppInput, AppCard, ScreenHeader
│ ├── ChatBubble.tsx
│ ├── BiometricGate.tsx
│ ├── MarkdownText.tsx
│ └── SyncStatusBar.tsx
├── screens/ # All app screens
│ ├── ChatScreen.tsx # Main AI chat
│ ├── HomeScreen.tsx # Dashboard
│ ├── DrugInfoScreen.tsx # Medicine search
│ ├── AffordableAlternativesScreen.tsx
│ ├── FirstAidGuideScreen.tsx
│ ├── FindNearbyDoctorScreen.tsx
│ ├── ImageAnalysisScreen.tsx
│ ├── AgentSelectorScreen.tsx
│ ├── ChatReportsScreen.tsx
│ ├── SettingsScreen.tsx
│ └── ...
├── services/ # Business logic
│ ├── LlmService.ts # Gemini cloud AI
│ ├── LocalLlmService.ts # llama.rn on-device AI
│ ├── AgentService.ts # Multi-agent orchestration
│ ├── ModelManager.ts # Model download & lifecycle
│ ├── DatabaseService.ts # SQLite wrapper
│ ├── FirebaseService.ts # Auth + Firestore sync
│ ├── DrugInfoService.ts # 1mg medicine DB
│ └── PlaceSearchService.ts # Nearby doctor search
├── context/
│ └── HealthProfileContext.tsx # Global health profile state
├── navigation/
│ └── AppNavigator.tsx # Auth flow + tab navigation
└── theme/ # Colors, typography, dark mode
Demo Prompts
"I have chest pain and shortness of breath"
"What is the dosage for metformin 500mg?"
"My child has had a fever for 3 days"
"Find a cardiologist near me"
"What are affordable alternatives to Crocin?"
"Analyze this rash on my arm" (attach photo)
Privacy
- AI inference is 100% on-device when using the offline model
- Health profile and chat history stored only in local SQLite by default
- Firebase sync is opt-in — no data uploaded without user action
- Biometric lock prevents unauthorized access
License
Copyright (c) 2026 Narender Keswani. All Rights Reserved.
This project is proprietary software. You may view the source code for personal reference, but you may not copy, distribute, modify, or use it commercially without explicit written permission.
See LICENSE for full terms.
Built for people who need reliable health guidance anywhere — with or without internet.
SOCIAL SHARE CARD GENERATOR