Homework
A teacher creates a homework assignment for a section. Students see it, do it, submit. The teacher reviews and marks. Parents see the result.
This page is the canonical template for Feature Flow docs. Every other Feature Flow page should follow this shape.
At a glance
| Who can do this | Teachers create & review · Students submit · Parents view (read-only, surfaces as "Projects" in the parent app) |
| Where it lives | Teacher app /dashboard/assignments/* · Student app /dashboard/asignment* · Parent app /projects |
| Triggers notifications? | Yes — push + in-app, on assign and on review |
| Related features | Notifications · Coins & Credits · Diary |
How it flows
Status lifecycle
Draft exists only for the teacher's view; students never see Draft assignments.
Step-by-step
1. Teacher creates the assignment
- App / route: Teacher app →
/dashboard/assignments/create(or/dashboard/assignments/:assignmentId/editto revise an existing one) - What the teacher fills in:
- Subject (must be one the teacher is assigned to)
- Topic / title
- Description (rich text)
- Attachments (files via S3 upload)
- Due date and time
- The assignment is saved as
Draftuntil publish.
2. Teacher publishes to recipients
- App / route:
/dashboard/assignments/:assignmentId/assign - Teacher picks classes and/or specific students within those classes.
- On publish:
- Status flips
Draft→Assigned. - Push + in-app notification fires to every recipient student and their parents.
- Status flips
3. Student opens & does the homework
- App / route: Student app →
/dashboard/asignment(list) →/dashboard/asignment-detail/:assignmentId(detail). - The student can:
- Read description and download attachments.
- Compose a text answer.
- Attach files (S3 upload).
- Save as in-progress (their own draft) or submit.
4. Student submits
- On submit, status flips
Assigned→Submitted(orOverdue→Submittedif past due). - Teacher gets a push notification.
5. Teacher reviews & marks
- App / route:
/dashboard/assignments/:assignmentId/submissions→ tap a submission. - Teacher can:
- Read student's text answer and download their attachments.
- Score (against the assignment's max marks).
- Leave feedback text.
- On save, status flips
Submitted→Reviewed. - Student and parent both get a "result available" notification.
6. Parent visibility
- App / route: Parent app →
/projects. - The parent app re-skins assignments as "Projects".
- Parent sees: title, status, due date, score (if reviewed). No submission action — read-only.
Edge cases & things to test
These are the corners QA should hit when regression-testing the homework flow:
- Late submission: due date passes → student opens → can they still submit? Status should flow
Overdue→Submitted. - Re-submission: after submit, can the student edit and resubmit before review? After review?
- Empty submission: no text and no attachment — should be blocked client-side.
- Section reassignment: teacher creates assignment for Section A, then student moves to Section B — does the assignment disappear from the student's list?
- Teacher deletion after submission: what does the student see if the teacher deletes the assignment after submission?
- Attachment size limits: upload a 100 MB file — is it rejected at the right layer?
- Multi-child parent: parent with 2 children across 2 sections — do both children's homeworks show under their respective profiles, not mixed?
- Notification fan-out: teacher publishes to a section of 60 students — do all 60 students AND all their parents get notified within ~30 seconds?
- Offline submit: student submits while offline — what happens when they come back online?
- Class teacher vs subject teacher visibility: a subject teacher creates an assignment — does the section's class teacher also see it in their dashboard?
Related features
- Notifications — every transition above fans out push + in-app
- Coins & Credits — review can optionally award coins
- Diary — diary entries can reference homework
- Notice Board & Alerts — homework can also be announced as a typed alert