
Uplift Health - Mobile App
"Offline-First Health Intelligence, Built from the Data Layer Up"
Visit Portfolio HomeMeet the Development Team
A group of mobile engineers who built Uplift from scratch.

👨💻 Lakindu Vidanaarachchi
Lead Data Architect, Firebase Sync Engineer & UI/UX Designer
Engineered the SQLite data architecture, Firebase synchronization engine, and predictive insights algorithm. Developed the auto-merge goal framework, dynamic theming engine, and Google OAuth integration while leading the project's core UI/UX design.

👨💻 Sahan Karunathilaka
Business Logic Contributor & Navigation Framework Lead
Built the full application navigation framework using IndexedStack, BottomNavigationBar, and reactive route guards. Designed all screen layouts and the Health Log UI.

👨💻 Duvindu Devendra
State Management & Business Logic Lead
Built the bilingual engine (English/Sinhala), Health Tips API integration with Dio + Hive caching, goal reminder system, and the NotificationService dual-channel architecture.

👨💻 Nepul dhanujaya
API Integration & Device Features Lead
Implemented the Activity Tracking module, real-time Pedometer service, background step isolate, ActivityProvider state management, and weekly chart visualizations.
Technologies Used
Selected for performance, reliability, and offline resilience.
Flutter Application
- Framework: Flutter / Dart - Cross-platform Android & iOS
- State Management: Provider (ChangeNotifier) + MultiProvider
- Navigation: IndexedStack + BottomNavigationBar + Route Guards
- UI Animations: flutter_animate + shimmer skeleton loaders
- Localization: Bilingual Engine (English/Sinhala) + Custom Font Scaling
Offline-First Data Layer
- Local Database: SQLite via Sqflite
- Cloud Sync: Firebase Firestore - Eventual Consistency Replica
- Auth: Firebase Auth (Email/Password & Google OAuth)
- Sync Strategy: Write-local-first with Sync Status Flags + Rehydration on Login
- Caching: Offline API Caching (Hive & Dio Interceptors)
Device & API Features
- Step Tracking: Hardware Pedometer API & Background Isolates
- Health Tips: MyHealthFinder REST API Integration
- Notifications: Standard Banner & High-Priority Alarm Channels
- Visualisation: Interactive Charts (FL Chart & Syncfusion)
- Architecture: Three-Layered Repository Design Pattern
System Optimizations
- Startup: Lazy Repository Initialisation (Zero-Latency)
- Analytics: Linear Regression for Predictive Goal Insights
- Permissions: Runtime Permission Requests (Pedometer & Alarms)
- Media: Base64 Profile Storage & Network Image Caching
- Platform: Conditional Database Factory (Mobile/Web Stubbing)
Core System Features
Offline-First Architecture
Full functionality without internet. SQLite writes always succeed; Firestore syncs in background.
Predictive Insights Engine
Linear regression in GoalRepository projects deadline completion as human-readable sentences.
Auto-Merge Goal System
Manual progress updates insert timestamped Activity records, anchoring data to correct dates.
Background Step Tracking
Dedicated Dart isolate reads hardware Pedometer sensor and persists daily totals idempotently.
Extended Architecture
Zero-Config Firestore Sync
The .toMap() method is the shared translation layer - new model fields auto-extend both databases.
Dual-Theme System
Matte Alabaster & Solid Sapphire themes persisted in SQLite and restored before first frame renders.
Bilingual Engine
Full English/Sinhala locale switching with custom font-scaling for Sinhala conjunct character rendering.
Lazy Initialisation
All repositories use lazy getters - zero-latency startup by deferring DB connections until needed.
Evolution Roadmap
Planning continuous improvements to deliver deeper health intelligence.
AI Dietary Advice
LLM-powered personalised meal recommendations based on logged health metrics.
Wearable Integration
Bluetooth Low Energy pairing with Fitbit and Garmin for automatic biometric data.
Social Challenges
Group goal challenges between connected users via Firestore real-time listeners.
iOS Deployment
Adapting the pedometer and notification permission flows for the iOS platform.
Data-First Engineering
A strict three-layer pattern where intelligence lives in the data layer.
Offline-First Strategy
Every write targets SQLite first with sync_status = 0. SyncService pushes to Firestore asynchronously (if offline, records are queued and synced on reconnect).
Zero-Config Cloud Scaling
The model's .toMap() method is the single source of truth. New schema fields auto-extend both SQLite and Firestore with zero additional mapping code.
Built From the Data Layer Up
Uplift demonstrates that true mobile intelligence starts with a robust, offline-first data architecture, not just a polished UI.
Connect with Team Lead