Skip to main content

Build an interactive classroom

A live class or workshop: the teacher presents, learners raise a hand before they speak, and the class runs polls, draws on a shared whiteboard and splits into breakout groups. The same room works for a tutoring session of two or a lecture of hundreds.

A teacher leading a hybrid class with remote learners on a shared screen
Polls
run and closed by the teacher, results shown live
Breakout rooms
that bring everyone back to the main room
3 UI levels
shown in one open-source classroom

How it fits together​

  1. Your serverOpens the classCreates the room with learners on approval.
  2. TeacherPresentsShares a screen or the whiteboard as the main view.
  3. LearnersAsk, vote, drawRaise a request, answer polls, join breakout groups.
  4. MediaSFURuns the roomMedia, polls, whiteboard, breakouts and recording.

What MediaSFU handles​

You needMediaSFU gives youRead
Learners who ask before speakingMic and camera on approval, with a request list for the teacherRooms API
Quick checks for understandingPolls the teacher creates, runs and closesLarge rooms and moderation
Drawing togetherA shared whiteboard the teacher opens to the classLarge rooms and moderation
Group workBreakout rooms, with everyone returned to the main room afterwardsBreakout rooms
Learners in other languagesLive translation of the teacher's speechTranslation configs
A recording for absent learnersCloud recording of the classRecordings API

Set it up​

  1. Create the class from your server. Learners request the mic and camera; chat stays open:

    curl -X POST https://mediasfu.com/v1/rooms \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $MEDIASFU_API_USERNAME:$MEDIASFU_API_KEY" \
    -d '{"action":"create","userName":"teacher","duration":90,"capacity":50,"eventType":"conference","meetingRoomParams":{"audioSetting":"approval","videoSetting":"approval","chatSetting":"allow","addCoHost":true}}'

    Add a co-host for a teaching assistant who can manage requests too.

  2. To record the class, add "recordingParams":{"recordingAudioSupport":true,"recordingVideoSupport":true} to the same request. The teacher starts recording from the room.

  3. Let the teacher and learners join from your app (below). Your server decides who is the teacher; the API key stays there (Secure backend).

Build it in your SDK​

Check it works​

  • Join as the teacher and as two learners on separate devices.
  • A learner turns on their mic: the teacher sees a request and approves it.
  • Run a poll, close it, and confirm every learner sees the result.
  • Open breakout rooms with one learner in each, then bring everyone back.
  • End the class as the teacher: learners see it finish.

Go further​