Salon Admin UI — Quickstart
Salon Admin UI (salon-admin-ui) is the internal operations console for the Auralynk AI salon platform. It is a single-page React application used by internal operators to manage salon stores, monitor device health, review diagnostics, work a tasks queue, and administer operator accounts and RBAC roles.
Version: 2.2.1 | Deploy targets: console.auralynkai.com (prod) · console-uat.auralynkai.com (UAT)
Source: src/ | Template origin: shadcn-admin (adapted)
What the app does
Tech stack
Getting started
Prerequisites: Node.js with npm. (A pnpm-lock.yaml lingers from the original template but npm is used exclusively.)
The app runs at http://localhost:5173 by default.
Environment variables
These are the only two env vars. All .env.* files are committed — they contain only public endpoint URLs, no secrets. Use .env.local (gitignored) to override on your machine. See src/lib/config.ts for how they're used.
Available scripts
Project layout
Documentation sections
- Architecture — App boot, routing, auth flow end-to-end, HTTP client, shared infrastructure, contexts, deploy
- Features — Every business feature module: what it shows, what APIs it calls, key types, UI patterns
- Testing — Test structure, utilities, mocking approach, what's covered, how to run
Key conventions for agents
- Add a new feature: Create
src/features/<name>/withtypes.ts,api.ts, components, and tests insrc/test/features/<name>/. Add a route file insrc/routes/_authenticated/. Wire nav insrc/components/layout/data/sidebar-data.tswith a permission guard. - Add a new API call: Use
apiFetch<T>()fromsrc/lib/httpClient.ts. Never use rawfetchfor authenticated calls. - Add a permission gate: Use
<RequirePermission permission="resource.action">or thecan()helper fromuseAuth(). The permission string must also be added to the server-side permission catalog. - Table with URL-synced filters: Use
useTableUrlStatefromsrc/hooks/and theDataTable*components fromsrc/components/data-table/. - Do not add secrets to
.env.*files — all env files are committed. - Run
npm testandnpm run lintafter any change. CI is not yet configured; manual verification is required before deploy.