ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證授業動画配信プラットフォーム。動画・発問・メモ・小テストで生徒の主体的な学びを支援する。
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗飲み込んで終わりにしない。反芻する学習サイト
「情報Ⅰ」授業用の動画配信プラットフォーム。phantom-meeting はコードネームで、リポジトリ名などはそのまま残している。
動画で学び、ノートで広げ深め、小テストで確かめる。動画を「ただ見るだけ」で終わらせず、自分のことばにする場をつくる。
名前・コンセプト・見た目の決まりは docs/design.md の「UIコンセプト」を参照。
memos)/teacher)— 「授業をつくる」「生徒をみる」で整理した一覧/teacher/analytics)— 単元別ヒートマップ(小テスト・単元・科目の平均正答率つき) / レッスン別の生徒×設問一覧 / 生徒別検索から個人詳細へ| 役割 | 技術 |
|---|---|
| フロントエンド | Next.js (App Router) |
| バックエンド | Next.js API Routes(Client からの mutation と秘匿キーが必要な処理のみ) |
| DB / 認証 | Supabase(Google OAuth) |
| ホスティング | Vercel(Functions は東京リージョン hnd1 固定。理由) |
| ランタイム | Node.js 24.x(本番・開発コンテナ共通。理由) |
| UI | shadcn/ui + Tailwind CSS |
| リッチテキスト | tiptap |
| コードエディタ | CodeMirror 6 |
| コード実行 | Pyodide(Python)/ サンドボックスiframe(JavaScript)、いずれもブラウザ内完結 |
| ドラッグ&ドロップ | @dnd-kit(小テスト並び替え問題) |
| 画像ホスティング | ImageKit |
| アナリティクス | Vercel Analytics / Speed Insights |
| AI | API 連携なし(AIで振り返る・データエクスポートは、プロンプトを生徒・教師が自分の AI に貼り付ける) |
| ドキュメント | 内容 |
|---|---|
| 設計 | 目的・名前・コンセプト・見た目の決まりと、その理由 |
| 機能設計 | 各機能の仕様と決めた理由、廃止・見送りした機能 |
| アーキテクチャ | データアクセスと処理の配置の方針、フォルダ構成 |
| 処理の配置一覧 | 画面ごとに、どの処理をどの層(フロント・API・DB)に置いたか |
| DBスキーマ | テーブルの定義と関係 |
| 技術スタック | 使っている技術と選んだ理由、デプロイ構成 |
| ロードマップ | これまでのフェーズと、これからの予定 |
| AIで振り返る | 生徒向けの振り返りプロンプトの仕様と理由 |
| ノートのひな形の JSON / 小テストの JSON | 生成 AI に下書きを作らせて取り込むときの形式と指示文の例 |
| ヤギの絵 | マスコットの一覧と生成の指示文 |
コマンドはすべて Docker コンテナ内で実行する(ホストで直接 npm は実行しない。git のみホストで実行)。
# 1. ローカル Supabase を起動(app コンテナとは別プロセス)
supabase start
# 2. .env.local を用意し、`supabase start` の出力に表示される値を設定
# NEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321
# NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=...
# SUPABASE_INTERNAL_URL=http://host.docker.internal:54321 # コンテナ→ホストの接続用
# SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID=...
# SUPABASE_AUTH_EXTERNAL_GOOGLE_SECRET=...
# IMAGEKIT_PRIVATE_KEY=... # 画像アップロード機能を使う場合
# 3. アプリコンテナを起動(http://localhost:3000)
docker compose up
開発環境では、ログイン画面のパネルから Google OAuth を使わずにシードの教師1名・生徒32名でログインできる。NODE_ENV=development かつ接続先がローカルの Supabase のときだけ有効で、本番では表示されず、ログイン用のルートも 404 を返す。
supabase db reset をすれば自動で準備される。reset せずに既存のローカル DB で使えるようにするには、次を実行する。
docker exec -i supabase_db_phantom_meeting psql -U postgres -d postgres < supabase/seeds/dev-login.sql
自由制作のダミーデータ(課題1件と提出物。内容はファイル冒頭に記載)も db reset で入る。reset せずに入れる、または初期状態に戻すには supabase/seeds/maker.sql を同様に流す。
ノートのひな形のダミーデータ(「CPUとメモリの役割」「2進数と情報量」の 2 レッスン)も同様で、supabase/seeds/note-templates.sql を流すと入る。
docker compose exec app npm run lint
docker compose exec app npm run typecheck
docker compose exec app npm test # 単体テスト(Vitest。src/**/*.test.ts)
docker compose exec -e NODE_ENV=production app npm run build # コンテナ既定の NODE_ENV=development のままだとプリレンダーで失敗する
docker compose exec app npm audit # 依存パッケージの既知の脆弱性を確認
docker compose down
supabase stop
posts・questions テーブルの削除、作品展の RLS、Phase 26)フェーズごとの内容とウェイトリストは docs/roadmap.md。