Front End and UI
This app shows how I turn real product data into clear, maintainable interfaces. It combines visual hierarchy, reusable React components, admin tooling, and typed page systems in a production-style Next.js project.
Data-dense interfaces
Sortable, filterable tables—client tables with paging and optional server-read variants—make rosters, event history, and participation easier to scan. Help text follows the viewport: header sorting on wide layouts and the mobile sort strip (column + direction) on narrow ones, matching the design-system table pattern.
Admin workflows
Role-aware tools support the full content lifecycle for players, users, events, event dates, and participation records.
Reusable UI composition
Cards, buttons, breadcrumbs, section headers, grid layouts, forms, and table controls create consistent page patterns.
Responsive presentation
SCSS partials, design tokens, layout utilities, and page-level styles keep the interface polished. Tables switch to a stacked “card row” layout on small screens with a dedicated sort control row; horizontal scroll is reserved for classic wide tables so mobile layouts are not fighting a nested scroll region.
Product Scope
The app includes public player and event pages, protected admin sections, editable forms, Supabase-backed data queries, participation syncing, metric-specific event displays, clan administration, and reusable table interactions—with responsive table chrome and hints consistent across app tables and the shared UI kit.
Recent work extends that system with player rename and clan-membership history, canonical clan codes on roster updates, and tighter coupling between auth-linked user roles and the player’s current clan—so UI, APIs, and persistence stay coherent as the dataset grows.
Those pieces work together as a complete interface system, connecting UI decisions, data modeling, access control, and component boundaries in a real application.