Acecore Schools の紹介ページ、予約、会員ポータル、外部カレンダー連携を担当するアプリケーションです。
acecore.net 本体に Schools runtime を載せず、別 repo / 別 Cloudflare Pages project として管理します。
| Area | Responsibility |
|---|---|
acecore.net |
Schools への外部導線、旧 /schools/ リダイレクト、問い合わせ導線 |
acecore-schools |
Schools 紹介ページ、SEO、無料体験 CTA、無料体験予約、会員ポータル、予約変更・キャンセル、read-only ICS、Schools 用 Stripe |
| Acecore Accounts | 共通ログイン、共通 user id、メール確認、パスワードリセット |
acecore.net は予約 DB、Schools の Stripe webhook、会員 session、ICS token を持ちません。
Schools の予約作成・変更・キャンセルはこの app の portal/API からのみ行います。
Outlook などの外部カレンダー連携は read-only ICS feed に限定します。
- Platform: Cloudflare Pages
- Project name:
acecore-schools - Production domain:
schools.acecore.net - Build command:
npm run build - Build output:
dist - Runtime functions:
functions/
初期状態では deploy を壊さないため、D1 binding は wrangler.jsonc にまだ固定していません。
最初の予約 DB migration を追加する Issue で、preview / production の D1 database id を作成してから binding を追加します。
Planned binding: SCHOOLS_DB
想定テーブル:
- guardians
- students
- instructors
- courses
- availability_slots
- bookings
- booking_events
- calendar_feeds
- stripe_events
Cloudflare Pages の preview / production に分けて設定します。
CLERK_SECRET_KEYPUBLIC_CLERK_PUBLISHABLE_KEYCLERK_WEBHOOK_SECRETSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETRESEND_API_KEYSCHOOLS_ICS_TOKEN_PEPPER
wrangler.jsonc で管理します。
ACECORE_NET_URLPUBLIC_APP_URLALLOWED_ORIGINS
npm install
npm run dev
npm run buildRoutes:
/
/api/health