Skip to content

feat: クラスルーム — 生徒への返却通知・コメント表示 #451

@takaokouji

Description

@takaokouji

Summary

教師が作品を返却したとき、生徒側に返却状態とコメントを表示する。

Parent: #442

背景

PR #446 で教師がコメント付きで作品を返却する機能を実装した(PATCH /submissions/{id})。しかし、生徒側では返却されたことを知る手段がない。

現在の生徒の submissionStatus は Redux + localStorage にローカル保持されており、サーバー側の状態変化(submittedreturned)は反映されない。

実装方針

生徒がモーダルを開いたときにサーバーから状態取得

student-status フェーズの表示時に、サーバーから最新の提出状態を取得する。

案 A: verify-session のレスポンスを拡張(推奨)

既存の POST /classrooms/verify-session はセッションの有効性を確認するだけ。レスポンスに提出状態を含める:

{
  "valid": true,
  "submission": {
    "status": "returned",
    "teacherComment": "よくできました!",
    "submittedAt": "2026-04-04T23:48:51.000Z"
  }
}
  • Lambda: handleVerifySession で SubmissionsTable を検索し、最新の提出情報を返す
  • フロントエンド: student-status 表示時に verifySession のレスポンスから提出状態を更新

案 B: 新 API エンドポイント

GET /classrooms/{classroomId}/submissions/me — sessionToken 認証で自分の提出を取得。シンプルだが新ルート追加が必要。

生徒 UI の変更

student-status 画面の提出状態表示を拡張:

未提出:   提出: 未提出             [提出する]
提出済み:  提出: ✓ 提出済み 23:48   [再提出する]
返却済み:  提出: ↩ 返却済み 23:48   [再提出する]
          コメント: よくできました!

変更ファイル

  • infra/smalruby-classroom/lambda/handler.ts — verify-session レスポンス拡張
  • packages/scratch-gui/src/containers/classroom-modal.jsx — 提出状態のサーバー取得
  • packages/scratch-gui/src/components/classroom-modal/classroom-modal.jsx — 返却済み + コメント表示
  • packages/scratch-gui/src/reducers/classroom.js — submissionStatus に 'returned' 対応
  • packages/scratch-gui/src/locales/{ja,ja-Hira,en}.js — i18n キー追加

data-testid

data-testid 要素 説明
classroom-status-returned span 返却済みステータス
classroom-status-teacher-comment div 教師コメント表示

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions