本文へスキップ
目次・ページ一覧

COMPASS Interactive / 開発者向け技術情報

システム構成

主要コンポーネントと通信経路
ブラウザReact / Vite教員:講義を操作学生:参加・回答Display:教室へ投影静的配信Cloudflare Pages取得・更新管理・AIPDF転送SQL / RPCAPI呼び出し保存・読出公開調整Auth / Data API認証・DBアクセスEdge Functions管理操作・外部API・認可Asset Worker資料の公開・Range配信PostgreSQL講義状態・権限集計・実行記録外部APIAI・文献検索Private R2PDF・アーカイブAuth・Data API・Edge Functions・PostgreSQLはSupabase上で稼働

ブラウザ教員・学生・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から静的配信。
SupabaseAuthによる認証、PostgreSQLの講義データ・RLS・RPC、Edge FunctionsによるAI処理と資料公開の認可。
Cloudflare Workers / R2PDFの受信・公開状態管理、認可付き配信、講義後アーカイブ。
.NET / C#Windows上でのPowerPoint観測、資料の対応付け、ページ更新の送信。
本体でReact / Viteを採用する構成上の理由

PDF描画、音声取得、状態同期はブラウザ上で継続して動作する。認証・DB操作・外部APIには独立したバックエンドがあるため、画面にSSR用サーバーを設けず配信できる。Next.jsでも同様の構成は可能だが、現行の役割分担ではSSRを導入する必然性は低い。この紹介サイト自体は、別リポジトリのNext.js静的出力である。

設計と実装