Inspiration: Our team was disturbed by how often elderly people in our own families forget to take their medicine, and then end up suffering in hospital for something that could have been prevented. A missed dose, or two medicines taken together that should never be mixed, can turn into a serious emergency. We wanted a tool that is simple enough for an elderly person to use and smart enough to keep them safe, without asking them to create accounts or hand over their health data.

What it does? MedTrack is a privacy-first medication companion that helps patients take the right medicine at the right time, safely.

  1. Reminders: When a dose is due, MedTrack shows an on-screen banner, sends a browser notification and speaks the reminder aloud.
  2. Daily schedule and adherence score: Patients add medicines, mark doses as taken and see a live adherence percentage.
  3. Drug interaction alerts: It warns when risky medicines are on the same schedule, for example Aspirin with Warfarin.
  4. Heatwave storage watch: In hot weather (above 30°C) it flags heat-sensitive medicines such as insulin and advises cool storage.
  5. Voice readout: One tap reads the medicine, dosage and time aloud, which helps elderly and low-vision users.
  6. 10-second doctor report: A quick summary of adherence, prescriptions and safety status to show a doctor.

How we built it? MedTrack is built with JavaScript, React 18, HTML5 and custom CSS, with Babel compiling our JSX in the browser. There is no backend server. Patient schedules are saved in the browser’s localStorage, so health data stays on the user’s own device. We have also used AI tools to improve our idea and make the app feel easy to use. Reminders use a timer that checks the schedule and then fires the Notification API and the Web Speech API. Safety checks run on a small rule engine that matches medicine names against interaction pairs and a heat-sensitive list. Adherence is calculated live: Adherence Score = (Completed Doses ÷ Total Scheduled Doses) × 100%

Challenges we ran into:

  1. No clinical database: Safety checks use a lightweight keyword rule engine with three interaction pairs, not a full medical database.
  2. Data isolation: Data stays in one browser, with no multi-device sync, backup or caregiver sharing.
  3. Simulated climate data: Heatwave warnings are triggered by a manual toggle, not live weather for the user’s location.
  4. Reminders need an open tab: Alerts only fire while MedTrack is open, because we have no service worker or server to send them otherwise.
  5. Not fully offline yet: React, Babel and fonts load from the internet on first use.
  6. No Backend: As beginners we really didn't have much idea of how to maintain backend and it required much more time for us to understand this concept and implement it.

Accomplishments that we're proud of:

  1. We built a working app that combines reminders, interaction warnings and storage alerts in one place as beginners.
  2. It needs no account, no server and no cloud, so a patient’s data never leaves their device.
  3. We designed for elderly users from the start, with voice readout and large, calm, simple screens.
  4. We shipped a live demo with one-click scenarios for drug clashes, heatwaves and reminders.
  5. We were honest about the prototype’s limits and mapped a clear path forward.

What we learned? We learned how to design a privacy-first health app around accessibility, with voice support and simple screens for elderly users. We also learned where a prototype stops being safe to rely on a keyword matcher is a proof of concept, not clinical advice, so the next version needs medical review.

What's next for MedTrack?

  1. A Node.js backend with login, so data syncs across devices and is backed up.
  2. Caregiver sharing, so a family member can see whether their elder took their dose.
  3. A service worker with push notifications, so reminders work when the app is closed.
  4. A professionally reviewed drug interaction database API.
  5. Live local weather instead of the manual toggle.
  6. A bundled Vite build for full offline use, plus automated tests for the rule engine.

Built With

Share this project:

Updates

Submission history