ZarinPal Merchant Analytics — Frontend
Persian RTL merchant analytics panel built with SvelteKit 2, Svelte 5, strict TypeScript, and Tailwind CSS v4.
Current state: design, specifications, implementation plan, and task list are approved. Phase 4 frontend implementation is authorized.
Local development
The dashboard is a client-rendered static SvelteKit application. During development, Vite serves it at http://127.0.0.1:5173 and proxies same-origin /api requests to the Go backend at http://127.0.0.1:8080. This preserves the backend-owned secure session model without storing credentials in browser storage.
Copy-Item .env.example .env
npm ci
npm run dev -- --host 127.0.0.1
Open http://127.0.0.1:5173. The demo merchant credentials are created by the backend importer/bootstrap process; they are intentionally not stored in this repository.
Quality commands:
npm run generate:api
npm run check
npm test
npm run build
PUBLIC_API_BASE_URL is public routing configuration, not a secret. Keep its default /api/v1 for the local Vite proxy and the production same-origin Nginx proxy.
DESIGN.md: visual language, interaction rules, responsive behavior, and current design-system state.docs/DASHBOARD-SPEC.md: approved product requirements and acceptance criteria for implementation planning.docs/DASHBOARD-UX-SPEC.md: detailed screen map, RTL layouts, async states, data presentation, accessibility, and authorized export workflows.tasks/plan.md: approved SDD Phase 2 dependency order, risk spikes, vertical slices, and approval gates.tasks/todo.md: approved SDD Phase 3 task list and dependency order for authorized Phase 4 implementation.AGENTS.md: durable rules for future coding agents and contributors.