Paperjet/frontend
2026-08-14 21:05:22 -07:00
..
public Initial commit with Phase 0 Scaffolding 2026-06-10 18:28:17 -07:00
src Rescue Paperjet v1 implementation 2026-08-14 21:05:22 -07:00
.gitignore Initial commit with Phase 0 Scaffolding 2026-06-10 18:28:17 -07:00
.npmrc Phase 3 implementation. Coordinate system implemented. Initial text box tool implemented. 2026-06-12 16:30:07 -07:00
Dockerfile Phase 3 implementation. Coordinate system implemented. Initial text box tool implemented. 2026-06-12 16:30:07 -07:00
eslint.config.js Initial commit with Phase 0 Scaffolding 2026-06-10 18:28:17 -07:00
index.html Initial commit with Phase 0 Scaffolding 2026-06-10 18:28:17 -07:00
nginx.conf Phase 3 implementation. Coordinate system implemented. Initial text box tool implemented. 2026-06-12 16:30:07 -07:00
openapi.json Phase 3 implementation. Coordinate system implemented. Initial text box tool implemented. 2026-06-12 16:30:07 -07:00
package-lock.json Initial phase 4 extra tools, bug fixes, multi select changes. 2026-06-13 12:15:22 -07:00
package.json Initial phase 4 extra tools, bug fixes, multi select changes. 2026-06-13 12:15:22 -07:00
README.md Rescue Paperjet v1 implementation 2026-08-14 21:05:22 -07:00
tsconfig.app.json Phase 3 implementation. Coordinate system implemented. Initial text box tool implemented. 2026-06-12 16:30:07 -07:00
tsconfig.json Initial commit with Phase 0 Scaffolding 2026-06-10 18:28:17 -07:00
tsconfig.node.json Initial commit with Phase 0 Scaffolding 2026-06-10 18:28:17 -07:00
vite.config.ts Fix bugs, convert thumbnail to png, add context menu 2026-06-10 19:06:28 -07:00
vitest.config.ts Initial commit with Phase 0 Scaffolding 2026-06-10 18:28:17 -07:00

PaperJet frontend

This directory contains the React/Vite client for PaperJet. Run the full stack from the repository root; the root README has Docker and local development instructions.

Useful commands

npm ci
npm run dev       # Vite with /api proxied to localhost:8000
npm test -- --run
npm run typecheck
npm run lint
npm run build

The editor renders PDF pages with PDF.js and uses Fabric.js for the annotation layer. Annotation state is persisted through the backend API; the browser does not write PDF bytes directly.