ASC Track Designer is a React and TypeScript editor for laying out PVC intelligent-car tracks. It also includes an optional Supabase-backed workshop for publishing, downloading, rating, and discussing public tracks. The desktop application uses Tauri 2 and the system WebView2 runtime; the same Vite frontend can be deployed as a static website.
- Node.js 20 or newer and npm
- Rustup with the repository-selected Windows GNU toolchain
- Microsoft Edge WebView2 Runtime
npm install
npm run devnpm run dev starts Vite and opens the Tauri desktop window. Use npm run dev:web when only the browser frontend is needed.
Copy .env.example to .env.local and provide the Supabase URL and publishable key to enable the workshop. Without them, the local editor remains fully usable. See docs/workshop-deployment.md for backend and OAuth setup.
npm run build
npm run dist:winnpm run build creates the static Vite site in dist/. npm run dist:win builds the optimized Tauri application and writes the single portable executable to release/ASC.<version>.exe. WebView2 remains a Windows system dependency. On first launch, the EXE writes its embedded 160 KB WebView2 loader to the user's application-data directory; no sibling DLL or Node.js server is required.
npm run lint
npm run typecheck
npm run test:run
npm run test:e2e
npm run tauri:checksrc/app/ application shell and global styles
src/features/pvc/domain/ geometry, parsing, statistics, and types
src/features/pvc/application/ editor state, history, and storage
src/features/pvc/ui/ PVC editor and SVG rendering components
src/features/workshop/ workshop domain, Supabase API, and community pages
src/shared/ platform adapters and legacy data migration
src-tauri/ Rust entry point, permissions, and app metadata
supabase/ database migration and Edge Functions
public/ web assets and product icon
tests/ Playwright browser workflows and fixtures
Generated folders such as dist/, release/, src-tauri/target/, and node_modules/ are ignored by git.