Skip to content

Frontend (React UI)

The web UI is a single-page app in suspicious-ui/, served by Nginx (port 9021) in production and proxied to the Django backend in development.

Stack

  • React 19 + TypeScript, built with Vite.
  • Material-UI (MUI v9) for components.
  • React Router v7 for routing.
  • TanStack Query v5 for server state; Zustand for client state.
  • React Hook Form + Zod for forms and validation.

Pages

Submit, Investigations, Campaigns, Alerts, Settings, Dashboard, and Profile. These map to the flows in the User Guide.

Testing

  • Unit/component tests: Vitest + jsdom + @testing-library.
  • End-to-end: Playwright.

Local development

cd suspicious-ui
pnpm install
pnpm dev        # Vite dev server on port 5173
pnpm test       # Vitest
pnpm test:e2e   # Playwright