Internal platform-admin web app for ClassPanel team members.
NOT the customer-facing app. The customer-facing React Native app lives in
ClassPanel.App.
- React 18 + Vite 5 + TypeScript 5 (strict mode)
- Tailwind CSS 4
- TanStack Router (file-based) + TanStack Query 5
- Lucide icons + Recharts (for platform-health charts)
pnpm install
pnpm devDev server: http://localhost:5173
The app talks to the API at VITE_API_URL (defaults to http://localhost:5187 in dev,
https://api.classpanel.net in production).
pnpm buildPOST /api/v1/admin/auth/login returns { accessToken, refreshToken, user }.
Tokens are stored in localStorage. Only users with is_platform_admin: true in
their JWT can sign in; the backend returns 403 NotPlatformAdmin otherwise.