salon-booking-ui — Quickstart
SalonCloud Online Booking Frontend is a consumer-facing single-page application (SPA) that lets customers self-book hair salon appointments. It is a pure frontend — there are no backend secrets, all sensitive operations happen on a separate backend API. The UI protects against abuse using Proof-of-Work (PoW) + email/SMS OTP, relying on the backend for rate limiting.
What This Repo Contains
Tech Stack
Local Development
The backend can be run locally with Docker Compose. The OpenAPI spec is at GET /openapi/booking.json and Swagger UI is at /docs.
Environment variable: Only one variable is needed:
Committed env files cover all modes (.env.development, .env.uat, .env.production). For local overrides, create .env.local (gitignored).
Running Tests
Tests use Vitest + jsdom. The Cloudflare plugin and PWA plugin are automatically disabled when process.env.VITEST is set, so tests work on any Node version — only running the dev server or building requires Node ≥ 22.15.
Routing
Important:
manageis a reserved word — the backend must never assign it as a merchant slug, because/manage/:tokenand/:slugwould otherwise collide.