Admoon International Dashboard

Overview

Building a high-density dual-portal platform (Client Portal & Admin ERP) from the ground up presented steep front-end engineering hurdles: concurrent API calls during JWT expiration triggered duplicate refresh queries that invalidated user sessions, monolithic form schemas in multi-step onboarding caused input lag, and heavy administrative workflows required rapid audit actions without repetitive full-page reloads.

Architected and implemented the entire dual-portal frontend from scratch as the sole developer using Vite, React, and TypeScript. Implemented an in-memory Axios interceptor subscriber queue serializing concurrent 401 requests during silent token renewal, isolated multi-step onboarding forms into step-validated Zod sub-trees with reactive pricing sidebars, and engineered contextual Material-UI drawer portals with optimistic TanStack Query cache synchronization.

Development Ownership
Solo Built From Scratch
Auth Renewal
Silent JWT Queue (185ms)
Interaction Latency
INP < 46ms
Admoon International Dashboard
ENGINEERING CHALLENGES

Technical Bottlenecks & Architectural Constraints

Building a high-density dual-portal platform (Client Portal & Admin ERP) from the ground up presented steep front-end engineering hurdles: concurrent API calls during JWT expiration triggered duplicate refresh queries that invalidated user sessions, monolithic form schemas in multi-step onboarding caused input lag, and heavy administrative workflows required rapid audit actions without repetitive full-page reloads.

Core Implementation Hurdles & Engineering Solutions:

Race Conditions During Concurrent 401 JWT Expiration

When multiple parallel background queries fail with 401 Unauthorized simultaneously, firing duplicate refresh requests invalidates refresh tokens and abruptly logs users out.

↳ Engineered an in-memory Axios interceptor subscriber queue (refreshSubscribers). The first 401 locks the queue and fires a single refresh request, while subsequent requests are buffered as callbacks and automatically replayed once the new bearer token resolves.

State Bloat & Input Latency in Multi-Step Financial Wizards

Hosting multi-currency selectors, dynamic fee tiers, and complex validation schemas in a single monolithic form context caused the entire component tree to re-render on every keystroke.

↳ Separated multi-step onboarding into step-isolated component subtrees, validating each step independently against dedicated Zod schemas while maintaining persisted draft state via lightweight Zustand slices.

Contextual Drawer State & Non-Blocking Cache Reconciliation

Rapidly auditing top-up receipts, rental requests, and consultation notes through sliding drawers caused UI layout shifts and visual lag if data had to be refetched on every drawer open.

↳ Decoupled drawer UI states into lightweight Zustand stores while mutating server cache optimistically via TanStack Query, rendering portal overlays instantly without layout shifts.

PERFORMANCE BUDGETS

Front-End Performance Budgets & Quality Gates

0146ms

Interaction to Next Paint (INP)

Target Budget: < 100ms

Measured via Chrome DevTools Performance panel during nested administrative drawer transitions. Kept main-thread blocking low using uncontrolled React Hook Form inputs and isolated drawer portals.

02185ms

Silent Token Refresh Latency

Target Budget: < 300ms

Measured via Chrome DevTools Network timing from initial 401 challenge to automated replay completion. Handled via in-memory callback queueing without browser reload or user session drops.

038.2ms

Data Grid Filter Commit Time

Target Budget: < 16ms

Measured via React DevTools Profiler flamegraph commit duration when filtering 1,000+ lead rows. Headless TanStack Table column memoization and client-side index lookup.

PROJECT SCREENS & INTERFACES

Interface & Architecture Showcase

Multi-Step Service Selection Wizard

Modular multi-step onboarding wizard where clients select from tailored agency services (Ad Account Setup, Campaign Audits, Suspension Recovery), triggering dynamic sub-flow dispatchers.

Multi-Step Service Selection Wizard

Intelligent Wizard Form & Real-Time Fee Summary

Step 3 of the order wizard incorporating conditional fields for account goals, marketing challenges, fee tier selections, and multi-currency options with a real-time reactive price summary sidebar.

Intelligent Wizard Form & Real-Time Fee Summary

Client Ad Account Telemetry & Spending Controls

Dedicated ad account monitoring interface providing clients with real-time balance tracking, daily budget ceilings, transaction logs, and top-up allocation requests.

Client Ad Account Telemetry & Spending Controls

Context-Aware Administrative Action Drawers

High-efficiency contextual side-drawers for rapid agency management: auditing payment receipts and executing balance top-ups, triaging high-risk account rental applications with standardized rejection codes, and recording sales consultation outcomes within the CRM lead pipeline. Integrated directly with TanStack Query for instant optimistic UI updates without full-page reloads.

Context-Aware Administrative Action Drawers 1
Context-Aware Administrative Action Drawers 2
Context-Aware Administrative Action Drawers 3
CORE MODULES

Front-End Implementations & Core Highlights

01Front-End Module

Solo Architecture Engineered 100% From Scratch

Architected and implemented the entire dual-portal frontend codebase independently from the ground up without templates.

  • ▸Structured modular feature-sliced architecture (user-panel and admin-panel) in Vite, React, and TypeScript
  • ▸Designed customized Material-UI theme tokens, responsive layouts, and atomic primitives
  • ▸Maintained full engineering ownership from initial project scaffolding to production delivery
