Inspiration

Many people leave a doctor's appointment with a new prescription and a lot of unanswered questions. Why am I taking this? For how long? What side effects are normal, and which ones are serious? Appointments are short, and it's easy to not realize what you don't know until you're home. We wanted a tool that helps patients find those gaps before they become a problem, and turns them into questions for their care team.

What it does

MedAware is a medication transparency companion.

  • Medication Transparency Checklist: six questions about a medication. Do you understand why it was prescribed, how long to take it, its side effects, its safety warnings, your follow-up plan, and possible drug interactions? Each one is answered Yes, No, or I'm Not Sure.
  • Personalized results: for every No or I'm Not Sure, MedAware shows the matching section of the real FDA drug label and suggests specific questions to ask your provider.
  • Medication search: live lookup of purpose, side effects, warnings, and any treatment-duration information through the openFDA Drug Label API.
  • Medication dashboard: add, edit, and remove medications and see checklist progress.
  • Symptom tracker: log symptoms with severity and notes, and see trends on a chart.
  • Appointment prep: questions from the checklist are collected automatically. You can edit them, add your own, and print a one-page summary to bring to your visit.
  • Timeline: start dates, doctor-specified review dates, appointments, and symptom logs in one view.

MedAware is educational. It never diagnoses, never recommends changing a medication, never estimates stop dates, and never claims a symptom was caused by a medication.

How we built it

  • React (functional components and hooks) with Vite
  • React Router for navigation between eight pages
  • React Context for shared state, saved to localStorage
  • Tailwind CSS for a soft lavender, card-based design that works on phones and desktops
  • Recharts for the symptom severity chart
  • openFDA Drug Label API, called directly from the browser with no backend and no API keys

We clean up FDA label data into consistent fields (purpose, adverse reactions, warnings, interactions, dosage). The checklist questions are defined in one shared config, so each topic maps to the right label sections and the right provider questions.

Challenges we ran into

  • Messy real-world data. openFDA returns many near-duplicate labels from repackagers, and a search for "Lisinopril" or "Metformin" often listed combination products first. We fetch extra results, remove duplicates, and rank exact name matches first.
  • No standard "duration" field. Prescription labels describe timing in long paragraphs, while over-the-counter labels use bullet lists with no punctuation (for example, "lasts more than 10 days"). We wrote text extraction that handles both and shows only what the label actually says.
  • Being helpful without giving medical advice. We were careful never to make up medication facts. Demo data is clearly labeled as fictional, a product matched by name is flagged as possibly not the user's exact one, and every suggestion points back to the healthcare provider.
  • Tooling surprises. Tailwind v4 changed how reusable style classes are defined, and on macOS readME.md and README.md count as the same filename, so creating one would overwrite the other.

Accomplishments that we're proud of

  • A complete patient journey: search → add a medication → checklist → FDA-backed results → appointment questions → printed summary.
  • Using real government drug data instead of made-up facts.
  • A calm design that doesn't feel like a typical medical form.

What we learned

  • How to work with a large public health API and its inconsistent data.
  • How to design state in React Context so one action (finishing a checklist) updates several features at once.
  • That in health tech, what you choose not to say matters as much as what you show.

What's next for MedAware

  • Secure accounts and encrypted cloud storage so data isn't stored only in one browser
  • Interaction checks across all of a patient's medications
  • Multilingual support and plain-language summaries of label text
  • Appointment and review-date reminders
  • Sharing a summary with a caregiver or provider

Built With

Share this project:

Updates

Submission history