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
| Trigger | Recipients | Channel |
|---|---|---|
| Assignment published | All enrolled students | In-app + push + WhatsApp (parent) |
| Due date 24h away | Students who haven't submitted | In-app + push |
| Submission graded | Student | In-app + push |
| Returned for revision | Student | In-app + push |
API Routes
POST
/api/assignmentsTeacher creates an assignment (draft by default)
GET
/api/assignmentsList assignments — scoped by role (teacher: own, student: enrolled, admin: all)
PATCH
/api/assignments/:id/publishPublish an assignment — notifies all enrolled students
PATCH
/api/assignments/:id/closeClose an assignment — no new submissions accepted
POST
/api/assignments/:id/submitStudent submits a response (file, text, or link)
GET
/api/assignments/:id/submissionsTeacher/admin views all submissions for an assignment
PATCH
/api/assignments/:id/submissions/:sid/gradeGrade a submission with marks, grade letter, and feedback
GET
/api/assignments/:id/my-submissionStudent 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