Age Medical

Team · Freelance

From booked appointment to issued invoice.

A connected clinic platform — patient portal plus doctor and admin apps for scheduling, invoicing, reports and chat — built with a team of six.

I built the scheduling API client, the paid booking → invoice bridge with an idempotent per-booking ledger, the session, role and ownership guard layer in front of the API, unified notifications, and doctor–patient chat with read receipts and attachments.

API routes behind one guard
78 / 83
query for unread counts
N+1 → 1

How it works

Booking → invoice
  1. bookingscheduling platform
    • signed webhook
    • reconcile pollmissed-webhook fallback
  2. appointment upsertPostgres
    • notify patient + doctor
    • mark paid
  3. invoice ledgerpending → created / failed
  4. invoice + PDF
Care-team chat
  1. doctor / patient
  2. route guardsession · role · ownership
  3. participant check
  4. message storecursor paging
  5. unread countsone SQL aggregate