Sign inSign up

kuberlab/records-ui

By kuberlab

Updated 1 day ago

Image
0

10K+

kuberlab/records-ui repository overview

records-ui

Admin dashboard for managing business records — clients, files/documents, smart lists, and audit logs. It is the frontend (single-page app) for the records-api backend; the goal is a fast, typed UI for staff to create and edit client records, upload and process documents, and review results.

Stack

  • React 19 + TypeScript 5.8 (strict), built with Vite 8
  • MUI 7 + MUI X (DataGrid 8, Date Pickers 8), @toolpad/core dashboard shell, SCSS + sx
  • React Router 7, state via React Context (no Redux)
  • Axios HTTP layer (base /api/v1), @tanstack/react-table, dayjs, notistack
  • Tests: Vitest (unit) + Playwright (e2e). Path alias @/*src/*.

Dev server proxies /api to the backend (default dev-records.kibernetika.io, override with VITE_PROXY_TARGET).

Run

npm install
npm run dev       # start dev server (proxies /api to the backend)
npm run build     # typecheck + production build

Tests

  • npm test — unit tests (vitest)
  • npm run test:e2e — mocked UI e2e (Playwright, no backend)
  • npm run test:e2e:real — real-backend e2e (manual only, see below)

Real e2e tests

tests/e2e-real/ drives the app against a real backend with real credentials and consumes real processing resources. It is fully isolated from npm run test:e2e and must be run manually.

Configure

Put credentials in a gitignored .env — either the repo-root .env (shared with the dev server) or tests/e2e-real/.env (overrides root). Only two vars are required:

[email protected]
REAL_PASSWORD=your-password

Optional:

# Backend the dev server proxies /api to. Must end in /api. Defaults to the dev backend.
VITE_PROXY_TARGET=https://dev-records.kibernetika.io/api
# Target an already-running UI instead of starting a local dev server:
REAL_BASE_URL=https://dev-records.kibernetika.io
# Upload-status polling (defaults shown):
REAL_UPLOAD_STATUS_TIMEOUT_MS=20000
REAL_UPLOAD_POLL_INTERVAL_MS=2000

See tests/e2e-real/.env.example for the full template. Missing creds fail loud.

Run
npm run test:e2e:real           # chromium (default)
npm run test:e2e:real:headed    # chromium, headed
npm run test:e2e:real:ui        # Playwright UI mode

Other browsers (install binaries first with npx playwright install firefox webkit):

npm run test:e2e:real -- --project=firefox
npm run test:e2e:real -- --project=webkit
# all three:
npx playwright test --config tests/e2e-real/playwright.real.config.ts

The test logs in, creates a client, uploads a questionnaire, waits for it to reach REVIEW_METADATA, then deletes exactly the upload and client it created.

Tag summary

Content type

Image

Digest

sha256:a2f0d81c3

Size

26.3 MB

Last updated

1 day ago

docker pull kuberlab/records-ui