Add optional audio response for students in homework submissions

- Course: add allowAudio toggle (per-course setting, off by default)
- HomeworkSubmission: add audioUrl field
- Student: AudioRecorder in homework form when allowAudio is enabled
- Student: show audio player in submission view and curator feedback view
- Curator: show student audio on submission detail page
- AudioRecorder: accept uploadUrl prop (reused for student/curator)
- API: /api/student/audio-upload route for S3 upload

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-08 14:17:46 +05:00
parent 3855bbd4be
commit 48a9398905
10 changed files with 152 additions and 33 deletions
@@ -160,6 +160,19 @@ export default async function SubmissionPage({ params }: Props) {
)}
</div>
{/* Student audio */}
{submission.audioUrl && (
<div className="mb-4">
<p
className="text-xs font-bold uppercase tracking-widest mb-2"
style={{ color: "var(--muted-foreground)" }}
>
Аудио студента
</p>
<audio controls src={submission.audioUrl} style={{ width: "100%", height: 40 }} />
</div>
)}
{/* Student files */}
{files.length > 0 && (
<div className="mb-6">