Skip to content

feat(admin): deliver Phase 4 platform administration experience#145

Merged
mrwrite merged 2 commits into
mainfrom
aqw-echoed-dev
Jul 13, 2026
Merged

feat(admin): deliver Phase 4 platform administration experience#145
mrwrite merged 2 commits into
mainfrom
aqw-echoed-dev

Conversation

@mrwrite

@mrwrite mrwrite commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

Implemented Phase 4 of the EchoEd UI/UX overhaul: the Platform Admin experience.

Changes include:

  • Canonical guarded routes under /admin.

  • Admin overview with supported attention states, platform counts, shortcuts, and partial-failure
    handling.

  • Privacy-conscious user directory, filtering, user details, role changes, and supported deletion
    actions.

  • Read-only organization oversight based on existing API scope.

  • Course oversight separated from Content Studio authoring.

  • Badge catalog and supported badge creation/upload.

  • Platform reporting using existing analytics data.

  • Responsive administrative tables and mobile data-list alternatives.

  • Accessible confirmation flows for destructive and privilege-changing actions.

  • Admin and compatible super_admin navigation behavior.

  • Seeded Admin Playwright coverage.

  • Admin production, privacy, accessibility, API-contract, and backend-gap documentation.

  • Backend repair for UUID user detail/update requests.

  • Backend route-order repair preventing /api/users/students from being shadowed by /api/users/
    {user_id}.

Motivation

Platform administrators needed a clear, trustworthy operational area for understanding users, roles,
organizations, courses, badges, and supported platform status.

The previous experience did not clearly distinguish platform oversight from teacher workflows,
Content Studio authoring, or organization-admin self-service. It also lacked consistent responsive
behavior, privacy-conscious information presentation, and clear handling of unsupported
administrative capabilities.

The backend repair was required because UUID-based user detail requests returned HTTP 500 in the
supported SQLite browser environment, blocking the Admin user-detail workflow.

Type of Change

  • Documentation
  • Frontend
  • Backend
  • Tests
  • Accessibility
  • Demo
  • Curriculum/community review
  • Other

Test Plan

List the checks you ran.

  • Backend tests
  • Frontend build
  • Frontend unit tests
  • Demo smoke test
  • Manual review
  • Not run. Explain below.

If you could not run a check, explain why:

Screenshots

Add screenshots for visible UI changes.

Accessibility Check

  • Preserved logical headings and role-aware navigation.
  • Added semantic desktop tables with responsive stacked-record alternatives.
  • Ensured hidden desktop tables are not focusable on mobile.
  • Added keyboard-operable filters, links, menus, and confirmation dialogs.
  • Used explicit accessible names for row and destructive actions.
  • Preserved dialog focus trapping and focus restoration.
  • Added loading, success, failure, empty, and permission announcements.
  • Used text with status indicators rather than color alone.
  • Added accessible names and fallback behavior for badge images.
  • Preserved readable text wrapping for long names and identifiers.
  • Maintained mobile touch targets and verified no horizontal overflow at 390px.
  • Preserved reduced-motion and visible-focus foundations.

Community or Curriculum Impact

This change does not modify curriculum content, historical claims, source quality, educator review
behavior, or community contribution flows.

Course information is presented for platform oversight only. The Admin area does not add Content
Studio authoring or publishing controls.

Unsupported moderation capabilities remain hidden because the existing APIs do not provide
authenticated, safely scoped moderation behavior.

Learner-sensitive information is omitted from broad Admin lists, and organization visibility remains
constrained by current backend authorization.

Notes

  • Existing legacy Admin routes remain available through guarded aliases or redirects.

  • super_admin is treated according to verified backend behavior and is not assumed to inherit all
    admin capabilities.

  • The backend change is limited to UUID route typing and static route ordering. It adds no endpoint,
    migration, schema, JWT, or seed behavior.

  • Platform-wide organization oversight, account suspension, badge lifecycle management, moderation
    queues, audit logs, and final-administrator protections remain documented backend gaps.

  • Dedicated privacy-minimized user API response schemas remain future work.

  • The Platform Admin production phase is complete. The full EchoEd UI/UX overhaul is not complete.

@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
echoed Ready Ready Preview, Comment Jul 13, 2026 11:38am

@mrwrite mrwrite merged commit 2155ad6 into main Jul 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant