Skip to content

Latest commit

 

History

History
30 lines (24 loc) · 829 Bytes

File metadata and controls

30 lines (24 loc) · 829 Bytes

regulus

Two-pane selector/sorter over a virtual 1,000,000-element ID universe.

  • Backend: Express + TypeScript (in-memory state, no DB). Dedup+batch queue: mutations/reads flush every 1s, custom-adds every 10s.
  • Frontend: React + TypeScript + Vite. Left pane virtualized (react-window), right pane drag-and-drop sortable (dnd-kit). Filter, infinite scroll (pages of 20), persisted selection + order.

Develop

npm install
npm run dev:server   # :3000  (terminal A)
npm run dev:web      # :5173, proxies /api -> :3000  (terminal B)

Build & run (single process)

npm run build
npm start            # serves API + static on :3000

Test

npm test

Deploy

Docker container bound to loopback, behind host Caddy on the test box.

HOST_PORT=3900 docker compose up -d --build