# NaviDocs Frontend Quick Start **Quick guide to run the polished Meilisearch-inspired frontend** --- ## Prerequisites - Node.js 20+ - Backend running on port 8001 - Meilisearch running on port 7700 - Redis running on port 6379 --- ## Start Frontend (Development) ```bash cd /home/setup/navidocs/client npm install npm run dev ``` **Access:** http://localhost:8080 --- ## Build for Production ```bash cd /home/setup/navidocs/client npm run build ``` **Output:** `dist/` directory --- ## Pages Available ### 1. Home Page **URL:** `http://localhost:8080/` **Features:** - Search bar with glow effect - Upload document button - Three feature cards - Link to Jobs dashboard ### 2. Search Results **URL:** `http://localhost:8080/search?q=pump` **Features:** - Real-time search - Highlighted matches - Click results to view document ### 3. Document Viewer **URL:** `http://localhost:8080/document/:id` **Features:** - PDF.js viewer - Page navigation - Dark theme ### 4. Jobs Dashboard **URL:** `http://localhost:8080/jobs` **Features:** - Real-time job status - Auto-refresh every 5s - View completed documents - Retry failed jobs --- ## Design System ### Colors **Primary (Purple):** - `primary-500`: #d946ef - `primary-600`: #c026d3 **Secondary (Pink/Rose):** - `secondary-500`: #f43f5e - `secondary-600`: #e11d48 **Success (Green):** - `success-500`: #10b981 **Dark (Slate):** - `dark-50`: #f8fafc - `dark-900`: #0f172a ### Typography **Font:** Inter (Google Fonts) **Weights:** 300, 400, 500, 600, 700, 800, 900 ### Buttons ```html ``` ### Cards ```html
Card content
Hoverable card
``` ### Search Input ```html ``` --- ## Testing Checklist ### 1. Upload Flow - [ ] Click "Upload Document" button - [ ] Drag & drop a PDF or browse - [ ] Fill in boat metadata - [ ] Upload and watch progress - [ ] See success message ### 2. Jobs Dashboard - [ ] Navigate to `/jobs` - [ ] See uploaded document processing - [ ] Watch progress bar - [ ] Click "View Document" when complete ### 3. Search - [ ] Type in search bar on home page - [ ] Press Enter - [ ] See results with highlighted text - [ ] Click a result ### 4. Document Viewer - [ ] PDF renders properly - [ ] Previous/Next buttons work - [ ] Jump to page works - [ ] Back button returns to home --- ## Troubleshooting ### Frontend won't start ```bash # Kill any process on port 8080 lsof -ti:8080 | xargs kill -9 # Reinstall dependencies rm -rf node_modules package-lock.json npm install npm run dev ``` ### API requests fail - Ensure backend is running on port 8001 - Check Vite proxy config in `vite.config.js` - Verify `/api` routes are working: ```bash curl http://localhost:8001/api/health ``` ### PDF.js not loading - Check browser console for errors - Verify PDF.js worker CDN is accessible - Check PDF file exists at `/api/documents/:id/pdf` ### Search not working - Verify Meilisearch is running on port 7700 - Check backend can connect to Meilisearch - Verify documents are indexed --- ## Development Tips ### Hot Module Replacement (HMR) Vite provides instant HMR - edit `.vue` files and see changes immediately. ### Vue DevTools Install Vue DevTools browser extension for component inspection. ### Tailwind IntelliSense Install Tailwind CSS IntelliSense VS Code extension for class autocomplete. ### Component Structure ``` src/ ├── views/ # Page components ├── components/ # Reusable components ├── composables/ # Vue composables (useSearch, useJobPolling) ├── assets/ # CSS, images └── router.js # Route definitions ``` --- ## Performance Notes ### Bundle Sizes (Gzipped) - Main CSS: 5.37 KB - Vendor JS: 37.64 KB - PDF.js: 107.38 KB - Total: ~150 KB ### Load Time Goals - First Contentful Paint: < 1s - Time to Interactive: < 2s - Search response: < 100ms --- ## Browser Support **Tested:** - Chrome 120+ - Firefox 120+ - Safari 17+ - Edge 120+ **Features requiring modern browser:** - CSS backdrop-filter - CSS gradients - PDF.js web workers - ES modules --- ## Screenshots ### Color Palette ``` Primary: ███ #d946ef (Purple) Secondary: ███ #f43f5e (Pink/Rose) Success: ███ #10b981 (Green) Dark-900: ███ #0f172a (Slate) ``` ### Gradient Examples ```css /* Button gradient */ background: linear-gradient(to right, #d946ef, #f43f5e); /* Text gradient */ background: linear-gradient(to right, #c026d3, #e11d48); background-clip: text; color: transparent; ``` --- ## Next Steps 1. **Test full workflow:** - Upload → Process → Search → View 2. **Add authentication:** - Implement JWT login/register - Protect routes 3. **Add PWA:** - Service worker - Offline support - Install prompt 4. **Production deployment:** - Build optimized bundle - Deploy to StackCP or VPS - Configure CDN --- **Questions?** Check `/home/setup/navidocs/docs/README.md` for full documentation.