UC-ADM-105: Student Progress & Enrollment View
1. Metadata
| Property | Value |
|---|---|
| ID | UC-ADM-105 |
| Actor | School Administrator |
| Trigger | Admin opens the Students section of the Admin Console |
| Pre-conditions | Students are enrolled in the system; at least one screening or activity exists |
| Post-conditions | Admin has a current, real-time view of enrollment and individual progress |
| Priority | P1 |
2. Description
The Student Progress & Enrollment View gives administrators a drill-down view of every enrolled student — their health screening history, module completion rates, and engagement status — directly from the Admin Console's Students panel.
3. View Modes
| View | Description |
|---|---|
| Enrollment Table | Paginated list of all students: Name, Grade, School, Enrollment Status, Last Check-in |
| Progress Bar | Per-student percentage of assigned curriculum completed |
| Screening Status | Date of last screening and next due date |
| Engagement Flag | "Active", "Partial", or "Inactive" based on last 14 days of activity |
4. Success Scenario
- Admin selects the Students section from the left navigation.
- System loads a paginated table (50 students per page) with sortable columns.
- Admin filters by school, grade, or engagement status.
- Admin clicks a student row — side panel opens with full activity history and module progress.
- Admin can export the current filtered view to Excel or PDF.
5. Acceptance Criteria
- [ ] Table must load in < 2 seconds for up to 5,000 students.
- [ ] Filters must be stackable (e.g., Grade 7 + Inactive + School X).
- [ ] Student detail panel must not navigate away from the main table (side panel or modal).
- [ ] Export must respect active filters — only export what is visible.
- [ ] Engagement flags must be calculated server-side, not client-side.
6. Data Flow
sequenceDiagram
participant A as Admin
participant UI as Admin Console
participant API as Backend API
participant DB as Database
A->>UI: Open Students section
UI->>API: GET /students?school=X&grade=7
API->>DB: Query with filters
DB->>API: Return student records + progress aggregate
API->>UI: Paginated response
UI->>A: Render enrollment table with progress bars
A->>UI: Click student row
UI->>API: GET /students/{id}/activity
API->>DB: Fetch full activity log
API->>UI: Return history
UI->>A: Show side panel with details