Files
papercrate/frontend
nils be451bda1e
ci / docker (backend, backend/Dockerfile, backend) (push) Failing after 14s
ci / docker (frontend, frontend/Dockerfile, frontend) (push) Failing after 13s
dev: switch to fully containerized Docker Compose workflow
- Replace tmux setup with a full Docker Compose development stack
- Update backend Dockerfile to use `cargo-chef` caching and `supervisord`
- Containerize frontend development server
- Update tests to run in isolated containers
- Remove legacy `papercrate.tmux`
2025-12-17 19:55:47 +01:00
..
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00
2025-12-17 13:37:31 +01:00

Papercrate Frontend

A minimal Webpack-powered SPA to interact with the Papercrate Milestone 1 backend.

Prerequisites

  • Node.js 18+
  • Backend API running locally on http://127.0.0.1:3000

Setup

cd frontend
npm install

Development

npm run dev
  • Starts webpack-dev-server on http://localhost:5173
  • Proxies /api requests to the backend (no CORS needed)
  • Edit files in src/ and the browser reloads automatically

Production Build

npm run build
  • Output written to dist/
  • Set API_BASE_URL in .env.local if the API is not served from the same origin.

Code Quality

npm run check
  • Runs TypeScript type checking (tsc) and ESLint.
  • Use this before committing changes.

Features

  • Finder-style layout: folder tree, document table, and detail pane with metadata & tags
  • Drag-and-drop moves (documents between folders) and file uploads (window-wide or onto a folder)
  • Search box plus tag chips filter documents across the selected folder and all descendants
  • Tag management (create/assign/remove) from the detail panel
  • Login with a WebAuthn passkey created through the signup flow (no baked-in demo account)
  • Inline status banner for quick feedback on API interactions

Assets

  • The folder icon (src/assets/folder.svg) is derived from the Adwaita icon theme by the GNOME Project.