AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
COMPASS Platformは、主に北里大学の学生に向けて、学習・進路・コミュニティを横断したデジタル体験を提供する教育・テクノロジープラットフォームです。
Loading the full README.
Read the full README ↗Don’t Just Learn. Build What’s Next. 学びを、意思決定の力へ。
公開Web · 開発に参加する · アーキテクチャ · 文書索引 · 利用許可
COMPASS Platformは、主に北里大学の学生に向けて、学習・進路・コミュニティを横断したデジタル体験を提供する、学生主導型の教育・テクノロジープラットフォームである。北里大学および同大学の学部・研究室・関連機関の公式組織・公式サービスではない。
このリポジトリは、3D空間を取り入れた公式Webサイト、Contact・Communityの公開フォーム、未来戦略ライブラリの登録基盤(API・データベース・インフラ)と、その開発・検証の仕組みを管理する。COMPASS Interactiveのアプリケーション本体は、別のリポジトリ・別の環境で開発している。
開発に参加するときは次の3つを順に読み、作業のたびに関係する節を確認すること。AI agentも同じ文書に従う。
そのほかの文書は文書索引にまとめている。
公開ページは静的に配信し、利用者の入力を受ける処理だけをCloudflare Pages Functionsと登録基盤のAPIに分ける。
flowchart LR
Browser["ブラウザ"] --> Pages["Cloudflare Pages / 静的Web"]
Browser --> Edge["Pages Functions / Turnstile"]
Edge --> GAS["Google Apps Script / 公開フォーム通知"]
Browser --> Public["Library Public API"]
Browser --> Access["Cloudflare Access / 管理API Proxy"]
Access --> Admin["Library Admin API"]
Public --> DB[("PostgreSQL / 状態・権限・Outbox")]
Admin --> DB
Scheduler["Cloud Scheduler"] --> Worker["Drive Worker"]
Worker --> DB
Worker --> Drive["Google Drive"]
各サービスの役割はArchitectureにある。
| 環境 | 実行場所 | 構成 | 状態 |
|---|---|---|---|
| 公式Web | Cloudflare Pages(compass-official) | Next.jsのstatic export。mainへのmergeがProduction配信を起動し得る | Production |
| 公開フォーム(Contact・Community) | Cloudflare Pages Functions → Google Apps Script | Turnstileと入力検証の後、GASが通知メールを送る。問い合わせ本文と登録内容をデータベースに保存しない | ページはProductionで配信中。Turnstile・GAS・Secretの外部設定は各runbookでoperatorが確認する |
| 未来戦略ライブラリ登録基盤 | Google Cloud Run · Neon PostgreSQL | Public API、Admin API、Drive Worker、Migration Jobを分離 | Implemented, verification pending。本登録のroute・APIは未公開(Phase Roadmap) |
| COMPASS Interactive本体 | 別のリポジトリ・別の環境 | — | このリポジトリの対象外 |
Interactive紹介などの独立した編集範囲も同じNext.jsの成果物から配信するが、COMPASS公式サイトとは編集の範囲を分けている(Website Boundaries)。
| パス | 内容 |
|---|---|
src/app/ | 公式Web、Interactive紹介、Library関連のroute |
src/components/Habitat/ | 3D描画、セクション制御、メディア・音声処理 |
scripts/habitat/ / scripts/contact-entry/ | 3D・映像アセットの生成、変換、検証 |
src/library-registration/ | Library登録・管理UI、APIクライアント |
functions/ | Contact・Community、管理API Proxy、ドメインルーティング |
services/library-api/ | FastAPI、Drive Worker、Migration、Pythonテスト |
infra/library-registration/ | Terraform、Cloud Run、IAM、Secret Manager、Scheduler |
google-apps-script/ | Contact・Communityの通知処理 |
tests/ | フロントエンド、レスポンシブ、3D、配信まわりのテスト |
.github/workflows/ | CI、セキュリティチェック、依存関係の監査 |
docs/ | 方針、設計、運用手順の文書 |
公式トップは src/app/(official)/page.tsx → src/App.tsx → src/LegacyPageBody.tsx の順に描画される。LegacyPageBody.tsx は名称に反して現行の実装である。
公式トップのHabitatは、Three.jsのWebGL描画とHTMLのUIで構成する。9つのセクションに対応する空間とカメラを、1つのレンダラーで連続して描く。
実装はHabitat、設計はParent Desktop habitat、制作手順はAuthoring Guide、素材の出典はAsset Creditsにある。通常のWebビルドにBlenderは要らない。
詳細はMobile Space MediaとContact Door Entryにある。
ContactとCommunityの参加申請は、Next.jsの静的ページとCloudflare Pages Functionsで受け付け、Google Apps Scriptが通知メールを送る。
設定と運用の手順はContact Form OperationsとCommunity Registration Operationsにある。
状態はImplemented, verification pendingである。設計と実装はローカルと合成データで検証済みで、本登録のroute・APIの公開、billing、Terraform applyは未実施である。判定の正本はPhase Roadmapにある。
FastAPI、Neon PostgreSQL、Google Cloud Runを中心に構成し、Public API、Admin API、Drive Worker、Migration Jobを分けて、それぞれに必要な権限だけを持たせる。
| 仕組み | 防ぐこと |
|---|---|
| Google Driveへの権限の反映を、Transactional OutboxでWorkerへ渡す | データベースの更新とDriveの権限の食い違い |
| WorkerはCloud SchedulerからOIDC付きで起動し、Lease・Retry・操作署名を確かめてから実行する | 二重実行と、途中で失敗した処理の取り残し |
| サービスごとにデータベースのロールを分け、権限の境界をまたぐ処理はRPCに寄せる | 権限外の表の操作 |
| Google IDトークンと管理者権限をサーバー側で判定する | 画面の表示だけに頼った認可 |
| 管理APIはCloudflare Access、共有シークレット、データベースの権限を重ねる | 1つの防御を破られただけで行える管理操作 |
| Secret Managerで接続情報を用途ごとに分け、各サービスには必要なSecretだけを渡す | 1つのサービスからの全認証情報の漏えい |
| 管理操作、権限の変更、エクスポートを監査ログに記録する | 誰が何を変えたか追えないこと |
This is the beginning of the README. Read the rest at the original. Read the full README ↗