navidocs/CLOUD_SESSION_PROMPT_1_PHOTO_INVENTORY.md
Danny Stocker 5d4febf777 [AGENT-9] Final checkpoint - all cloud session artifacts and demo readiness
- Add AUTONOMOUS-NEXT-TASKS.md (tasks for next agent execution)
- Add cloud session prompt documents (1-4)
- Add GITHUB_READINESS_REPORT.md (deployment status)
- Add GIT_STATE_REPORT.md (git state verification)
- Add feature-selector-complete.html (demo UI)
- Add demo-data/ directory (sample data for demo)
- Add .github/ workflows (CI/CD configuration)

Ready for cloud session launch.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 11:02:49 +01:00

137 lines
4.4 KiB
Markdown

# Cloud Session 1: Photo Inventory System
**Session ID:** CLOUD-1-PHOTO-INVENTORY
**Timeline:** 90 minutes
**Deadline:** 4 hours from now (Riviera Plaisance presentation)
**Target:** Build boat photo gallery + inventory tagging system
---
## Your Mission
Add sticky daily-use photo management to NaviDocs MVP. Boat owners should be able to:
- Upload boat photos (exterior, interior, systems)
- Tag photos by system (engine, electrical, hull, interior)
- Search photos by tag
- View inventory checklist with photo evidence
- Export photo inventory for insurance/resale documentation
This solves the **"€15K-€50K forgotten value" problem** - owners can't remember what upgrades they have until resale.
---
## Quick Start
1. **Clone repo:**
```bash
git clone https://github.com/dannystocker/navidocs.git && cd navidocs
```
2. **Read your brief:**
```bash
cat /home/setup/navidocs/CLOUD_SESSION_1_MARKET_RESEARCH.md | head -80
```
3. **Check current blockers:**
```bash
cat /home/setup/navidocs/SESSION_DEBUG_BLOCKERS.md
```
4. **Review codebase structure:**
- **Frontend:** `/src/app/` (Next.js 14 with App Router)
- **API:** `/src/api/` (Prisma + Meilisearch)
- **Database:** `schema.prisma` (13 tables, photos table ready)
- **Components:** `/src/components/` (Tailwind + shadcn/ui)
---
## Your Task List
- [ ] **Design:** Photo upload UI component (drag-drop, multi-select)
- [ ] **Database:** Extend `PhotoInventory` table with tags (engine, electrical, hull, interior, etc.)
- [ ] **API:** Create 3 endpoints:
- `POST /api/photos/upload` - Store with system tags
- `GET /api/photos/by-tag/:tag` - Filter by system type
- `GET /api/photos/inventory-list` - Full inventory with photo count
- [ ] **Frontend:** Photo gallery grid component with tag filtering
- [ ] **Search Integration:** Add photo metadata to Meilisearch index
- [ ] **Git commit:** `[AGENT-1] Add photo inventory system with tag filtering`
- [ ] **Create issue:** `[AGENT-1] DEPLOY-READY: Photo Inventory System` with:
- Screenshots of photo upload & gallery
- API test results
- Estimated storage impact
- Deployment steps for StackCP
---
## Technical Context
**Stack:**
- Frontend: Next.js 14 (App Router)
- API: Node.js + Prisma ORM
- Database: PostgreSQL (17 tables)
- Search: Meilisearch (already integrated)
- Storage: StackCP filesystem (`/public/uploads/photos/`)
- UI: Tailwind CSS + shadcn/ui components
**Key Files to Modify:**
- `prisma/schema.prisma` - Add photo tags
- `src/app/api/photos/route.ts` - Create upload endpoints
- `src/components/PhotoGallery.tsx` - Create gallery UI
- `src/app/inventory/photos/page.tsx` - Photo inventory page
**Design Specs:**
- Photo upload max: 5MB per image (JPEG/PNG)
- Supported tags: engine, electrical, hull, interior, deck, safety, upgrade, other
- Gallery: 3-column grid (desktop), 2-column (tablet), 1-column (mobile)
- Tag filter: Multi-select with counts (e.g., "Engine (12)")
---
## Critical Notes
1. **Demo Focus:** Owners see boat photos + auto-populated inventory list with photo evidence
2. **Sticky Engagement:** "Check boat photos while away" = daily app habit
3. **Insurance Value:** Photo timestamped inventory = proof of ownership/upgrades
4. **Resale Value:** Export photo manifest to potential buyers
5. **Must work offline:** Photos should load from cache for remote boats
---
## GitHub Access
- **Repo:** https://github.com/dannystocker/navidocs
- **Branch:** `feature/photo-inventory` (create from main)
- **Base for PR:** main branch
- **Code review:** Not required (direct commit to feature branch)
---
## Success Criteria
✅ Photo upload working (multi-select, drag-drop)
✅ Photos visible in gallery with tags
✅ Search filters by tag return correct results
✅ API endpoints return correct JSON
✅ No console errors in browser/server
✅ Component responsive on mobile/tablet/desktop
✅ Git commit with [AGENT-1] tag
---
## If Blocked
1. Check `/home/setup/navidocs/SESSION_DEBUG_BLOCKERS.md` for known issues
2. Verify PostgreSQL connection: `echo "SELECT version()" | psql`
3. Verify Meilisearch running: `curl http://localhost:7700/health`
4. Review existing photos API: `grep -r "POST /api/photos" src/`
5. Create issue: `[AGENT-1] BLOCKER: [description]`
---
## Questions?
Read these files for context:
- `ARCHITECTURE-SUMMARY.md` - System design
- `BUILD_COMPLETE.md` - What's already working
- `DEMO-GUIDE.md` - Feature showcase guide