ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
飲み込んで終わりにしない。反芻する学習サイト
Translation pending
EducationTypeScript · PLpgSQLGitHub @mmmmatsuuuuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
授業動画配信プラットフォーム。動画・発問・メモ・小テストで生徒の主体的な学びを支援する。
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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。