🆕 Smalruby 独自 — upstream に存在しない、Smalruby のために新規追加された機能 日本の学校での利用に特化したクラス管理・作品提出機能。upstream の Scratch には存在しない。
Smalruby Classroom は、日本の学校の授業で Smalruby を使うためのクラス管理・作品提出機能です。
先生が Google または Microsoft アカウントでログインしてクラスを作り、生徒は参加コードと席番号でクラスに参加します。生徒はプロジェクトをワンクリックで提出でき、先生はリアルタイムで一覧・確認・返却できます。
| ドキュメント | 内容 |
|---|---|
| システム構成 | AWS / GCP / Azure サービス、API ルート、データモデル |
| ユーザーストーリー | 先生・生徒それぞれの利用フロー |
| UI/UX | 画面遷移、各フェーズの説明 |
| 費用見積もり | AWS / GCP の想定費用 |
| ソースコード | 関連ファイル一覧 |
| テスト | data-testid 一覧、Playwright / 結合テスト |
| Microsoft 認証 | MSAL.js 統合、サイレント再認証、Azure Portal 設定 |
- Smalruby を開く(
https://smalruby.app) - メニューバーの「クラス」をクリック
- 「先生」を選択 → Google または Microsoft でログイン
- 「クラスをつくる」→ クラス名と人数を入力
- 生成された参加コードを生徒に伝える
- 先生から参加コードを受け取る
- Smalruby を開く(参加リンク or
https://smalruby.app) - 「生徒」→ 参加コード入力 → 席番号を選択
- プロジェクトを作成し「提出」ボタンで提出
- 先生がメンバーを Remove すると、対象の生徒は次にクラスモーダルを開いたタイミングで「先生によってクラスから退室させられました」と通知され、自動で出席番号選択画面に戻ります。同じクラスの席を即座に選び直して再参加できます。
- 生徒は seat 選択画面で「使用中」の席をタップして、先生に退室を依頼できます。先生はクラス詳細の座席バッジ + メンバー詳細パネルで「承認 (kick)」「却下」を選べます。
- 生徒のクラス参加状態は localStorage に永続化されており、ブラウザ再起動・新タブ・classcode URL の再オープンでも保持されます (旧仕様: sessionStorage)。
- 異なる classcode URL を開くと、古い席はサーバー側でも自動で leave されます。
クラスに参加中(生徒)または先生がクラス管理でクラスを選択中の間、Mesh v2 のドメインはそのクラスの参加コードに自動で固定される。これにより同じクラスの先生・生徒が自動で同じ Mesh ドメインに集まる。詳細は docs/mesh-v2/README.md を参照。
- Google アカウントまたは Microsoft アカウント(先生のログインに必要)
- モダンブラウザ(Chrome / Edge / Firefox / Safari)
- インターネット接続
クラス機能は CLASSROOM_API_ENDPOINT 環境変数が設定されている場合に有効です(メニューバーに「クラス」ボタンが表示されます)。
