No description
Search Results Enhancement: - Pass search query to document viewer via URL parameter - Search results already show highlights via Meilisearch <mark> tags PDF Document Viewer: - Accept search query from URL (?q=search+term) - Highlight matching text in PDF text layer - Case-insensitive search term matching - Auto-scroll to first match with smooth behavior - Yellow highlight with pulsing animation for visibility Highlighting Features: - Uses regex to find all instances of search term - Preserves PDF.js text layer positioning - Highlights visible immediately after page render - Text remains fully selectable - Works with digitized/text-based PDFs Styling: - Yellow background (rgba(255, 215, 0, 0.6)) - Black text for contrast - Pulsing animation on initial load - Rounded corners for polish User Flow: 1. User searches in SearchView 2. Clicks on search result 3. Navigates to DocumentView with ?q=term&page=X 4. PDF page renders with matching text highlighted 5. Page auto-scrolls to first match This completes the search highlighting feature requested by the user, making it easy to find searched terms within PDF documents. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| client | ||
| demo-screenshots | ||
| docs | ||
| scripts | ||
| server | ||
| test/data | ||
| tests/e2e | ||
| .gitignore | ||
| ANALYSIS_INDEX.md | ||
| ARCHITECTURE-SUMMARY.md | ||
| BRANDING_CREATIVE_BRIEF.md | ||
| BUILD_COMPLETE.md | ||
| capture-demo-screenshots.js | ||
| CLEANUP_COMPLETE.sh | ||
| DEMO-GUIDE.md | ||
| DEVELOPMENT.md | ||
| FEATURE-ROADMAP.md | ||
| GITEA_ACCESS.md | ||
| GOOGLE_DRIVE_OCR_QUICKSTART.md | ||
| IMPLEMENTATION_COMPLETE.md | ||
| NAVIDOCS_HANDOVER.md | ||
| navidocs_search_token_test_report.json | ||
| OCR_FINAL_RECOMMENDATION.md | ||
| OCR_PIPELINE_SETUP.md | ||
| playwright.config.js | ||
| PORT_ALLOCATION.md | ||
| PORT_MIGRATION_SUMMARY.md | ||
| QUICK_REFERENCE.md | ||
| QUICKSTART.md | ||
| README.md | ||
| README_NEW.md | ||
| REORGANIZE_FILES.sh | ||
| SERVICES_STATUS.md | ||
| SESSION-SUMMARY.md | ||
| SESSION_STATUS.md | ||
| STACKCP_ARCHITECTURE_ANALYSIS.md | ||
| STACKCP_DEBATE_BRIEF.md | ||
| STACKCP_EVALUATION_REPORT.md | ||
| STACKCP_QUICK_REFERENCE.md | ||
| STACKCP_VERIFICATION_SUMMARY.md | ||
| start-all.sh | ||
| stop-all.sh | ||
| test-backend-e2e.js | ||
| test-e2e.js | ||
| test-image-endpoints.sh | ||
| test-manual.pdf | ||
| TEST_RESULTS.md | ||
NaviDocs - Professional Boat Manual Management
Production-ready boat manual management platform with OCR and intelligent search
Built with Vue 3, Express, SQLite, and Meilisearch. Extracted from the lilian1 (FRANK-AI) prototype with clean, professional code only.
Features
- Upload PDFs - Drag and drop boat manuals
- OCR Processing - Automatic text extraction with Tesseract.js
- Intelligent Search - Meilisearch with boat terminology synonyms
- Offline-First - PWA with service worker caching
- Multi-Vertical - Supports boats, marinas, and properties
- Secure - Tenant tokens, file validation, rate limiting
Tech Stack
Backend
- Node.js 20 - Express 5
- SQLite - better-sqlite3 with WAL mode
- Meilisearch - Sub-100ms search with synonyms
- BullMQ - Background OCR job processing
- Tesseract.js - PDF text extraction
Frontend
- Vue 3 - Composition API with
<script setup> - Vite - Fast builds and HMR
- Tailwind CSS - Meilisearch-inspired design
- Pinia - State management
- PDF.js - Document viewer
Quick Start
Prerequisites
# Required
node >= 20.0.0
npm >= 10.0.0
# For OCR
pdftoppm (from poppler-utils)
tesseract >= 5.0.0
# For search
meilisearch >= 1.0.0
# For queue
redis >= 6.0.0
Installation
# Clone repository
cd ~/navidocs
# Install server dependencies
cd server
npm install
cp .env.example .env
# Edit .env with your configuration
# Initialize database
npm run init-db
# Install client dependencies
cd ../client
npm install
# Start services (each in separate terminal)
meilisearch --master-key=masterKey
redis-server
cd ~/navidocs/server && node workers/ocr-worker.js
cd ~/navidocs/server && npm run dev
cd ~/navidocs/client && npm run dev
Visit http://localhost:8080
Architecture
See docs/architecture/ for complete schema and configuration details.
Ship it. Learn from users. Iterate.