UC-STU-006: User Profile & Personalisation
| Property |
Value |
| ID |
UC-STU-006 |
| Actor |
Student |
| Trigger |
Student opens Profile tab or completes onboarding |
| Pre-conditions |
Student is authenticated with a valid school account |
| Post-conditions |
Profile is saved; personalisation engine uses updated data |
| Priority |
P1 |
2. Description
The student profile is the personalisation anchor of the platform. It stores health baselines, dietary preferences, and learning history — driving personalised calorie goals (STU-003), adaptive content recommendations (STU-002), and progress visualisation (STU-004).
3. Profile Fields
| Field |
Source |
Editable |
| Name & Photo |
School onboarding |
View only (Admin manages) |
| Grade & School |
Admin-assigned |
View only |
| Date of Birth / Age |
Admin-assigned |
View only |
| Height & Weight |
Screening (FCM-201) |
Updated via screening only |
| Dietary Preference |
Student self-select |
Yes |
| Language Preference |
Student self-select |
Yes |
| Notification Settings |
Student |
Yes |
| Badges Earned |
System-generated |
View only |
4. Personalisation Impact
| Profile Data |
Drives |
| Age + Weight |
Calorie and hydration targets (STU-003) |
| Dietary Preference |
Content surfacing in video library (STU-002) |
| Grade |
Assigned curriculum module pool (ADM-101) |
| Language |
UI language and subtitle preference |
5. Acceptance Criteria
- [ ] Students can update dietary preference and notification settings without Admin intervention.
- [ ] Admin-assigned fields (grade, school, DOB) must be read-only to students.
- [ ] Height/Weight updates must only come through the Coordinator screening flow.
- [ ] Badges must be visible on the profile and link to the relevant activity.
- [ ] Profile photo upload must be optional and subject to file size limits (< 2 MB).
6. Profile & Personalisation Flow
graph TD
A[Student Opens Profile] --> B[Load profile from API]
B --> C[Display: Name, Grade, Screening Data, Badges]
C --> D{Student edits preferences?}
D -->|Yes| E[Update dietary/language/notification settings]
E --> F[Save to DB]
F --> G[Trigger personalisation recalculation]
G --> H[Update: Calorie Goal, Content Feed, Curriculum]
D -->|No| I[View only]