# 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
