Skip to content

FAC-WEB feat: faculty overall rating UI (pairs with FAC-145) #150

Description

@y4nder

Summary

Frontend counterpart to FAC-145. Surfaces the faculty Overall Rating (50% Faculty Feedback + 25% Out-of-Classroom + 25% In-Classroom) and reorganises the per-type rating strip so the two ratings are no longer stacked and redundant at the top of the report.

Scope

  • New CompositeRatingSummaryStrip above the Insights/Scores/Feedback tabs, consuming GET /api/v1/analytics/faculty/:facultyId/overview. Shows:
    • Weighted rating + interpretation label
    • Coverage indicator (amber dot) for PARTIAL / PARTIAL_NO_FEEDBACK / FEEDBACK_ONLY / INSUFFICIENT states
    • Info popover with a per-track breakdown (weight / effective weight / contribution) and a coverage banner per state
  • New useFacultyOverview hook (TanStack Query) with a 60s stale time, gated on facultyId + semesterId.
  • Relocated per-type rating strip (HeadlineMetricsStrip) out of the screen header and into the Scores and Feedback tabs, directly under the questionnaire-type sub-tabs where the type is actually selected. Strip still shows rating + sentiment mini-bar + response count.
  • Rename: user-facing "Composite rating""Overall rating" in the strip, breakdown popover, and Export PDF tooltip. Internal identifiers (COMPOSITE_TYPE_ORDER, CompositeCoverageStatus, file names, etc.) kept as-is.
  • Always-rendered report shell so the sticky title + overall rating strip stay visible even while /report is loading or errored; a dual-failure placeholder shows "Faculty details unavailable".
  • Deleted unused faculty-analysis-hero.tsx (no consumers).

Non-goals

  • PDF export of the composite value (stays dashboard-only; tooltip on the Export button documents this).
  • Changes to the Insights tab — the existing FacultyAnalysisSentimentStrip already serves a similar headline role.

Related

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions