Backend (Django 6.1 + DRF): - Token auth with a custom User model (register/login/logout/me) - Library models (MediaItem, MediaLocation) and REST endpoints - File list/detail with search, rating filter, sorting, pagination - Multipart upload with optional rating/tags/notes - Range-aware media serving (video seeking) and ffmpeg thumbnails - scan_files management command for the watched folder Frontend (React 19 + Vite + TypeScript): - Catppuccin Mocha design tokens from the design docs - App shell, token persistence, protected routes - Library grid with filters, file detail with custom data editor - Upload page with per-file progress via XHR - Dev proxy to the Django API
34 lines
784 B
JSON
34 lines
784 B
JSON
{
|
|
"name": "j621-frontend",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"lint": "oxlint",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-query": "^5.103.1",
|
|
"clsx": "^2.1.1",
|
|
"lucide-react": "^1.47.0",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"react-router-dom": "^7.18.4",
|
|
"tailwind-merge": "^3.7.0",
|
|
"zustand": "^5.0.15"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@types/node": "^24.13.3",
|
|
"@types/react": "^19.2.18",
|
|
"@types/react-dom": "^19.2.7",
|
|
"@vitejs/plugin-react": "^6.1.1",
|
|
"oxlint": "^1.81.0",
|
|
"tailwindcss": "^4.3.3",
|
|
"typescript": "~6.0.2",
|
|
"vite": "^8.3.0"
|
|
}
|
|
}
|