UC-STU-001: Daily Health Logging
1. Metadata
| Property | Value |
|---|---|
| ID | UC-STU-001 |
| Actor | Student |
| Trigger | Periodic health hour notification or manual intent |
| Pre-conditions | Student is authenticated; School profile is active |
| Post-conditions | Health record is persisted; Metrics are validated; Score updated |
| Side Effects | Trigger anomaly alert if BMI exceeds threshold; Update achievement points |
2. Description
The core mechanism for students to self-track physical growth (Height/Weight) and daily nutritional habits (Water, Fruit intake). This data feeds into the global M&E framework.
3. Success Scenario
- Initiation: Student launches the app and selects the "Growth Tracker" widget from the dashboard.
- Context Check: System retrieves the last recorded height/weight to prepopulate 'expected' ranges.
- Data Entry:
- Student enters Height (cm) and Weight (kg).
- Student toggles Daily Nutrition Checklist (e.g., "Had Green Veggies", "8 Glasses of Water").
- Validation: System performs a range check (e.g., Height cannot decrease) and a logic check (e.g., Weight > 100kg flags a 'Verify' prompt).
- Score Calculation:
- System calculates BMI-for-Age percentile using internal WHO reference library.
- System updates the "Weekly Nutrition Score" card.
- Persistence:
- Data is encrypted (AES-256) and stored in the local SQLite buffer.
- System attempts background sync to the cloud API backend when connectivity is available.
- Feedback: System displays a "Goal Met" animation and unlocks the next "Nutrition Badge."
4. Acceptance Criteria
- [ ] Data Integrity: Input validation prevents negative values or extreme outliers (>3 sigma from age mean).
- [ ] Performance: Dashboard score update occurs in < 500ms post-submission.
- [ ] Offline Resilience: App must successfully store 30+ days of logs without connectivity.
- [ ] Privacy: Individual health metrics are encrypted at rest on the device.
- [ ] Accessibility: Input fields support high-contrast mode and large-touch targets (min 44px).
5. Decision Logic (BMI Evaluation)
flowchart TD
Start([Data Input]) --> Calc[Calculate BMI: weight / height^2]
Calc --> Lookup[Retrieve WHO Percentile]
Lookup --> Check{Percentile Range}
Check -- "> 95th" --> Doctor([Recommendation: Consult Doctor])
Check -- "< 5th" --> Protein([Recommendation: Increase Protein])
Check -- "5th to 95th" --> Optimal([Recommendation: Optimal])