01

Separate the instruction from the attempt

An assignment describes what the teacher expects. A submission describes what one student did in response. Keeping those concepts separate supports resubmissions, feedback history and multiple file uploads.

  • Assignment
  • Student submission
  • Submission files
  • Feedback
  • Status history
02

Treat status as a workflow

Pending, submitted, redo and reviewed are not labels added for the UI. They represent meaningful transitions and should be validated on the server.

03

Design for reporting while the schema is small

If the product will eventually show progress, late work or completion rates, store timestamps and identifiers that make those questions answerable without reconstructing history later.