Inspiration
Canada's healthcare system is world-class, but its wait times aren't. Ontario ERs average 4+ hours, walk-in clinics fill up by 9 AM, and over 6 million Canadians don't have a family doctor. We wanted to build something that helps Canadians get ahead of health issues before they become emergencies.
What it does
Dr. Maple is an AI voice health triage assistant built specifically for Canadians. You describe your symptoms by voice, and Dr. Maple asks follow-up questions just like a real triage nurse. It reads your Apple Watch vitals (heart rate, sleep, steps, activity) and your personal health profile to give you a personalized assessment.
By tracking symptoms over time, Dr. Maple can flag when your health is trending in the wrong direction before you feel sick enough to need urgent care. That means booking a walk-in Monday morning instead of scrambling at 7 PM, or calling 811 before a condition gets worse over the weekend.
When you do need care, Dr. Maple classifies your situation into one of four levels — Emergency, Urgent, Semi-urgent, or Non-urgent — finds nearby clinics with estimated wait times, and generates a downloadable PDF report to bring to your doctor.
Additional features include a Family Health section for tracking children's vaccines, growth, and medications, a province-by-province specialist finder, and a personal symptom log.
How we built it
- Frontend: React 18 + Vite + TypeScript + Tailwind CSS
- AI: Google Gemini 2.5 Flash for clinical reasoning and triage
- Voice: Web Speech API (Canadian English) for input, ElevenLabs TTS for Dr. Maple's voice
- Data: Firebase Firestore for session history, user profiles, symptom logs, and family health records
- Auth: Auth0 for secure login
- Maps: Google Maps JavaScript API + Places API for clinic finder
- Apple Watch: Custom iOS companion app syncing health metrics to Firebase in real time
- Reports: jsPDF for downloadable health reports
Challenges we ran into
- Getting Firestore composite indexes right so health history queries worked correctly
- Structuring the Gemini prompt to produce consistent, parseable triage output while keeping responses concise enough for a voice conversation
- Syncing Apple Watch health data from iOS to the web app in real time through Firebase
- Building the Family Health section with vaccines, growth tracking, and medications all tied to individual child profiles
Accomplishments we're proud of
- A fully working voice AI doctor that gives real, actionable Canadian healthcare guidance
- Real Apple Watch vitals feeding directly into the AI's assessment
- A complete health history with date-grouped session records and downloadable PDF reports
- Family Health tracking that goes beyond just the individual user
What we learned
- How to structure multi-turn AI conversations with structured output markers for triage results, choices, and photo requests
- Firebase subcollection patterns for complex nested data like family profiles
- The importance of building for a specific healthcare system — Canadian resources, provincial directories, and CTAS triage levels made the product meaningfully different
What's next
- Predictive health alerts based on symptom trends over time
- Push notifications when vitals from Apple Watch suggest booking a doctor proactively
- Multi-language support (French for Quebec)
- Integration with provincial health card systems
Log in or sign up for Devpost to join the conversation.