システム構成
ブラウザ教員・学生・Display / React・Vite
- 状態の取得・更新
- Data API(テーブル操作・RPC)→ PostgreSQL
- 管理・AI操作
- Edge Functions → PostgreSQL・外部API
- PDFの転送・閲覧
- Asset Worker → Private R2
- PDF公開の調整
- Asset Worker ↔ Edge Functions ↔ DB
状態の同期コメント・ライブ投票は全接続端末へのRealtime配信と、通常5秒間隔の状態取得を併用する構成。通知の欠落や切断時はDBの現在状態を再取得。
PowerPoint連携Windows / Presenter Bridge → Gateway・Edge Functions → 講義状態
字幕音声実行許可後、教員ブラウザからAI APIへ直接送信。
実行環境
| 環境 | 担当する処理 |
|---|---|
| React / Vite | ブラウザでの画面表示、PDF描画、マイク・WebRTC、文字起こしのローカル保存。Cloudflare Pagesから静的配信。 |
| Supabase | Authによる認証、PostgreSQLの講義データ・RLS・RPC、Edge FunctionsによるAI処理と資料公開の認可。 |
| Cloudflare Workers / R2 | PDFの受信・公開状態管理、認可付き配信、講義後アーカイブ。 |
| .NET / C# | Windows上でのPowerPoint観測、資料の対応付け、ページ更新の送信。 |
本体でReact / Viteを採用する構成上の理由
PDF描画、音声取得、状態同期はブラウザ上で継続して動作する。認証・DB操作・外部APIには独立したバックエンドがあるため、画面にSSR用サーバーを設けず配信できる。Next.jsでも同様の構成は可能だが、現行の役割分担ではSSRを導入する必然性は低い。この紹介サイト自体は、別リポジトリのNext.js静的出力である。