Demo: https://sa.peterspannagle.com/
Mobile-first prototype that guides solar installers through a linear pre‑inspection capture flow. It enforces photo/video requirements, simulates an auto‑check, and provides a simple inspection‑readiness state before submission.
- Linear flow: Projects → Project Details → Capture Overview → Capture Task → Camera → Validation
- 7 capture groups with Racking + Array substeps (photos + 2 videos)
- Auto-check simulation with a single retry and then accept
- Status chips, breadcrumbs for navigation, and inline capture tips
- Racking + Array
- Roof penetrations (photo series)
- Array edge alignment (video)
- Array perimeter setback (video)
- Inverter identity + clearance (photo)
- Battery location + clearance (photo)
- PV + ESS disconnects (photo)
- Labels / placards (photo)
- Main service panel (photo)
- Conduit + wiring (photo)
- React 18 + Vite
- Tailwind CSS
- TypeScript
- Vite PWA plugin (generateSW)
npm install
npm run devBuild + preview:
npm run build
npm run previewType check:
npm run typecheckSample capture images live in public/assets/ and are referenced from src/App.tsx in sampleMediaBySubstep.
public/assets/edge.png— Array edge alignmentpublic/assets/setback.png— Array perimeter setback
Update or replace those files to change the preview thumbnails.
Upload the contents of dist/ to your FTP web root. Do not upload the repo source.
docs/PRD.mddocs/PRODUCT_GOALS.mddocs/BASELINE.mddocs/WIREFRAMES.mddocs/execplan/installer-capture-prototype.mddocs/RACKING-ARRAY.md
This is an internal prototype. It does not include backend services, auth, or real compliance validation.