GET /api/clinics?q=<keyword>&categories=<ids>
GET /api/clinics/<clinic-id>
GET /api/vets?q=<keyword>
GET /api/categories
GET /api/stats
┌──────────┐ ┌────────────────────────────┐ ┌────────────┐
│ Browser │───▶│ Cloudflare Pages (CDN) │───▶│ Cloudflare │
│ (you) │ │ ┌──────────────────────┐ │ │ D1 │
└──────────┘ │ │ public/ static │ │ │ (SQLite) │
│ │ index.html, app.js │ │ │ hkvet │
│ └──────────────────────┘ │ └─────▲──────┘
│ ┌──────────────────────┐ │ │
│ │ functions/* (workers)│──┼──────────┘
│ │ /api/clinics/* etc. │ │
│ │ /clinics/[id] (SSR) │ │
│ └──────────────────────┘ │ ┌─────────────┐
└────────────────────────────┘ │ vsbhk.org.hk │
│ pets.gov.hk │
┌──────────────────────────┐ │ google maps │
│ Cloudflare Worker (cron) │────▶│ │
│ Mondays 11:00 HKT │ └──────────────┘
└──────────────────────────┘
-
Cloudflare Pages
-
Cloudflare Pages Functions
-
Cloudflare D1
-
-
Google Maps JavaScript API + Geocoding API
-
-
-
-
-
-