Assignments & Homework

Teacher-assigned tasks with file submission, text responses, grading, and parent notifications.

Assignments cover open-ended tasks (essays, projects, worksheets). They are separate from quizzes (MCQ auto-graded) and code submissions (Judge0).

Workflow

Teacher Creates→Published to Students→Student Submits→Teacher Grades→Feedback Returned

Assignment Configuration

  • Title, description, course link, optional session link
  • Due date with optional late submission allowance
  • Maximum marks (default 100)
  • Submission types: file upload, text response, URL link
  • Allowed file types: pdf, doc, docx, jpg, png, zip (configurable per assignment)
  • Max file size per upload (default 10 MB)
  • Status lifecycle: draft → published → closed
  • Teacher can attach reference files to the assignment

Grading

  • Teacher enters marks obtained, letter grade (auto-computed from marks), and written feedback
  • Submission statuses: not_submitted → submitted → graded → returned
  • Teacher can return a submission for revision — student can re-submit
  • Late submissions flagged with isLate: true

Notifications

TriggerRecipientsChannel
Assignment publishedAll enrolled studentsIn-app + push + WhatsApp (parent)
Due date 24h awayStudents who haven't submittedIn-app + push
Submission gradedStudentIn-app + push
Returned for revisionStudentIn-app + push

API Routes

POST/api/assignments

Teacher creates an assignment (draft by default)

GET/api/assignments

List assignments — scoped by role (teacher: own, student: enrolled, admin: all)

PATCH/api/assignments/:id/publish

Publish an assignment — notifies all enrolled students

PATCH/api/assignments/:id/close

Close an assignment — no new submissions accepted

POST/api/assignments/:id/submit

Student submits a response (file, text, or link)

GET/api/assignments/:id/submissions

Teacher/admin views all submissions for an assignment

PATCH/api/assignments/:id/submissions/:sid/grade

Grade a submission with marks, grade letter, and feedback

GET/api/assignments/:id/my-submission

Student views their own submission and grade

Frontend Pages

/dashboard/teacher/assignmentsTeacher assignment list with create button
/dashboard/teacher/assignments/createCreate form — course, due date, description, file attachments
/dashboard/teacher/assignments/[id]Assignment detail + all submissions + grade form
/dashboard/student/assignmentsStudent's assignment list with status badges
/dashboard/student/assignments/[id]Assignment detail + submission form + grade/feedback view
/dashboard/admin/assignmentsSchool-wide assignment overview