Problem: Several pages render blank (return null) during redirects or data loading. There are no empty state messages when lists have no items, skeleton/loading patterns are inconsistently implemented inline
Proposed Solution
- Add a shared
<FullPageLoader> for redirect pages (root, login, course redirect)
- Add
<EmptyState> components for empty lists (exercises, lectures, reports)
- Create a reusable
<Skeleton> component to replace ad-hoc inline loading states
- Add breadcrumb navigation on deep pages (exercises, attempts)