Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for DoseBell

DoseBell — Never Miss a Dose Again

Inspiration

My grandmother takes seven medications a day. Last year she was hospitalised twice — not because her conditions worsened, but because she kept missing doses. Her phone was too complicated. The pill organiser sat untouched. The alarm clock told her when but never what or why.

She is not an edge case. Medication non-adherence is one of the most preventable crises in global healthcare:

$$\text{Annual cost of non-adherence} \approx \frac{\$300\text{B}}{125{,}000 \text{ deaths}} = \$2.4\text{M per preventable death}$$

Existing reminder apps assume perfect eyesight, smartphone literacy, and fast reflexes. For someone 75+ with arthritic hands in Accra, those apps are invisible. I built DoseBell to change that.


What It Does

DoseBell is a voice-first medication companion with two sides:

For the patient (elderly senior):

  • At the exact scheduled time, DoseBell speaks aloud: "Good morning! Time for your Metformin — 500mg tablet."
  • One giant button confirms the dose. No menus. No scrolling.
  • Supports English and Twi — critical for elderly users in Ghana.

For the family (caregiver):

  • Schedule all medications once: name, dose, time, frequency, family alert contact, and voice language.
  • If a dose is missed for 30 minutes, the family receives a WhatsApp or SMS automatically — no app install required.
  • A live dashboard shows a 7-day adherence calendar, streak tracker, and missed dose chart.

How I Built It

I built DoseBell using MeDo as my primary development partner.

I structured the build in four conversations:

Conversation 1 — Full app generation I gave MeDo one detailed prompt with the complete product spec: patient view, caregiver scheduler, dashboard, Supabase schema, all API endpoints, design system, and reminder logic. MeDo generated the entire full-stack application — React frontend, Node.js/Express backend, and all three database tables.

Conversation 2 — Escalation engine I asked MeDo to implement the 30-minute missed-dose escalation pipeline. The flow: reminder fires → 30-minute window → if unconfirmed → mark missed → WhatsApp family → SMS fallback → log alert → update dashboard in real time. MeDo wrote the complete node-cron scheduler handling all states and edge cases.

Conversation 3 — Accessibility refinement I gave MeDo one constraint: "Can an 80-year-old with arthritic hands use this alone at 8am?" MeDo redesigned every tap target to a minimum of 56px, increased font sizes, added vibration feedback, and simplified the patient view to a single task per screen.

Conversation 4 — Credentials + deploy I connected Supabase and Twilio credentials, and MeDo deployed the app to a public URL in one click.

Tech Stack

  • Frontend: React, Chart.js, Web Speech API
  • Backend: Node.js, Express, node-cron
  • Database: Supabase (Postgres) — medications, dose_logs, alerts tables
  • Alerts: Twilio WhatsApp + SMS
  • Voice: Web Speech API (English + Twi)
  • Deploy: MeDo one-click deployment

Challenges

1. Designing for the most constrained user Accessibility is not a checklist — it is a constraint that reshapes every decision. Every feature was filtered through: "Can someone with failing eyesight and arthritic hands do this alone?" That constraint removed everything unnecessary and made DoseBell genuinely different from generic reminder apps.

2. Alarm fatigue vs. real escalation Early versions alerted family after every single missed dose. Caregivers told us they would mute the messages within a week. The solution was a configurable grace period — a dose confirmed within 30 minutes still counts as adherent — and a graduated escalation that only contacts the clinic after three consecutive critical misses.

3. Language support Adding Twi required more than translation. The sentence structure, rhythm, and natural pacing of spoken Twi is different from English. MeDo helped generate reminder scripts that sound natural when spoken aloud by the Web Speech API — not just word-for-word translated.

4. WhatsApp reliability Twilio's WhatsApp sandbox requires family members to opt in first. For the production version, we built an SMS fallback so the alert always reaches the family contact regardless of WhatsApp status.


What I Learned

Accessibility is not a feature — it is a foundation. When you design for someone who cannot rely on fine motor control, small text, or a fast internet connection, you end up removing everything that was never necessary in the first place.

I also learned that the hardest problems in health tech are behavioural, not technical. The voice tone, the word choice, the escalation timing, the phrasing of the family SMS — these decisions mattered more than any line of code.

MeDo made it possible to move from idea to deployed product in a single hackathon session, handling the heavy engineering so I could focus entirely on the human problem.


What's Next

  • Pharmacy integration — auto-populate schedules from dispensing records
  • Wearable confirmation — a smartwatch tap counts as dose confirmed
  • Multilingual expansion — Hausa, Ewe, Ga for broader West Africa coverage
  • Clinical dashboard — exportable adherence reports for GP visits

Built with MeDo · Supabase · Twilio · React · Node.js Designed for elderly patients in Ghana and West Africa

Built With

  • cloud-services
  • frameworks
  • medo
  • or-other-technologies-did-you-use?-*-built-with-languages
  • platforms
Share this project:

Updates

Submission history