Goal
In the teacher email draft, include a parent name alongside the student name in the sign-off, so the teacher sees that the parent sent it on the kid's behalf.
Builds on #1 / PR #2 (the deterministic `composeTeacherEmail` formatter).
Where the name comes from
Add a parent name to the student data model (src/app/students.ts):
- Add an optional
parentName?: string to the Student type.
- Seed/Redis: the public single-student seed (
data/students.json, Mozart X) can carry a fictional parent (e.g. Mama Bear); real value lives only in prod Redis, per the de-identify-via-runtime-config approach.
- Thread it through:
teacher/page.tsx passes primary.parentName into composeTeacherEmail (extend ComposeInput).
Sign-off format
TBD — decide during implementation. Candidates:
— {parentName} & {studentName}
Thanks! / — {studentName} / (sent by {parentName})
— {parentName} (for {studentName})
Fallback
If no parentName is set (e.g. single-student deploy with none configured), the sign-off stays exactly as today: Thanks! / — {studentName}. No regression.
Out of scope
- A separate parent/guardian entity or account (the linked-account concept is unrelated here).
- Email delivery — still copy-to-clipboard only.
Goal
In the teacher email draft, include a parent name alongside the student name in the sign-off, so the teacher sees that the parent sent it on the kid's behalf.
Builds on #1 / PR #2 (the deterministic `composeTeacherEmail` formatter).
Where the name comes from
Add a parent name to the student data model (
src/app/students.ts):parentName?: stringto theStudenttype.data/students.json,Mozart X) can carry a fictional parent (e.g.Mama Bear); real value lives only in prod Redis, per the de-identify-via-runtime-config approach.teacher/page.tsxpassesprimary.parentNameintocomposeTeacherEmail(extendComposeInput).Sign-off format
TBD — decide during implementation. Candidates:
— {parentName} & {studentName}Thanks!/— {studentName}/(sent by {parentName})— {parentName} (for {studentName})Fallback
If no
parentNameis set (e.g. single-student deploy with none configured), the sign-off stays exactly as today:Thanks!/— {studentName}. No regression.Out of scope