Inspiration

As we were hacking away at .devHacks 2026, we received an alarming email: a case of measles was detected right on our university's campus. This sudden, close-to-home health scare highlighted a crucial vulnerability in our community. We realized that staying on top of vaccination schedules isn't just about personal health; it's a public health imperative. Many people simply forget when they are due for a booster, lose their paper records, or are unaware of their eligibility for certain vaccines. This real-world crisis inspired us to tackle the QDoc's Challenge: Smart Vaccine Eligibility and Reminder System by building a seamless, integrated solution that makes managing immunizations effortless.

What it does

VaccineWatch is a comprehensive Smart Vaccine Eligibility and Reminder System that operates across both a mobile Android app and a smartwatch integration.

  • Vaccine Tracker: Users can easily log and view their complete vaccination history (like COVID-19, Measles, Flu, etc.) in a clean, intuitive dashboard.
  • Smart Reminders: The system proactively alerts users when they are eligible for a new vaccine or due for a booster dose.
  • Smartwatch Integration: We integrated with the PineTime smartwatch, putting critical health alerts and upcoming reminders literally on the user's wrist so they are never missed.
  • Educational Hub: Users can browse detailed information about different vaccines, statuses, and eligibility, helping them make informed health decisions.

How we built it

We built the project with a dual-architecture approach, spanning modern mobile development and embedded systems:

  • Android Mobile App: We developed the smartphone application using Kotlin and Jetpack Compose. This allowed us to build a highly reactive and modern user interface. We utilized a repository pattern to manage state across our Tracker, Vaccines, and Reminder screens, alongside dynamic UI components like VaccineCard and StatusBadge.
  • Smartwatch OS Integration: To bring our notifications to the wrist, we forked and modified the open-source InfiniTime operating system (written in C/C++) for the PineTime smartwatch. We created custom application screens within the firmware (MyApp.cpp) utilizing the LVGL (Light and Versatile Graphics Library) framework to render the watch UI.
  • Bluetooth Low Energy (BLE): The smartphone and smartwatch communicate via BLE, allowing the mobile app to sync statuses and trigger wrist-based reminders.

Challenges we ran into

  • SmartWatch Integration: The most we actually accomplished with the watch was getting it to flash. While the code runs on the InfiniTime simulator, we didn't have enough time nor experience to actually display applications to the physical watch.
  • Tech Stack Limitations: The Android Intent API as the only method of communication with Gadgetbridge led to us wasting a ton of time trying to make it work with Expo, before we decided to move the mobile app to Jetpack Compose, a framework we've never used before, in an IDE (Android Studio) we've never used before.
  • Time Constraints: Most unfortunately, we didn't actually get integrate any of our three systems together, nor actually integrate with Gadgetbridge.
  • Feature Creeps: A lot of features we wanted to implement didn't eventually make it into the app.

Accomplishments that we're proud of

  • Successfully compiling, flashing, and running a custom build of the InfiniTime OS onto a real PineTime smartwatch.
  • Creating a polished, fully-functional Android application from scratch using a framework we've never used before.
  • Responding swiftly to a real-world, real-time crisis (the local campus measles outbreak) with a practical software solution.

What we learned

  • Embedded Systems: We gained hands-on experience working with RTOS (FreeRTOS), embedded C++, and flashing firmware to open-source hardware.
  • Modern UI Frameworks: We heavily leveled up our Kotlin and Jetpack Compose skills, learning how to build scalable, reactive UI components.
  • Teamwork: We learned how to break up roles according to expertise and work together as a team. We also will take as a learning experience to acknowledge how much we can do given this strict time limit, considering we're trying to do all this with new technology.

What's next for VaccineWatch

  • Direct QDoc Integration: We plan to integrate directly with QDoc's backend telemedicine APIs to fetch real-time provincial eligibility rules and allow users to instantly book an appointment with a physician if they are due for a vaccine.
  • Cloud Sync & Verification: Implementing secure, verifiable cloud storage for vaccination records, potentially integrating with provincial health registries (like Shared Health in Manitoba).
  • Expanded Wearable Support: Extending our smartwatch app to support WearOS and Apple Watch to reach a broader audience.
  • Family Profiles: Adding support for multi-user profiles so parents can track and receive reminders for their children or elderly family members on a single device.

Built With

Share this project:

Updates