Source: https://mokxi.com/docs/classrooms/handouts-and-submissions
Updated: 2026-09-27

Getting started The editor Boards Parts Accounts and plans Live collaboration Classrooms Running a class Join codes, rosters and seats Assignments and submissions Auto-graded checks Joining a class and submitting work Lessons and the learning game Troubleshooting Reference

Docs / Classrooms / Assignments and submissions

# Assignments and submissions

Giving a class something to build, and getting it back.

## The two kinds

An assignment points at one of two things.

A project. Any circuit: one of your own, one of the built-in projects, or
anybody's public one. Assigning your own private circuit keeps it private:
the students in that class can open it, read-only, and nobody else can. It does
not go into the gallery, onto your profile or into search. You cannot assign
somebody else's private project, which you could not open either.

A lesson. One of the built-in lessons, or one you wrote yourself. The
student follows the steps in the editor and the simulator checks the circuit at
each checkpoint.

Each assignment has a title, which defaults to the project's own name, and an
optional due date. A class holds up to two hundred assignments.

## Locking the starter circuit

An assignment is often a circuit the class is meant to build around rather than
rebuild. Lock the parts and wires you want held and they stay where they are for
everybody who opens it.

Select what you want held and press Lock in the properties panel, or use the
canvas toolbar's more menu: Lock selection, Unlock selection, Lock
all and Unlock all. Lock the code in the same menu holds the code of
every board in the document; it carries a tick, so the menu says what is true.

The flags are on the document, so they travel with everything the document
travels with: a share link, an export file, and the copy a student forks.

Who may take a lock off. Work opened from a class assignment belongs to the
class, so only a teacher of that class may unlock it, and the role comes off
the class the server hands back, not off the URL. A student who forks the
assignment owns their copy and still may not unlock it, which is the whole point
of a locked starter. Anywhere else, a lock is undone by whoever owns the
project, which is you on the assignment you are building.

For you the lock is a badge rather than a wall: your own gestures are not
refused. The room refuses a lock change from anybody who is not the project's
owner on the server as well, so a modified browser changes nothing for anybody
else.

The simulation never sees a lock. A locked part is an ordinary part to the
engine, and the circuit runs exactly as it would have.

## What the student sees

On their class page, the assignment with an Open button. Opening it takes them
into the editor with that project or lesson loaded and the assignment attached
to the session.

## Submitting

In the editor, an assignment adds one more item to the Save menu: it submits
the saved project to the class. That is the whole mechanism. There is no
separate upload and nothing to attach.

For a lesson, their progress goes with it, so the dashboard shows how many steps
they have passed rather than only whether they pressed a button.

## What you see

On the dashboard, each assignment shows how many have submitted and a grid of
the class against it. A student who has submitted a project gives you a link
straight to it.

A student sees their own submission and nobody else's. That is enforced on the
server, not in the page, which is why the student and teacher dashboards are the
same code.

## What changed

Each student works on a copy of the starter you gave the class, so the useful
question is not what the circuit is but what the student did to it. Under each project
assignment, What came back lists everybody who submitted with one line
saying exactly that: 3 parts and 5 wires added, 1 wire removed, sketch
changed. You can read a whole class off that list without opening anybody.

Changes on a row opens the rest of it:

- Parts added, removed and moved, each with its type and its id.

- Wires added and removed, named by the two pins they join rather than by
their id, so a wire the student redrew between the same two points does not
count as a change.

- Properties changed, with the old value and the new one.

- Net labels renamed, added and cleared.

- Sticky notes put down, taken away and rewritten. A note that was only
dragged somewhere else is not a change; a note is its words.

- Code, as a line by line diff of every file that differs, on every board.

Underneath is the student's own circuit with the changes drawn on it: what they
added glows in the accent, everything the starter had and they deleted is
ghosted back in, dashed and dim, where the starter had it, and a part they
dragged has a thin arrow from where it was to where it is. Hide the changes
takes the drawing back to the plain circuit.

Two things deliberately do not show up. Locks (a held part, a held wire,
read-only code) are how you set the exercise up rather than something the
student did. And a submission you cannot open is a submission you cannot compare: a
student's project is private until they make it public, so the row says so
instead of guessing.

## Removing one

Removing an assignment removes the submissions with it, and the page says so before
it does.

## A class room

An assignment that points at a project can carry a live collaboration room, so
the whole class opens the same circuit together from their own class page and
nobody has to be sent a link. The room holds the whole class (forty-one people)
when the teacher is on Teacher or inside the trial, five people on Pro, and has
no people limit on a school's plan. See
rooms and
how many people fit.

## Also

- Running a class

- Joining a class and submitting work

### On this page

The two kinds Locking the starter circuit What the student sees Submitting What you see What changed Removing one A class room Also
