New_Micro_Learning/docs/manager-phase-1-report.md

3.2 KiB

Manager Phase 1 — Shell, navigation, dashboard, and personal learning

Delivered

  • Manager-specific navigation now labels Dashboard, My team, Team learning, Team courses, Reports, Notifications, and Personalization clearly.
  • My learning is permission-aware and appears only with learning.personal.view.
  • Manager personal learning reuses the learner home API and learner player; no second player or learning domain was introduced.
  • The Manager player route stays under /manager/my-learning/:assignmentId, while backend ownership remains tied to the authenticated user's assignment.
  • The dashboard now provides real compact KPIs for team members, active learners, completion rate, overdue learning, and upcoming deadlines.
  • Needs Attention remains the main actionable panel and links only to scoped team members.
  • Team course progress, upcoming deadlines, personal continue-learning, and recent team activity use real backend records.
  • A manager without an assigned team receives a useful empty state and retains a direct route to personal learning.

Data contract additions

GET /api/v1/manager/workspace adds:

  • overview.activeLearners
  • overview.dueSoon
  • recentActivity[]

Recent activity is selected only after managed-team member IDs and organization scope are resolved. The query is bounded to eight records and does not add an N+1 query.

Responsive and accessibility decisions

  • The dashboard uses existing semantic design tokens for light/dark compatibility.
  • Navigation keeps icon and text labels, visible focus, keyboard drawer behavior, and minimum touch targets.
  • Progress visuals now expose progressbar, min/max, and current value semantics.
  • Dense desktop KPI layout reflows to three, then two columns; dashboard panels and personal-learning rows become single-column where needed.
  • Automated browser checks cover 375, 768, and 1440 pixel widths with no document-level horizontal overflow.
  • Reduced-motion behavior continues to come from the shared application foundation.

Behavior intentionally deferred

  • Send Reminder and team learning assignment remain unavailable until Phase 3 backend permissions and recipient scoping exist.
  • Skills snapshot is not shown because the Manager workspace does not yet return a verified team skill model; this belongs to Phase 4.
  • Approvals are not shown because no approval domain/workflow currently exists.
  • Saved reports and pending approvals are not fabricated.

Verification

  • Backend authorization and workspace tests
  • Manager dashboard and personal-learning component tests
  • Shared learner player regression tests
  • Manager navigation permission tests
  • Full frontend and backend test suites
  • Frontend lint, TypeScript, and production build
  • PHP Pint format check
  • Playwright Manager desktop/tablet/mobile smoke test

Deferred technical debt

Medium

  • The production bundle already reports chunks over 500 kB. Route-level splitting should be handled as a dedicated performance task rather than mixed into Manager Phase 1.

Low

  • The local seeded Manager has no personal assignment by default, so the browser smoke test validates the honest empty state. Assigned-course rendering and ownership are covered by frontend and backend automated tests.