Inspiration
Medication non-adherence affects an estimated 50% of patients with chronic conditions. Most people still rely on paper prescriptions, memory, or generic phone alarms — none of which provide structured tracking, feedback loops, or visibility for their doctors.
We were inspired by this silent health crisis. We wanted to build something that doesn’t just remind patients to take their medicine, but also closes the loop with healthcare providers in real time — so doctors can intervene before non-adherence becomes a medical emergency.
What it does
Adhera is a full-stack web platform that helps patients stay on track with their medication while giving doctors actionable data.
For Patients:
- Register medications with flexible schedules (daily, specific weekdays, alternate days, or PRN)
- Receive automated email + browser push reminders
- One-tap responses: Taken, Missed, or Snooze
- Report side effects with severity grading (1–4). Severity 4 triggers emergency alerts within 60 seconds
- Live adherence dashboard with daily/weekly/monthly stats and trends
- Export personal data anytime (CSV/JSON)
For Healthcare Providers:
- Real-time dashboard of all assigned patients
- Critical alerts when weekly adherence drops below 70%
- Full per-patient history, feedback records, and exportable reports (PDF/CSV)
- Instant emergency notifications for severe side-effect reports
For Administrators:
- Full platform identity directory
- Provider verification workflow
- Patient–provider assignment management
- Comprehensive audit logging
How we built it
We designed Adhera as a three-tier system with a strong focus on reliability, security, and real-world usability:
- Backend: Python 3.10+ + FastAPI (async, type-safe, auto-documented OpenAPI)
- Database & Auth: Supabase (PostgreSQL 15+) with Row-Level Security, Auth, Realtime, and pg_cron
- Frontend: React 18 + Vite + TypeScript + Tailwind (glassmorphism dark-mode UI)
- Notifications: Web Push (VAPID) + Resend transactional email + Supabase Edge Functions
- AI: Gemini-powered medical chatbot with RAG over clinical references + medication context
- Deployment: Full-stack on Vercel (static frontend + Python serverless functions) with GitHub Actions CI/CD
Key architectural decisions:
- Append-only medication history — final outcomes (Taken/Missed) are immutable
- Timezone-aware scheduling — all times stored in UTC, displayed in the patient’s IANA timezone
- Race-condition-safe auto-expiry of overdue doses via
pg_cron+ON CONFLICT DO NOTHING - Strict role-based access with MFA support and session isolation
Challenges we faced
Reliable reminder delivery
Browser push notifications are notoriously flaky (permission states, expired subscriptions, OS throttling). We built idempotent dispatch with retry queues, automatic cleanup of dead subscriptions (404/410), and graceful email fallback.Append-only integrity vs. usability
Medical records must be tamper-proof, but patients sometimes need corrections. We solved this with superseding entries instead of updates, preserving a complete audit trail.Timezone + scheduling complexity
Supporting daily, weekday, alternate-day, and PRN schedules across timezones while preventing duplicate slots and handling daylight-saving transitions required careful database design and validation.Serverless cold starts + rate limiting
Deploying FastAPI as Vercel serverless functions introduced cold-start latency and required careful Redis/Upstash rate-limit storage and request-ID tracing.Balancing clinical seriousness with UX
We needed the UI to feel calm and trustworthy for patients while remaining dense and efficient for providers — solved with a consistent glassmorphism design system and role-specific dashboards.
What we learned
- How to design truly append-only systems for healthcare data
- Deep experience with Supabase (RLS, Edge Functions, pg_cron, Realtime)
- Practical challenges of Web Push in production
- Building production-grade FastAPI applications that run well in serverless environments
- The importance of accessibility and clear severity escalation paths in health software
What's next
- Caregiver delegated access (v2.0)
- Multi-language support
- Native iOS/Android apps
- EHR integration and drug-interaction checking
Built With
- chart.js
- css
- fastapi
- gemini
- postgresql
- push
- python
- react
- resend
- supabase
- tailwind
- typescript
- vercel
- vite
- web
- zustand

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