MedEase is a senior-friendly medication assistant built for fast live judging and real day-to-day clarity. It combines:
- secure email/password auth
- a large-type senior dashboard
- prescription management
- demo mode with instant medication simulation
- camera capture with graceful fallback
- instant mock AI verification
- medication event logging
- caregiver alerts and notes
- seeded demo data for a sub-30-second walkthrough
- Production app: https://medease-ashen.vercel.app
- GitHub repo: https://github.com/tigee1311/medease
- Senior account:
senior@medease.app/DemoPass123 - Caregiver account:
caregiver@medease.app/DemoPass123
- Open the live app and sign in with the senior account.
- Confirm that
Demo modeis enabled in the left sidebar. - On the dashboard, click
Take Medication (Try Demo). - Choose one of:
Simulate Correct MedicationSimulate Wrong MedicationSimulate Missed Dose - Show the verification result, confidence score, and alert banner.
- Click
Complete demo step. - Point to the updated dashboard intelligence and caregiver feed.
Recommended wow moment:
- use
Simulate Wrong Medication - highlight the red mismatch state and confidence bar
- show the
Caregiver has been notifiedbanner - open
Caregiver feedto confirm the alert was created
The app still supports the broader medication flow when you want a deeper walkthrough:
- the timeline page supports camera capture and upload fallback
- demo mode also adds one-click simulation buttons to the tracking cards
- caregiver events are created automatically for missed or review-required doses
- Senior-first interface with high-contrast panels, large hierarchy, and mobile-friendly spacing
- Dashboard-first demo CTA designed for a judge-friendly medication story in one screen
- System intelligence layer showing next dose timing, last taken time, and missed-dose alerts
- Caregiver visibility panel with contact info, monitoring status, and last alert timestamp
- Prescription cards with schedule times, day-of-week cadence, refill dates, and status controls
- Camera capture flow with permission handling, photo upload fallback, and verification state feedback
- Mock AI verification service that produces deterministic demo-friendly verification results
- Medication timeline that records taken, missed, and review-required events
- Caregiver event feed that can be triggered automatically or updated manually
- Demo mode toggle for instant judging and smoother walkthroughs
- Motion cues for success, mismatch, and step transitions
- Next.js 16 App Router
- TypeScript
- Tailwind CSS 4
- Prisma ORM 7 with the
@prisma/adapter-pgdriver adapter - Prisma Postgres on Vercel
- Custom JWT cookie auth with
jose - Playwright-based screenshot generation for docs
npm installCopy .env.example to .env and configure:
cp .env.example .envRequired variables:
DATABASE_URLpoints at a PostgreSQL databaseAUTH_SECRETsigns the session cookie and is mandatory in production
.env.local is also read and takes precedence over .env, matching Next.js.
npx prisma migrate deployUse npm run prisma:migrate instead when you are changing prisma/schema.prisma
and need a new migration.
npm run db:seednpm run dev- The app is deployed on Vercel.
- Prisma Postgres is connected through the Vercel marketplace integration.
AUTH_SECRETis configured in Vercel for production, preview, and development environments.- The production build uses
next build --webpackfor stable deployment behavior.
The live deployment was smoke-tested for:
- public page load
- production login with the seeded senior account
- authenticated dashboard rendering
- dashboard CTA demo flow execution
- seeded prescription reads
- production prescription creation
- medication event creation
- caregiver alert creation after a missed-dose write
- browser-level smoke test with no page or console errors during the demo flow
npm run devstarts local developmentnpm run buildbuilds the production app with Webpacknpm run lintruns ESLintnpm run db:seedseeds the demo accounts and workflow datanpm run prisma:generateregenerates the Prisma clientnpm run prisma:migratecreates and applies a new migration during development
The screenshot assets in docs/screenshots were generated from the live deployment with:
node scripts/capture-screenshots.mjs


