For Riviera Plaisance meeting: - feature-selector-riviera-meeting.html (ALL 8 features with notes/voting) - USER_TESTING_INSTRUCTIONS_CLOUD.md (user perspective testing guide) - INTEGRATION_WHATSAPP.md (WhatsApp Business API integration) - INTEGRATION_CLAUDE_CHATBOX.md (Claude CLI chatbox with document context) - LIVE_TESTING_GUIDE.md (comprehensive testing checklist) - FEATURE_SUMMARY_ALL.md (all 8 features catalog) Ready for 1-hour meeting with client.
21 KiB
NaviDocs Live Testing Guide
Version: 1.0 Date: 2025-11-13 Platform: StackCP Live Deployment Status: Ready for Testing
Overview
This guide provides step-by-step instructions for testing the NaviDocs live deployment on StackCP. It covers all three core features:
- Smart OCR - Intelligent PDF text extraction with performance optimization
- Multi-Format Support - Upload and process 6 file types
- Timeline Activity - Track document upload/deletion history
Expected Total Testing Time: 45-60 minutes
Table of Contents
- Live URLs
- Pre-Testing Setup
- Test 1: Smart OCR
- Test 2: Multi-Format Upload
- Test 3: Timeline Activity
- Test Data Suggestions
- Expected Results
- Reporting Bugs
- Troubleshooting
Live URLs
Frontend
- Main Application: https://digital-lab.ca/navidocs/
- Register: https://digital-lab.ca/navidocs/#/register
- Login: https://digital-lab.ca/navidocs/#/login
- Dashboard: https://digital-lab.ca/navidocs/#/dashboard
- Library: https://digital-lab.ca/navidocs/#/library
Backend API
- Health Check: https://api.digital-lab.ca/navidocs/health
- API Base: https://api.digital-lab.ca/navidocs/api/
- Upload Endpoint: https://api.digital-lab.ca/navidocs/api/upload (POST)
- Search Token: https://api.digital-lab.ca/navidocs/api/search/token (POST)
- Documents: https://api.digital-lab.ca/navidocs/api/documents (GET)
- Jobs Status: https://api.digital-lab.ca/navidocs/api/jobs/{jobId} (GET)
Meilisearch (Internal)
- Endpoint: http://localhost:7700 (StackCP internal only)
- Index Name: navidocs-pages
- Search Health: http://localhost:7700/health
Pre-Testing Setup
Step 1: Verify Deployment Status
# Check API health
curl -s https://api.digital-lab.ca/navidocs/health | jq .
# Expected Response:
# {
# "status": "ok",
# "uptime": 1234567,
# "timestamp": "2025-11-13T15:30:00.000Z"
# }
Step 2: Create Test Account
- Navigate to: https://digital-lab.ca/navidocs/#/register
- Fill in registration form:
- Email: test-user-[random]@example.com
- Password: TestPass123!@#
- Confirm: TestPass123!@#
- Boat Name: Test Vessel
- Click "Create Account"
- Verify email confirmation (or skip if in demo mode)
- Login with credentials
Step 3: Verify Login & Dashboard
After login, you should see:
- Dashboard loads without errors
- User name appears in header
- "Upload Document" button visible
- "Document Library" accessible
- No console errors (F12 > Console)
Test 1: Smart OCR
Purpose
Verify that PDF uploads process quickly with intelligent OCR that:
- Extracts native text first (2-3 seconds)
- Only OCRs pages with <50 characters
- Completes 100-page PDFs in <5 seconds (was 180 seconds)
Test 1.1: Simple PDF Upload
Steps:
- Navigate to dashboard
- Click "Upload Document" button
- Select a PDF file (2-10 pages, native text)
- Fill in metadata:
- Title: "Test Manual - Smart OCR"
- Document Type: "Owner Manual"
- Category: "Manuals"
- Click "Upload"
- Start timer
Monitoring:
- Watch browser console (F12 > Console) for job creation
- Observe job status in progress bar
- Note time at each stage:
- Upload start: : (should be instant)
- Upload complete: : (depends on file size)
- OCR start: : (should start immediately)
- OCR complete: : (THIS IS KEY METRIC)
Pass Criteria:
- File uploads successfully
- Job ID appears in console
- Progress bar shows status
- OCR completes in < 5 seconds
- No errors in console
- Document appears in library
- Search results appear within 2 minutes
Example Console Output:
[NaviDocs] Upload started
[NaviDocs] Job created: job-uuid-12345
[NaviDocs] Polling job status...
[NaviDocs] Job progress: 10%
[NaviDocs] Job progress: 50%
[NaviDocs] Job progress: 100%
[NaviDocs] OCR complete in 4.2 seconds
Test 1.2: Large PDF with Mixed Text
Steps:
- Upload a 100-page PDF with:
- 50 pages with native text
- 50 pages with scanned images only
- Note file size: ______
- Start timer
- Monitor job progress
Expected Behavior:
- Upload: < 30 seconds
- Native text extraction: 2-3 seconds (50 pages)
- Scanned page OCR: 1-2 seconds (50 pages, fast path)
- Total: < 5 seconds
Pass Criteria:
- Total OCR time < 5 seconds
- All 100 pages indexed
- Search returns results from both native and OCR text
- No timeout errors
- No memory issues
Test 1.3: OCR Quality Check
Steps:
- Open completed document in library
- Click "View Document"
- Check search accuracy
Search Test:
- Go to Library > Search
- Try these searches:
- "engine" (should find technical manual content)
- "warranty" (should find warranty sections)
- "maintenance" (should find service records)
Pass Criteria:
- Search results accurate (not gibberish)
- Results show page numbers
- Text snippets are readable
- OCR confidence > 80%
- Language detection correct
Check OCR Confidence:
// In browser console:
// After document loads, check page data
console.log(document.__nuxt__.$data.documentPages)
// Look for ocrConfidence field (should be 0.8-0.95)
Test 2: Multi-Format Upload
Purpose
Verify that NaviDocs handles 6 different file types correctly:
- PDF - Native + OCR
- Images (JPG/PNG) - OCR only
- Word (DOCX) - Text extraction
- Excel (XLSX) - Data extraction
- Text (TXT) - Direct read
- Markdown (MD) - Direct read
Test 2.1: Upload All 6 File Types
Prepare Test Files: Create or locate these files:
| Format | Filename | Content | Size |
|---|---|---|---|
| test-manual.pdf | 5-10 page manual | < 10 MB | |
| JPG | boat-photo.jpg | 2-3 MB photo | < 5 MB |
| PNG | diagram.png | System diagram | < 2 MB |
| DOCX | specifications.docx | Boat specs | < 1 MB |
| XLSX | maintenance.xlsx | Service log | < 1 MB |
| TXT | notes.txt | Engine notes | < 100 KB |
Upload Steps:
For each file:
- Click "Upload Document"
- Select file
- Fill metadata:
- Title: "[Type] - Test Document"
- Type: Appropriate type
- Category: Appropriate category
- Click "Upload"
- Record Upload Status
- Record Processing Time
Pass Criteria for Each Format:
PDF:
- Uploads successfully
- OCR processes text
- Search finds content
- Pages extracted correctly
- Processing time < 5 seconds
JPG/PNG:
- Uploads successfully
- OCR processes image text
- Search finds content
- Image displays in preview
- Processing time < 3 seconds
DOCX:
- Uploads successfully
- Text extracted correctly
- Formatting preserved
- Search finds content
- Processing time < 2 seconds
XLSX:
- Uploads successfully
- Sheet data extracted
- All columns readable
- Search finds cell content
- Processing time < 2 seconds
TXT:
- Uploads successfully
- Full text indexed
- Search finds content
- Formatting preserved
- Processing time < 1 second
MD:
- Uploads successfully
- Markdown parsed correctly
- Headers and content separate
- Search finds content
- Processing time < 1 second
Test 2.2: Search Across All Formats
Steps:
- Go to Library > Search
- Search for content that appears in multiple formats
- Example: "engine" (in manual, specifications, notes)
- Record results
Pass Criteria:
- Returns results from all 6 formats
- Results grouped by document type
- Preview shows correct snippet
- No format-specific errors
- Results load < 100 ms
Test 2.3: Multi-Format Organization
Steps:
- Go to Library
- Filter by document type
Pass Criteria:
- Can filter by "PDF"
- Can filter by "Image"
- Can filter by "Word"
- Can filter by "Spreadsheet"
- Can filter by "Text"
- Filters work correctly
- No data loss
Test 3: Timeline Activity
Purpose
Verify that all document operations are logged with:
- Timestamps
- User attribution
- Operation type (upload/delete/share)
- Document metadata
Test 3.1: Upload Activity Logging
Steps:
- Go to Dashboard > Timeline (or Activity Feed)
- Upload 3 documents of different types:
- Document A (PDF)
- Document B (JPG)
- Document C (DOCX)
- Start timer for each upload
- Check Timeline after each upload
Pass Criteria:
- Each upload appears in timeline
- Correct document name shown
- Correct file type icon shown
- Timestamp accurate (within 1 minute)
- User name correct
- "Upload" action labeled correctly
- Timeline updates within 2 seconds of upload complete
Example Timeline Entry:
[✓] PDFs uploaded: test-manual.pdf
User: test-user-123
Time: 2025-11-13 15:30:45 UTC
Status: Indexed (searchable)
[View Document] [Delete]
Test 3.2: Delete Activity Logging
Steps:
- In Library, select one uploaded document
- Click "Delete" button
- Confirm deletion
- Start timer
- Check Timeline
Pass Criteria:
- Delete appears in timeline
- Shows "Document deleted" action
- Original filename visible
- Timestamp accurate
- User name correct
- Document removed from library
- Timeline updates within 2 seconds
Example Timeline Entry:
[✗] PDFs deleted: old-manual.pdf
User: test-user-123
Time: 2025-11-13 15:35:12 UTC
[Undo Delete - 30 minute window]
Test 3.3: Timeline Filtering
Steps:
- Go to Timeline
- Upload 5-10 documents of mixed types
- Delete 2-3 documents
- Try filtering:
- By action: "Uploads only"
- By action: "Deletions only"
- By date range: "Last 1 hour"
- By document type: "PDFs only"
Pass Criteria:
- Filters work correctly
- Display updates instantly
- Correct counts shown
- Can combine filters
- No missing entries
- Sorting works (newest first)
Test 3.4: Timeline Performance
Steps:
- Generate large timeline:
- Upload 20-50 documents over 5 minutes
- Delete 5-10 documents
- Navigate to Timeline
- Start timer for page load
- Check performance metrics
Pass Criteria:
- Timeline loads in < 2 seconds
- Scrolling smooth (60 FPS)
- No memory leaks
- Search within timeline works
- Can export timeline (if feature exists)
Test Data Suggestions
Sample Files You Can Use
For Smart OCR Testing:
- Download sample boat manuals from:
- Jeanneau official website (PDF manuals)
- Sunseeker documentation
- Generic marine equipment manuals
- Use these to test OCR quality
For Multi-Format Testing: Create minimal test files:
# Create sample files
mkdir -p /tmp/navidocs-test-files
# PDF (convert text to PDF)
echo "Engine maintenance schedule" > /tmp/navidocs-test-files/manual.txt
# Convert to PDF (requires tools): wkhtmltopdf manual.txt manual.pdf
# JPG (download sample image)
wget https://via.placeholder.com/640x480.jpg -O /tmp/navidocs-test-files/boat.jpg
# PNG (create diagram)
# Use GIMP or online tool to create simple system diagram
# DOCX (Word)
# Create in Microsoft Word or LibreOffice with boat specifications
# XLSX (Spreadsheet)
# Create maintenance log with columns:
# Date | Service | Cost | Technician | Notes
# TXT
echo "Engine service notes
Date: 2025-11-01
Oil change completed
Next service: 2025-12-01" > /tmp/navidocs-test-files/notes.txt
# MD
echo "# Boat Maintenance
## Engine
- Oil capacity: 15L
- Change interval: 100 hours
## Hull
- Last paint: 2024-06" > /tmp/navidocs-test-files/specs.md
Real Test Data (If Available)
Best case: Use actual boat documentation:
- Owner's manuals
- Service records
- Insurance documents
- Warranty certificates
- Photos with text overlays (for OCR testing)
Expected Results
Test 1: Smart OCR Expected Results
| Metric | Expected | Acceptable | Failure |
|---|---|---|---|
| 5-page PDF OCR | < 2 sec | < 3 sec | > 5 sec |
| 50-page PDF OCR | < 3 sec | < 4 sec | > 8 sec |
| 100-page PDF OCR | < 5 sec | < 6 sec | > 10 sec |
| OCR Confidence | 85-95% | 70-85% | < 70% |
| Search Latency | < 50 ms | < 100 ms | > 200 ms |
| Indexing Rate | > 20 pages/sec | > 15 pages/sec | < 10 pages/sec |
Test 2: Multi-Format Expected Results
| Format | Upload Time | Process Time | Search Latency |
|---|---|---|---|
| 2-5 sec | 2-5 sec | 50-100 ms | |
| JPG | 1-3 sec | 1-3 sec | 50-100 ms |
| PNG | 1-3 sec | 1-3 sec | 50-100 ms |
| DOCX | 1-2 sec | <1 sec | 50-100 ms |
| XLSX | 1-2 sec | <1 sec | 50-100 ms |
| TXT | <1 sec | <1 sec | 50-100 ms |
Test 3: Timeline Expected Results
| Operation | Expected Latency | Update Delay | Data Accuracy |
|---|---|---|---|
| Upload logged | < 1 sec | < 2 sec | 100% |
| Delete logged | < 1 sec | < 2 sec | 100% |
| Timeline load | < 2 sec | - | 100% |
| Search filter | < 100 ms | - | 100% |
Reporting Bugs
Bug Report Template
When you find a bug, use this format:
Title: [FEATURE] Brief description
- Example: "[Smart OCR] 100-page PDF times out after 45 seconds"
Environment:
- Browser: Chrome 130.0 / Firefox 131.0 / Safari 18.1
- OS: Windows 11 / macOS 14 / Ubuntu 24.04
- Screen Resolution: 1920x1080
- Network: Wired / WiFi with speed (Mbps)
- Time: 2025-11-13 15:30 UTC
Steps to Reproduce:
- Navigate to [URL]
- Click on [button]
- Upload [file type], size [MB]
- Observe [behavior]
Expected Behavior: [What should have happened]
Actual Behavior: [What actually happened]
Screenshots: [Attach images showing the issue]
Console Errors: [Copy full error stack trace from F12 > Console]
Performance Metrics:
- Upload time: X seconds
- OCR time: Y seconds
- Search latency: Z ms
Severity:
- 🔴 Critical: Feature completely broken
- 🟠 Major: Feature partially broken
- 🟡 Minor: Cosmetic or edge case
- 🟢 Suggestion: Enhancement
Attachments:
- Test file if applicable
- Network HAR file (F12 > Network > Export)
- Browser console log
Where to Report
- GitHub Issues: https://github.com/dannystocker/navidocs/issues
- Email: bugs@digital-lab.ca
- Internal Slack: #navidocs-bugs
Troubleshooting
Upload Fails with "Invalid File Type"
Problem: File upload rejected immediately
Causes:
- File extension not supported
- MIME type mismatch
- File too large (>50 MB)
Solutions:
# Check file type
file test-file.pdf
# Should output: PDF document, version 1.4
# Check file size
ls -lh test-file.pdf
# Size should be < 50 MB
# Verify MIME type
# PDF: application/pdf
# JPG: image/jpeg
# PNG: image/png
# DOCX: application/vnd.openxmlformats-officedocument.wordprocessingml.document
# XLSX: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
OCR Takes Too Long (>10 seconds for 100 pages)
Problem: Performance degradation
Potential Causes:
- Server CPU high
- Tesseract process stuck
- Redis queue backed up
- Database locks
Diagnosis:
# SSH to StackCP
ssh stackcp
# Check CPU usage
top -b -n 1 | head -20
# Check queue length
redis-cli LLEN bull:ocr-jobs:jobs
# Check disk space
df -h ~/navidocs-data/
# Check database locks
lsof 2>/dev/null | grep navidocs.db
Fixes:
- Restart OCR worker:
systemctl --user restart navidocs-ocr-worker - Clear stuck jobs:
redis-cli DEL bull:ocr-jobs:* - Increase Tesseract threads: Edit
.envTESSERACT_THREADS=4
Search Returns No Results
Problem: Indexed documents don't appear in search
Causes:
- Meilisearch service down
- Index not created
- Documents not yet indexed
- Tenant token expired
Diagnosis:
# Check Meilisearch health
curl http://localhost:7700/health
# Check index exists
curl http://localhost:7700/indexes
# Check document count
curl http://localhost:7700/indexes/navidocs-pages/stats
# Check search token
curl -X POST http://localhost:8001/api/search/token \
-H "Content-Type: application/json" \
-d '{"expiresIn": 3600}' | jq .
Fixes:
- Restart Meilisearch:
systemctl --user restart meilisearch - Reindex:
npm run reindex(from server directory) - Clear bad token and regenerate
Timeline Not Updating
Problem: Activity feed shows stale data
Causes:
- Database transaction not committed
- Cache not invalidated
- WebSocket connection failed
- Job status not updated
Diagnosis:
# Check recent database entries
sqlite3 ~/navidocs-data/db/navidocs.db \
"SELECT * FROM ocr_jobs ORDER BY created_at DESC LIMIT 5;"
# Check timestamps
sqlite3 ~/navidocs-data/db/navidocs.db \
"SELECT id, status, updated_at FROM ocr_jobs LIMIT 5;"
Fixes:
- Refresh page (F5)
- Clear browser cache (Ctrl+Shift+R)
- Restart server:
systemctl --user restart navidocs - Rebuild timeline index
File Upload Stuck at 50%
Problem: Upload progress bar frozen
Causes:
- Network timeout
- Server crash
- Browser cache issue
- Large file size
Solutions:
-
Check network:
# F12 > Network, check for failed requests # Green = success, Red = failed -
Check file size:
ls -lh file.pdf # If > 50 MB, file too large # Max: 50 MB -
Clear browser cache:
- Chrome: Ctrl+Shift+Delete
- Firefox: Ctrl+Shift+Delete
- Safari: Cmd+Option+E
-
Try again with smaller file:
- If file > 20 MB, split into sections
- Upload separately, then combine
Account/Login Issues
Problem: Cannot login or register
Causes:
- Database connection failed
- Password hash mismatch
- Session expired
- CSRF token invalid
Solutions:
# Check database is accessible
sqlite3 ~/navidocs-data/db/navidocs.db "SELECT * FROM users LIMIT 1;"
# Check user exists
sqlite3 ~/navidocs-data/db/navidocs.db \
"SELECT id, email FROM users WHERE email='test@example.com';"
# Reset user password (if admin)
npm run reset-password test@example.com NewPassword123!
Performance Benchmarks
Expected Performance Metrics
Backend API:
- Health check: < 50 ms
- Token generation: 100-200 ms
- Upload: 1-3 seconds (depends on file size)
- Search: 50-100 ms
- Job status: 50-100 ms
Frontend:
- Page load: < 2 seconds
- Library render: < 1 second
- Search results: < 100 ms
- Upload dialog: < 500 ms
- Timeline load: < 2 seconds
Database:
- Query response: < 50 ms
- Index update: < 1 second
- Document insert: < 100 ms
Search Engine (Meilisearch):
- Index creation: < 100 ms
- Document insert: < 10 ms each
- Search query: 10-50 ms
- Faceted search: 50-100 ms
Load Testing
If you have access to tools like Apache Bench or wrk:
# Simulate 10 concurrent users
wrk -t4 -c10 -d30s https://digital-lab.ca/navidocs/
# Load test upload endpoint
# Note: Requires authentication token
# See API docs for token generation
# Expected results:
# - Should handle 100+ requests/sec
# - <1% error rate
# - <200 ms p95 latency
Sign-Off Checklist
After completing all tests, check these boxes:
Test 1: Smart OCR
- 5-page PDF: < 3 seconds
- 100-page PDF: < 5 seconds
- Search results accurate
- OCR confidence > 80%
- No timeout errors
Test 2: Multi-Format
- PDF: Upload & search works
- JPG: Upload & OCR works
- PNG: Upload & OCR works
- DOCX: Upload & extract works
- XLSX: Upload & parse works
- TXT: Upload & index works
- All formats searchable
Test 3: Timeline
- Uploads logged to timeline
- Deletes logged to timeline
- Timestamps accurate
- User attribution correct
- Filtering works
- Updates within 2 seconds
Overall
- No console errors
- No network failures
- No database errors
- Performance acceptable
- UX is smooth
- No data loss
Sign-Off
- Tester Name: _______________________
- Date: _______________________
- Status: 🟢 PASS / 🟡 PASS WITH ISSUES / 🔴 FAIL
- Notes: _______________________
Additional Resources
- API Documentation:
/home/setup/navidocs/server/API_SUMMARY.md - Architecture Guide:
/home/setup/navidocs/DEPLOYMENT_ARCHITECTURE.md - Developer Guide:
/home/setup/navidocs/server/docs/README_ARCHITECTURE.md - Deployment Guide:
/home/setup/navidocs/DEPLOYMENT_INDEX.md
Contact & Support
Questions about testing?
- Email: test-team@digital-lab.ca
- Slack: #navidocs-testing
- GitHub Issues: https://github.com/dannystocker/navidocs/issues
Report bugs using the Bug Report Template above.
Document Version: 2025-11-13 Status: Ready for Live Testing Confidence Level: High
Good luck with testing! 🚀