No description
Find a file
ggq-admin 770fdae832 Redesign search results for information density and usability
Based on expert UX feedback, completely redesigned search results to prioritize
information scent over visual aesthetics.

**Visual Hierarchy Changes:**
- Flipped hierarchy: metadata small → snippet large → doc badge tiny
- Page number now prominent (font-weight 600)
- Document title moved to small right-aligned badge
- Snippet is now the visual focus (15px, proper line-height)

**Highlight Improvements:**
- Yellow background (#FFE666) with high contrast black text
- Added bold to highlighted terms for accessibility
- Enhanced Meilisearch <mark> tags with .nv-hi class
- WCAG AA compliant contrast ratios

**Diagram Handling:**
- Removed empty image thumbnails that looked broken
- Replaced with "Diagram" chip (yellow accent)
- Added hover preview popover (300ms delay)
- Click to toggle preview on mobile
- Graceful error handling for missing images

**Information Density:**
- Reduced card padding from 24px to 10-12px
- Reduced card spacing from 16px (space-y-4) to 8px (space-y-2)
- Search bar height reduced from 64px to 48px
- Now shows 8-12 results per viewport instead of 3-4
- Condensed metadata into single compact row

**Accessibility:**
- Added keyboard support: Enter and Space to open
- Added ARIA labels for diagram previews
- Focus visible styles with pink ring
- Mobile-responsive: hides doc badge on small screens

**Performance:**
- Debounced preview showing (300ms)
- Lazy loading for diagram images
- Removed heavy animations and blur effects

**CSS Architecture:**
- New .nv-* utility classes for search-specific styles
- Scoped styles to avoid global pollution
- Media queries for mobile optimization

This transforms search from "pretty gradient cards" to "find the gasket size fast."
Users can now scan sections, spot yellow highlights, and preview diagrams without
leaving the results page.

Next phase: Extract section metadata during OCR for even better organization.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-20 10:01:58 +02:00
client Redesign search results for information density and usability 2025-10-20 10:01:58 +02:00
demo-screenshots Add demo screenshot capture script and verify all features 2025-10-20 01:52:28 +02:00
docs Fix search, add PDF text selection, clean duplicates, implement auto-fill 2025-10-20 01:35:06 +02:00
scripts Add StackCP hosting evaluation and deployment guides 2025-10-19 09:35:27 +02:00
server Add statistics dashboard feature 2025-10-20 03:49:39 +02:00
test/data fix: Complete OCR pipeline with language code mapping 2025-10-19 05:09:51 +02:00
tests/e2e Add Playwright E2E test suite with 8 passing tests 2025-10-20 01:51:09 +02:00
.gitignore feat(ui): Meilisearch-style polish (badges, glass, grid, skeleton) + theme color\n\n- Add accessible focus ring and kbd styling\n- Add badge/glass/section/accent-border/bg-grid/skeleton utilities\n- Update theme-color + OG meta\n- Ignore sensitive handover file\n\nSee docs/ui/CHANGELOG_UI.md for details 2025-10-19 16:52:02 +02:00
ANALYSIS_INDEX.md docs: Add complete NaviDocs handover documentation and StackCP analysis 2025-10-19 13:19:42 +02:00
ARCHITECTURE-SUMMARY.md docs: Add architecture summary 2025-10-19 01:23:40 +02:00
BRANDING_CREATIVE_BRIEF.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
BUILD_COMPLETE.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
capture-demo-screenshots.js Add demo screenshot capture script and verify all features 2025-10-20 01:52:28 +02:00
CLEANUP_COMPLETE.sh feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
DEMO-GUIDE.md Add comprehensive documentation for demo 2025-10-20 01:59:42 +02:00
DEVELOPMENT.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
FEATURE-ROADMAP.md Update documents route with delete endpoint - WIP 2025-10-20 03:41:25 +02:00
GITEA_ACCESS.md docs: Add Gitea access explanation 2025-10-19 13:48:58 +02:00
GOOGLE_DRIVE_OCR_QUICKSTART.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
IMPLEMENTATION_COMPLETE.md feat: NaviDocs MVP - Complete codebase extraction from lilian1 2025-10-19 01:55:44 +02:00
NAVIDOCS_HANDOVER.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
navidocs_search_token_test_report.json feat: Add image extraction design, database schema, and migration 2025-10-19 19:47:30 +02:00
OCR_FINAL_RECOMMENDATION.md docs: Add final OCR recommendation and comparison summary 2025-10-19 09:09:22 +02:00
OCR_PIPELINE_SETUP.md feat: NaviDocs MVP - Complete codebase extraction from lilian1 2025-10-19 01:55:44 +02:00
playwright.config.js Add Playwright E2E test suite with 8 passing tests 2025-10-20 01:51:09 +02:00
PORT_ALLOCATION.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
PORT_MIGRATION_SUMMARY.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
QUICK_REFERENCE.md feat(ui): Meilisearch-style polish (badges, glass, grid, skeleton) + theme color\n\n- Add accessible focus ring and kbd styling\n- Add badge/glass/section/accent-border/bg-grid/skeleton utilities\n- Update theme-color + OG meta\n- Ignore sensitive handover file\n\nSee docs/ui/CHANGELOG_UI.md for details 2025-10-19 16:52:02 +02:00
QUICKSTART.md feat: NaviDocs MVP - Complete codebase extraction from lilian1 2025-10-19 01:55:44 +02:00
README.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
README_NEW.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
REORGANIZE_FILES.sh feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
SERVICES_STATUS.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
SESSION-SUMMARY.md Add session summary - NaviDocs polished and demo-ready 2025-10-20 02:03:40 +02:00
SESSION_STATUS.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
STACKCP_ARCHITECTURE_ANALYSIS.md docs: Add complete NaviDocs handover documentation and StackCP analysis 2025-10-19 13:19:42 +02:00
STACKCP_DEBATE_BRIEF.md docs: Add complete NaviDocs handover documentation and StackCP analysis 2025-10-19 13:19:42 +02:00
STACKCP_EVALUATION_REPORT.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
STACKCP_QUICK_REFERENCE.md docs: Add complete NaviDocs handover documentation and StackCP analysis 2025-10-19 13:19:42 +02:00
STACKCP_VERIFICATION_SUMMARY.md Add StackCP deployment verification summary 2025-10-19 09:36:43 +02:00
start-all.sh feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
stop-all.sh feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00
test-backend-e2e.js feat: Add image extraction design, database schema, and migration 2025-10-19 19:47:30 +02:00
test-e2e.js feat: Add image extraction design, database schema, and migration 2025-10-19 19:47:30 +02:00
test-image-endpoints.sh Add image retrieval API endpoints 2025-10-19 19:57:49 +02:00
test-manual.pdf fix: Switch to local system tesseract command for OCR 2025-10-19 04:48:18 +02:00
TEST_RESULTS.md feat: Complete frontend UI polish with Meilisearch-inspired design 2025-10-19 16:40:48 +02:00

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.