🎯 Inspiration: The 50% Problem
50% of patients don't take their medications as prescribed. This isn't laziness—it's forgetfulness, complexity, and lack of support.
Working with elderly patients managing 5+ medications, caregivers with no visibility into adherence, and frustrated doctors, we asked: What if medication reminders could speak? What if AI understood symptoms? What if family could help without being intrusive?
Voice + AI + Smart Tracking = Medication Adherence.
That's TICKDOSE.
🏗️ How We Built It: Enterprise Architecture
We didn't build a reminder app. We built a complete healthcare platform with 40+ microservices.
Technology Stack
Frontend:
- Flutter 3.0+ (Android, iOS, Web)
- Riverpod state management (40+ reactive providers)
- Material Design 3 (dark mode, accessibility-first)
- Multi-language support (English + Arabic with RTL)
Backend:
- Firebase Authentication (email, Google, Apple, biometric)
- Cloud Firestore (real-time sync + offline persistence)
- Cloud Storage, Cloud Functions, FCM, Remote Config
- Complete Firebase security rules (user data isolation)
AI & Voice:
- Google Gemini AI (symptom analysis, medicine enrichment)
- ElevenLabs text-to-speech (personalized voice reminders)
- Google ML Kit (OCR medicine labels, barcode scanning)
- Speech-to-text (hands-free voice input)
Local Storage:
- Hive database (fast offline sync)
- flutter_secure_storage (encrypted credentials)
- SharedPreferences (settings)
12+ Core Features
- Smart Medicine Management - Manual entry, OCR, barcode scanning, AI enrichment
- Advanced Reminders - 8+ frequencies, timezone-aware, voice-enabled, quiet hours
- Medication Tracking - Calendar, daily timeline, adherence %, charts, PDF export
- AI Health Assistant - "I Feel" feature with Gemini for symptom analysis
- Voice-First Experience - ElevenLabs voice reminders + speech recognition
- Side Effects Logging - Track severity, timeline, patterns
- Caregiver Ecosystem - QR invitations, real-time alerts, adherence dashboards
- Pharmacy Finder - GPS-based, maps integration, offline data
- Offline-First Architecture - Full functionality without internet
- Multi-Language - English & Arabic with professional localization
- Accessibility - Biometric auth, voice commands, dark mode
- Security - HIPAA-ready, Firestore security rules, encrypted storage
40+ Production Microservices
Authentication (3): FirebaseAuth, BiometricAuth, PermissionService
Medicine (5): MedicineService, SideEffects, Barcode, Camera, OCR
Reminders (5): ReminderService, Notifications, FCM, VoiceReminders, TimezoneMonitor
AI & Voice (3): GeminiService, ElevenLabsService, SpeechService
Tracking (3): TrackingService, Analytics, PDFExport
Caregiver (3): CaregiverService, Sharing, Notifications
Utilities (15+): Cache, RateLimiter, RemoteConfig, Accessibility, DeepLinks, and more...
Smart Features in Action
OCR Medicine Capture:
- Take photo of medicine label
- Extract name, strength, dosage automatically
- Gemini AI enriches with side effects & interactions
- Add complex medicine in ~60 seconds
Intelligent Reminders:
- 8+ reminder frequencies (once daily → custom schedules)
- Meal-based triggers (breakfast, lunch, dinner, bedtime)
- Timezone-aware (auto-reschedule when traveling)
- Quiet hours enforcement (default 10 PM - 8 AM)
- Actionable notifications (Taken/Skipped/Snooze)
Voice Interactions:
- Personalized voice reminders (ElevenLabs)
- Natural language symptom input ("I feel dizzy")
- AI voice responses with emotional tone
- Multi-language voice support
- Real-time speech recognition
Caregiver Visibility:
- Family can monitor adherence without intrusiveness
- QR code invitations with permission levels
- Real-time alerts for concerning patterns
- Adherence rates & trends dashboard
- Voice messaging to patients
🚧 The Challenges We Overcame
Challenge 1: Real-Time Sync + Offline-First
Problem: Users need reminders offline, but caregivers need real-time alerts. These seem contradictory.
Solution:
- Implemented Firestore offline persistence with custom sync queue
- Built conflict resolution for offline edits (last-write-wins with user override)
- Created TimezoneMonitorService to reschedule reminders after timezone changes
- Designed versioning system to prevent stale data
Learning: Real-time sync isn't magic—it requires obsessing over edge cases.
Challenge 2: Voice Reliability at Scale
Problem: ElevenLabs API calls fail sometimes. Voice reminders can't fail silently.
Solution:
- Built ApiRateLimiter with per-user quotas to stay within budget
- Fallback to local TTS if ElevenLabs fails
- Cached voice files locally to reduce API calls 90%
- Designed VoiceReminderService with 3-tier retry logic
- Added voice health checks in settings UI
Learning: External APIs require graceful degradation and offline fallbacks.
Challenge 3: OCR Accuracy on Medicine Labels
Problem: ML Kit OCR works ~70% reliably. Medicine labels have varying fonts, angles, conditions.
Solution:
- Added manual verification after OCR extraction
- Implemented confidence scoring (show user only if >85% sure)
- Created medicine database lookup for fuzzy matching
- Used Gemini to validate extracted data ("Does this dosage make sense?")
- Designed intuitive correction UI
Learning: AI alone isn't enough—good UX means letting users correct mistakes.
Challenge 4: Timezone Edge Cases
Problem: User travels Cairo → New York. Do reminders shift? How do we reschedule 20 reminders?
Solution:
- Built TimezoneMonitorService (detects device timezone changes)
- Smart rescheduling (if user traveling, reminders move with them)
- Manual override option (user can keep original times)
- Background WorkManager task (continuous monitoring)
- Added timezone selection in onboarding
Learning: Mobile apps must think global, not just code correct.
Challenge 5: Caregiver Privacy vs. Visibility
Problem: Caregivers need visibility without becoming Big Brother.
Solution:
- Granular permissions (view-only vs. edit access)
- Caregiver sees aggregated adherence, not exact times
- Alerts only for concerning patterns (3+ missed doses)
- User controls what data caregivers access
- Explicit invitation-based relationships (no surprise access)
Learning: Healthcare requires privacy-first design thinking.
💡 What We Learned
Technical Insights
- Flutter + Firebase = Scalable - Hot reload + real-time sync = fast iteration on production features
- Riverpod > Bloc - Composable providers beat state tree complexity every time
- Offline-First Unlocks Everything - Designing offline first made sync, error handling, and retry logic easier
- API Rate Limiting Saves Lives - Early designs called Gemini/ElevenLabs too much. Limiting + caching saved our budget
- Real-Time Listeners Are Expensive - Learned when to use streams vs. one-time reads
Product Insights
- Voice Changes Everything - Users ignore 10 text notifications but respond to 1 voice reminder
- Context > Frequency - Reminder at breakfast > 6 reminders at random times
- Caregivers Are Power Users - Expected daily patient use; discovered caregivers check constantly
- Design for Elderly = Good for Everyone - Large text, voice control, dark mode became beloved by all users
- Integration Unlocks Value - Pharmacy data, doctor contacts, caregiver workflows = 10x more value
Business Insights
- Problem Market Fit > Product Market Fit - Medication adherence problem so real, customers pay for partial solutions
- Healthcare Users Prioritize Privacy - Data security concerns dominate all other considerations
- Multi-Stakeholder Products Are Harder - Design for patients, caregivers, doctors = 3x complexity
- Voice AI is Still Emerging - Built for flexibility, not specific versions of Gemini/ElevenLabs
🏆 What Makes TICKDOSE Different
vs. Generic Reminders (Google Calendar, Apple Reminders)
- ✅ Voice reminders (not just notifications)
- ✅ Medication-specific logic (dosage, interactions)
- ✅ AI health assistant
- ✅ Caregiver support
- ✅ Adherence tracking
vs. Existing Pill Organizers (Medisafe, Pill Reminder)
- ✅ Conversational AI (Gemini)
- ✅ Voice-first (most apps are text/tap)
- ✅ Caregiver ecosystem
- ✅ Production-ready architecture (40+ services)
- ✅ Offline-first from ground up
vs. AI Health Apps (Ada, Babylon)
- ✅ Linked to real medication management
- ✅ Voice I/O for both sides (user asks, AI speaks)
- ✅ Adherence focus (not just diagnosis)
- ✅ Works offline
- ✅ Family collaboration
📊 The Numbers
Scale:
- 40+ microservices, 2 AI platforms, 3 platforms (Android/iOS/Web), 2 languages
- 100+ data models with strict typing, 40+ UI screens, real-time sync + offline
Architecture:
- Riverpod reactive providers, Firebase security rules, 20+ error types, rate limiting, background tasks
Features:
- 12+ core features, 8+ reminder frequencies, 4 auth methods, OCR + barcode scanning, multi-language voice
🎯 Honest Challenges Remaining
- Healthcare Regulations - HIPAA/GDPR compliance designed in but not fully certified
- Doctor Integration - PDF export works; EHR integration (HL7, FHIR) needs partnerships
- Wearable Integration - Designed but not yet implemented (Apple Watch, Wear OS)
- Insurance Reimbursement - Requires clinical validation studies (in progress)
- Multi-Caregiver Support - One patient → one caregiver works; need permission trees for family
- Medication Database - Using Gemini for interactions; need production database for enterprise
🚀 What's Next
- HIPAA Certification (Q1 2026)
- Apple Watch & Wear OS (Q1 2026)
- Pharmacy Integration (read prescriptions directly)
- Multi-Caregiver Support (family councils)
- Healthcare Provider Dashboard (doctors see adherence)
- Clinical Validation Studies
- 10+ Language Support
- Insurance Partnerships
Stack Summary
Frontend: Flutter 3.0+, Riverpod, Material Design 3, Intl
Backend: Firebase (Auth, Firestore, Storage, Functions, FCM, Remote Config)
AI: Google Gemini (gemini-2.5-flash, gemini 3), ElevenLabs TTS, ML Kit, speech_to_text
Database: Firestore (cloud), Hive (local), flutter_secure_storage
State: Riverpod 3.0.3, Provider 6.1.1
Localization: Flutter Intl, full RTL support
🙏 Final Word
Building TICKDOSE taught us that the best technology is one people actually use. Medication adherence isn't solved by perfect algorithms—it's solved by a voice that cares, reminders at the right moment, and family watching over you.
If our app helps one person remember their heart medication and avoid a hospital visit—we succeeded. 💚
Built to solve medication adherence, one voice reminder at a time.
Built With
- elevenlabs-tts
- fcm
- firebase-(auth
- firestore
- firestore-(cloud)
- flutter-3.0+
- flutter-intl
- flutter-secure-storage
- full
- functions
- gemini
- gemini-2.5
- gemini-3
- hive-(local)
- material-design-3
- ml-kit
- provider
- remote
- riverpod
- riverpod-3.0.3
- rtl
- storage

Log in or sign up for Devpost to join the conversation.