02Front-End Module

Robust Token Setup & Silent JWT Refresh Queue

Engineered an enterprise authentication renewal lifecycle via Axios interceptors.

  • ▸In-memory subscriber queue (refreshSubscribers) buffering concurrent API calls during token refresh
  • ▸Automatic header authorization updates and synchronized Zustand store rehydration
  • ▸Seamless session recovery without interrupting active user workflows
03Front-End Module

Dynamic Multi-Step Wizard Engine

Developed modular multi-step form flows using React Hook Form and Zod validation.

  • ▸Step-isolated schema validation keeping form state intact during navigation
  • ▸Conditional field logic based on selected service options and tier selections
  • ▸Real-time cost calculator sidebar updating pricing dynamically as options change
04Front-End Module

Context-Aware Administrative Dynamic Drawers

Constructed reusable side-drawer overlay systems for complex admin workflows.

  • ▸Contextual action triggers for top-up approvals, compliance audits, and CRM lead consultations
  • ▸Isolated drawer portals maintaining sub-46ms INP during rapid toggling
  • ▸Integrated with TanStack Query for optimistic updates and automated cache invalidation
ARCHITECTURAL DECISIONS & TRADE-OFFS

Technical Trade-offs & Engineering Decisions

Every architectural choice balances runtime performance, team velocity, and production scale. Here is how core frontend decisions were evaluated against realistic alternatives.

Decision 01Architecture

Authentication Architecture: In-Memory Subscriber Queue vs Interval Timers

✓ Chosen Approach

Axios Interceptor In-Memory Subscriber Queue

✕ Alternative Evaluated

Proactive JWT setTimeout refresh or Web Workers

Engineering Rationale

Proactive interval timers can drift, fire while the user is inactive, or waste network bandwidth. Catching 401s reactively and queueing concurrent inflight requests guarantees that token renewal only happens when strictly necessary, with zero dropped requests.

Decision 02Architecture

Data Grid Component: Headless TanStack Table vs Pre-built MUI DataGrid

✓ Chosen Approach

Headless TanStack Table

✕ Alternative Evaluated

MUI DataGrid Pro / AG-Grid Enterprise

Engineering Rationale

MUI DataGrid Pro imposes high runtime bundle weight (~180KB) and rigid styling constraints. Headless TanStack Table gave full control over DOM markup, custom virtualization, and theme styling while keeping bundle overhead under 15KB.

Decision 03Architecture

Form Validation: Step-Isolated Zod Schemas vs Monolithic Formik

✓ Chosen Approach

React Hook Form + Step-Isolated Zod Schemas

✕ Alternative Evaluated

Formik with Single Yup Object Schema

Engineering Rationale

Monolithic Formik forms trigger tree-wide re-renders on every keystroke and require giant unified schemas. Step-isolated Zod schemas with React Hook Form's uncontrolled ref architecture kept input lag below 5ms.

Decision 04Architecture

State Management: Zustand Slice Pattern vs Redux Toolkit

✓ Chosen Approach

Zustand with Selective Persistence & Slice Pattern

✕ Alternative Evaluated

Redux Toolkit (RTK) + Redux-Persist

Engineering Rationale

Redux Toolkit introduces excessive action dispatch boilerplate for UI-only states (drawer toggles, active tabs). Zustand allowed lightweight, atomic store subscriptions with zero boilerplate.

SOLUTION & ARCHITECTURE

The Engineering Solution

Architected and implemented the entire dual-portal frontend from scratch as the sole developer using Vite, React, and TypeScript. Implemented an in-memory Axios interceptor subscriber queue serializing concurrent 401 requests during silent token renewal, isolated multi-step onboarding forms into step-validated Zod sub-trees with reactive pricing sidebars, and engineered contextual Material-UI drawer portals with optimistic TanStack Query cache synchronization.

Build & Core

Vite + React + TypeScript (Solo Architecture)

Routing & Architecture

React Router (Clean domain separation between User and Admin portals)

Token Setup & HTTP

Axios + Silent JWT refresh handler with in-memory subscriber queuing

Form & Wizard Engine

React Hook Form + Zod (step-isolated schema validation & conditional fields)

Dynamic Drawers & UI

Material-UI (MUI) custom drawer overlays with contextual action handlers

State Management

Zustand (slice pattern, devtools, selective persistence middleware)

Server State & Caching

TanStack Query (React Query) wrapping Orval OpenAPI client functions

Data Grids

TanStack Table (headless, virtualized pagination, sorting & column visibility)

Data Visualization

ApexCharts (interactive reporting dashboards & lead funnels)

RESULTS & IMPACT

Results & Takeaways

01

Architecting and building a dual-portal enterprise dashboard completely from scratch as the sole developer requires strict modular feature boundaries to maintain velocity and code quality.

02

Implementing silent JWT refresh with an in-memory subscriber queue prevents session drops during concurrent API requests, ensuring zero user disruption during token renewal.

03

Decoupling complex multi-step form wizards into step-isolated components with dedicated Zod schemas ensures predictable state management, step validation integrity, and high code maintainability.