Inspiration
My uncle recently underwent a major surgical procedure and is currently in the recovery phase. He is very dear to me, and I am deeply moved by the fact that he needs an extended recovery time (6 months to 1 year), during which he will be restricted to a separate room within the residence, with limited interactions with the family. I wanted to do something to help him and the other family members in any way I can. One of the challenges I noticed is remembering to take his medicines on time. This is particularly difficult since he needs to administer medicines over 15 times a day. So, I decided to take the opportunity of this hackathon to create a simple web-based application that can be his buddy and remind him to take his pills at the right time. That's how "Daily Dose" was born!
What it does
Daily Dose is an application that allows registered users to create and maintain their schedule of daily-use medicines. Based on the schedule, it sends reminders at the appropriate time. This mobile-friendly app can be used on handheld devices. Reminders will be received even when the application and browser are not running but the user needs to install chrome APP in the device.
How I built it
I recently completed CS50:X Introduction to Programming course from Harvard, where I learned Python and database concepts. For this project, I decided to use the Flask framework along with an SQLite database to store medicines and other objects. To implement notifications, I delved into web push technology from Google and successfully integrated it into my project. While I initially considered using Celery for scheduling, I faced time constraints and couldn't make much progress. Instead, I devised an alternative strategy using cronjobs, which I believe will be equally effective for the needs of my application.
Challenges I ran into
Understanding and implementing web push in my application was particularly challenging. I had to go through multiple online resources and sample codes to get a clear understanding of this technology. Eventually, I was able to grasp the concept of web workers and successfully integrated them into my prototype. As mentioned earlier, using Celery for scheduling posed timeline problems, so I devised an alternative strategy of running cron jobs every hour to check the medication schedule within an hourly window for notifications.
Accomplishments that I'm proud of
I am particularly proud of implementing the web push capability in my application. I am also delighted with the way I solved the scheduling requirement.
What I learned
- Building a web application from start to finish.
- Concepts of PWA, Service Workers, Web Push
- Scheduling jobs
What's next for DAILY DOSE: Medicine Reminder
The following features can be added to Daily Dose:
- Using the phone camera to enter medicines instead of typing names.
- Improved reminders with sound and vibration.
- Tracking medication history for missed doses.
- Warning against possible interactions between medicines.
- Tracking medicine availability and providing refill reminders.
- Offline access.
- Implementing gamification to encourage patients to take medicines on time. I believe that many other features can be added, making this platform an interesting value add for ePharma companies.
Log in or sign up for Devpost to join the conversation.