Inspiration
Medication adherence is a real and widespread issue. Many people, especially elderly individuals, college students living independently, and patients managing multiple prescriptions, forget to take their medication on time. Missed doses can reduce treatment effectiveness and sometimes lead to serious health consequences. We wanted to build something more supportive than a basic alarm app — something conversational, accessible, and intelligent. That idea became PillPal: an AI-powered medication reminder that not only tracks your schedule but also speaks to you like a companion.
What it does
PillPal is a web-based medication reminder assistant that combines real scheduling logic with AI conversation and voice interaction. Users can add medications with realistic dose options and choose from practical schedule types such as daily, weekdays, every other day, or a one-time dose for tomorrow. The app calculates the next scheduled dose dynamically based on the current time and displays it clearly in a dedicated section. Users can mark doses as taken, which prevents reminders from triggering again for that specific medication and time. PillPal also includes a chat interface where users can type or speak their questions. Voice input is transcribed using the Web Speech API, and AI-generated responses are both displayed in chat and spoken aloud using realistic text-to-speech. A mute toggle allows users to instantly stop or disable voice playback. All medication data is stored locally in the browser for simplicity and speed.
How we built it
PillPal was built as a lightweight full-stack web application. The frontend was developed using HTML, CSS, and JavaScript, with dynamic DOM updates to manage medication tracking and reminders in real time. Medication data is stored in LocalStorage to persist across sessions without requiring a database. The reminder engine continuously calculates upcoming doses by generating timestamped occurrences and comparing them against the current time to determine the next scheduled event. For AI functionality, OpenAI’s API powers the chatbot logic, generating short and safe responses based on user input and current medication data. To convert those responses into speech, we integrated the ElevenLabs text-to-speech API, which streams audio back to the browser for playback. The microphone feature uses the Web Speech API to capture user voice input and route it through the same AI pipeline. Together, this creates a seamless flow where OpenAI generates the response and ElevenLabs gives it a voice.
Challenges we ran into
One of the biggest challenges was building reliable scheduling logic that correctly identifies the next dose while preventing duplicate reminders. We had to generate unique identifiers for each medication occurrence based on date, medication ID, and time so that marking a dose as taken would immediately stop future alerts. Another challenge was stabilizing speech recognition, as stopping microphone recording sometimes caused event handler conflicts. Integrating OpenAI’s response structure required careful parsing of nested output objects to reliably extract the AI’s text. We also had to ensure that the mute toggle immediately stopped currently playing audio rather than simply preventing future playback. Balancing speed of development with safe AI guardrails was another important challenge, especially in a healthcare-related tool.
Accomplishments that we're proud of
We are proud of building a fully functional AI-powered voice assistant within a short hackathon timeframe. The application does more than display static reminders — it dynamically calculates medication schedules and integrates real conversational AI with natural-sounding voice output. The end-to-end pipeline from user input to AI reasoning to spoken output works smoothly and demonstrates a meaningful integration of multiple APIs. We also implemented safeguards to prevent medical advice misuse while maintaining helpful interactions. The final product feels polished, practical, and genuinely useful.
What we learned
Throughout this project, we learned how to integrate large language models safely into a healthcare-adjacent application while maintaining guardrails. We gained hands-on experience working with real-time audio streaming, speech recognition APIs, and time-based event logic in JavaScript. We also learned that user experience details, such as instant mute control and clean scheduling displays, significantly impact usability. Most importantly, we learned how powerful AI becomes when it is combined with structured system logic rather than used in isolation.
What's next for PillPal
In the future, PillPal could expand beyond browser-based reminders to include push notifications, SMS alerts, or caregiver monitoring tools. A secure backend to track consistency, and improved accessibility options for elderly users. With further development, PillPal has the potential to evolve from a reminder tool into a proactive digital health companion.
Built With
- css
- elevenlabs
- html
- javascript
- web-speech-api


Log in or sign up for Devpost to join the conversation.