## Backend (server/) - Express 5 API with security middleware (helmet, rate limiting) - SQLite database with WAL mode (schema from docs/architecture/) - Meilisearch integration with tenant tokens - BullMQ + Redis background job queue - OCR pipeline with Tesseract.js - File safety validation (extension, MIME, size) - 4 API route modules: upload, jobs, search, documents ## Frontend (client/) - Vue 3 with Composition API (<script setup>) - Vite 5 build system with HMR - Tailwind CSS (Meilisearch-inspired design) - UploadModal with drag-and-drop - FigureZoom component (ported from lilian1) - Meilisearch search integration with tenant tokens - Job polling composable - Clean SVG icons (no emojis) ## Code Extraction - ✅ manuals.js → UploadModal.vue, useJobPolling.js - ✅ figure-zoom.js → FigureZoom.vue - ✅ service-worker.js → client/public/service-worker.js (TODO) - ✅ glossary.json → Merged into Meilisearch synonyms - ❌ Discarded: quiz.js, persona.js, gamification.js (Frank-AI junk) ## Documentation - Complete extraction plan in docs/analysis/ - README with quick start guide - Architecture summary in docs/architecture/ ## Build Status - Server dependencies: ✅ Installed (234 packages) - Client dependencies: ✅ Installed (160 packages) - Client build: ✅ Successful (2.63s) 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
911 B
JSON
36 lines
911 B
JSON
{
|
|
"name": "navidocs-server",
|
|
"version": "1.0.0",
|
|
"description": "NaviDocs backend API - Boat manual management with OCR and search",
|
|
"type": "module",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"start": "node index.js",
|
|
"dev": "node --watch index.js",
|
|
"init-db": "node db/init.js"
|
|
},
|
|
"keywords": ["boat", "manuals", "ocr", "meilisearch"],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"express": "^5.0.0",
|
|
"better-sqlite3": "^11.0.0",
|
|
"meilisearch": "^0.41.0",
|
|
"bullmq": "^5.0.0",
|
|
"ioredis": "^5.0.0",
|
|
"helmet": "^7.0.0",
|
|
"express-rate-limit": "^7.0.0",
|
|
"cors": "^2.8.5",
|
|
"tesseract.js": "^5.0.0",
|
|
"pdf-parse": "^1.1.1",
|
|
"uuid": "^10.0.0",
|
|
"bcrypt": "^5.1.0",
|
|
"jsonwebtoken": "^9.0.0",
|
|
"multer": "^1.4.5-lts.1",
|
|
"file-type": "^19.0.0",
|
|
"dotenv": "^16.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^20.0.0"
|
|
}
|
|
}
|