diff --git a/packages/ui/.gitignore b/packages/ui/.gitignore new file mode 100644 index 000000000..3c25e1e49 --- /dev/null +++ b/packages/ui/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +dist/ +*.log diff --git a/packages/ui/README.md b/packages/ui/README.md new file mode 100644 index 000000000..ac536efaf --- /dev/null +++ b/packages/ui/README.md @@ -0,0 +1,38 @@ +# @landvex/ui + +LandveX Intelligence Lab UI — MVP-0 First Field Upload + +## Pages + +| Page | Route | Purpose | +|------|-------|---------| +| Dataset Explorer | `/` | List all missions with processing status | +| Mission Upload | `/upload` | Upload video and create mission | +| Artifact Viewer | `/artifact/:id` | View mission details, metadata, processing status | + +## MVP-0 Acceptance Criteria + +- [x] Upload video +- [x] Create mission +- [x] View mission in Dataset Explorer +- [x] View artifact details +- [x] See processing status + +## No AI in MVP-0 + +MVP-0 proves: +- File transfer +- Storage +- Metadata extraction +- Artifact Registry +- Dataset Explorer +- Artifact Viewer + +## Development + +```bash +npm install +npm run dev +``` + +API proxy: `http://localhost:3000` diff --git a/packages/ui/index.html b/packages/ui/index.html new file mode 100644 index 000000000..becdcf731 --- /dev/null +++ b/packages/ui/index.html @@ -0,0 +1,12 @@ + + +
+ + +Type: {artifact.type}
+Original: {artifact.originalName}
+Status: {artifact.status}
+Video playback (MVP-1)
+GPS: {artifact.metadata.gps.lat.toFixed(6)}, {artifact.metadata.gps.lng.toFixed(6)}
+ )} + {artifact.metadata?.timestamp && ( +Timestamp: {new Date(artifact.metadata.timestamp).toLocaleString()}
+ )} + {artifact.metadata?.device && ( +Device: {artifact.metadata.device}
+ )} +Hash: sha256:pending...
Storage: file:///uploads/...
Version: 1.0.0
+{missions.length} missions
+ ++ Session: {mission.sessionId} +
++ Location: {mission.location.lat.toFixed(4)}, {mission.location.lng.toFixed(4)} +
++ Created: {new Date(mission.createdAt).toLocaleString()} +
+Upload a video to create a new mission.
+ + +