# NaviDocs v1.0 MVP Roadmap **Goal:** Launch production-ready boat manual management platform **Timeline:** 2 weeks intensive development **Target:** Beta launch with 5-10 boat owners --- ## Phase 1: Foundation (Week 1) ### Day 1: Infrastructure Setup ✓ - [x] Create NaviDocs repository - [x] Expert panel debates completed - [x] Schema design finalized - [ ] Set up development environment - [ ] Install dependencies (Node.js, Meilisearch, SQLite) ### Day 2: Database & Queue System - [ ] Implement SQLite schema (users, boats, documents, pages) - [ ] Set up BullMQ or SQLite-based queue - [ ] Create OCR job worker - [ ] Test: Enqueue job → process → complete ### Day 3: File Safety Pipeline - [ ] Install qpdf and ClamAV - [ ] Implement multi-layer validation - Extension check - Magic byte verification - qpdf sanitization - ClamAV malware scan - [ ] Test: Upload malicious PDF → rejected ### Day 4: Meilisearch Integration - [ ] Configure Meilisearch index with settings - Searchable attributes - Filterable attributes - Synonyms (boat terminology) - [ ] Implement tenant token generation - [ ] Create search service wrapper ### Day 5: OCR Pipeline - [ ] Implement Tesseract.js OCR extraction - [ ] Page-by-page processing - [ ] Index extracted text in Meilisearch - [ ] Test: Upload PDF → OCR → searchable in < 5 min --- ## Phase 2: Core Features (Week 2) ### Day 6: Backend API - [ ] POST /api/upload - with safety pipeline - [ ] GET /api/jobs/:id - job status - [ ] POST /api/search - with tenant tokens - [ ] GET /api/documents/:id - retrieve document - [ ] Helmet security headers - [ ] Rate limiting ### Day 7: Frontend Foundation - [ ] Vue 3 + Vite setup - [ ] Tailwind CSS configuration - [ ] Meilisearch-inspired design system - [ ] SVG icon library (clean, professional) - [ ] Responsive layout ### Day 8: Upload & Job Tracking - [ ] File upload component - [ ] Drag-and-drop support - [ ] Progress bar (polls job status) - [ ] Error handling and validation feedback - [ ] Success state with document preview ### Day 9: Search Interface - [ ] Search bar with instant results - [ ] Filters (system, category, boat) - [ ] Result highlighting - [ ] Pagination - [ ] Sort options (relevance, date, page number) ### Day 10: Document Viewer - [ ] PDF.js integration - [ ] Page navigation - [ ] Search within document - [ ] Highlight search terms - [ ] Bookmarks (future: v1.1) --- ## Phase 3: Polish & Launch (Weekend) ### Day 11: Testing & Debugging - [ ] Playwright end-to-end tests - Upload flow - Search flow - Document viewing - [ ] Cross-browser testing - [ ] Mobile responsiveness - [ ] Performance profiling ### Day 12: Beta Launch - [ ] Deploy to local environment - [ ] Invite 5 beta testers - [ ] Provide test manuals - [ ] Monitor logs and usage - [ ] Gather feedback --- ## Success Criteria **Technical:** - [ ] Upload PDF → searchable in < 5 minutes - [ ] Search latency < 100ms - [ ] Synonym search works ("bilge" finds "sump pump") - [ ] All fields display correctly - [ ] Offline mode functional (PWA) **User Experience:** - [ ] Upload success rate > 95% - [ ] Zero malicious files accepted - [ ] Search relevance rated 4/5+ by users - [ ] Mobile usable without zooming **Security:** - [ ] No master keys in client code - [ ] Tenant tokens expire after 1 hour - [ ] Rate limits prevent abuse - [ ] All PDFs sanitized with qpdf --- ## Post-MVP Roadmap (v1.1+) ### Planned Features - [ ] Multi-boat support - [ ] Share manuals with crew - [ ] Bookmarks and annotations - [ ] Service history tracking - [ ] Maintenance reminders - [ ] Shared component library - [ ] Mobile apps (iOS/Android) - [ ] Semantic search (embeddings) ### Future Verticals - [ ] Marina/property management - [ ] Waterfront HOA documentation - [ ] Yacht club member resources --- **Status:** In Development **Last Updated:** 2025-01-19 **Next Review:** After beta launch