MediMitra Care
Apki Dawaiyon Ka Dost — your medicine's best friend. Snap a strip, catch a dangerous interaction, and never miss a dose. Built for India's elderly and the adult children who worry about them.
MediMitra Care contributes to UN SDG 3 — Good Health and Well-being by closing the single biggest preventable gap in Indian elderly healthcare: medication safety. A hand-held, bilingual, pictogram-first companion that turns one photo of a medicine strip into an identification card, an FDA-grade safety check, a daily schedule, and a caregiver share link.
Inspiration
We watched our own grandparents juggle a fistful of pills every morning — Telmisartan, Metformin, Warfarin, and whatever a visiting relative had recommended that week — with genuine fear that a new strip from the pharmacy might interact with the old ones. The Apte et al. 2025 study put a number on that fear: 40–75% of India's elderly with chronic disease are non-adherent, partly because existing reminder apps are not tailored to the Indian context and are hostile to elderly users. We built MediMitra Care as the app we wish we had handed our parents three years ago.
What it does
MediMitra Care turns a single photo of an Indian medicine strip into three things at once: a plain-English identification grounded in RxNorm, an FDA-grade safety card pulled from openFDA, and a color-coded interaction check against the pills the user is already taking. It then drops the medicine into a pictogram-first daily schedule with voice read-aloud in Hindi or English, a streak counter, browser reminders, a caregiver share link, and a conversational Q&A assistant.
How we built it
Next.js 14 App Router with TypeScript, Tailwind and a hand-rolled shadcn-flavoured UI kit, Zustand for the localStorage-backed patient store, a clean monorepo split into frontend/, backend/, ml/, data/, scripts/ and tests/. Every external API (Gemini 2.5 Flash, RxNorm, openFDA, DrugBank DDI) is reachable on the free tier and judges can paste their own keys from /settings. Offline fallbacks are first-class: the scanner still demos a full safety card when no key is present.
Challenges
The hardest problem was making the safety layer trustworthy without shipping a 500MB NER model: we ended up combining rule-based drug NER (ml/ner_rules.ts), a DrugBank-derived pairwise table (data/drug_interactions.ts) and openFDA label warnings so every flag has a citable source. The second tough problem was elderly-friendly UX: we iterated on pictogram + voice output until the schedule view was usable by a 70-year-old at arm's length without reading glasses.
Accomplishments
Every feature in the README works end-to-end in Docker with zero credentials. The polypharmacy risk score catches the classic Warfarin + Ibuprofen and Warfarin + Aspirin pairings in under 50ms. The codebase is organised so a new engineer can find any service in one folder hop, which is also why the auto-generated presentation from the repo analyzer reads so cleanly.
What we learned
That 'free-tier only' is a design constraint worth embracing — it forced us to cache openFDA label data, to ship an offline interaction table, and to make the app useful in demo mode even with the network unplugged. We also learned that Web Speech synthesis handles hi-IN surprisingly well in modern Chromium, which unlocked a voice-mode feature we'd initially scoped out.
What's next
Five concrete next steps: 1) expand the Indian medicine catalogue from 12 to the CDSCO Essential Medicines top 250; 2) add a barcode fallback for strips where OCR struggles; 3) bundle the full Hugging Face DrugBank DDI parquet as an on-device SQLite; 4) ship a native Android wrapper via Capacitor so notifications fire even when the tab is closed; 5) integrate ABHA (India's digital health ID) so caregivers can import a patient's existing prescription list in one tap.
Built With
- docker
- drugbank-ddi
- google-gemini-2.5-flash
- next.js-14
- openfda
- rxnorm-rest-api
- tailwindcss
- typescript
- web-speech-api
- zustand
Log in or sign up for Devpost to join the conversation.