GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
254 lines
4.3 KiB
Markdown
254 lines
4.3 KiB
Markdown
# Frontend Component Breakdown
|
|
|
|
## Global layout
|
|
|
|
### AppShell
|
|
Responsibilities:
|
|
- main navigation
|
|
- project context indicator
|
|
- active job indicator
|
|
- responsive layout
|
|
|
|
### LeftNavigation
|
|
Items:
|
|
- Home
|
|
- Projects
|
|
- Map Workbench
|
|
- Dataset Manager
|
|
- Raster Lab
|
|
- Vector Lab
|
|
- Detection Lab
|
|
- Segmentation Lab
|
|
- QA/QC Lab
|
|
- Change Lab
|
|
- Exports
|
|
- Settings
|
|
|
|
### TopStatusBar
|
|
Shows:
|
|
- selected project
|
|
- selected area
|
|
- backend health
|
|
- queued/running jobs
|
|
|
|
## Pages
|
|
|
|
### HomePage
|
|
Purpose:
|
|
- start a new project
|
|
- open recent projects
|
|
- open demo scenario
|
|
|
|
Components:
|
|
- HeroPanel
|
|
- NewProjectCard
|
|
- RecentProjectsList
|
|
- DemoScenarioLauncher
|
|
|
|
API:
|
|
- GET /projects
|
|
- POST /projects
|
|
|
|
### ProjectWorkspacePage
|
|
Purpose:
|
|
- overview for one project
|
|
|
|
Components:
|
|
- ProjectHeader
|
|
- AreaSummaryCard
|
|
- DatasetSummaryCard
|
|
- AnalysisRunList
|
|
- KeyOutputCards
|
|
- NextActionPanel
|
|
|
|
API:
|
|
- GET /projects/{project_id}
|
|
- GET /projects/{project_id}/areas
|
|
- GET /projects/{project_id}/datasets
|
|
- GET /projects/{project_id}/analysis-runs
|
|
|
|
### MapWorkbenchPage
|
|
Purpose:
|
|
- central map inspection and area/layer management
|
|
|
|
Components:
|
|
- MapCanvas
|
|
- LayerManager
|
|
- AreaDrawingTools
|
|
- FeatureInspector
|
|
- MapToolbar
|
|
- OpacitySlider
|
|
|
|
API:
|
|
- GET /projects/{project_id}/areas
|
|
- GET /projects/{project_id}/layers
|
|
- GET /layers/{layer_id}/features
|
|
|
|
### DatasetManagerPage
|
|
Purpose:
|
|
- upload/import datasets and inspect metadata
|
|
|
|
Components:
|
|
- DatasetUploadDropzone
|
|
- DatasetTable
|
|
- DatasetMetadataPanel
|
|
- DatasetStatusBadge
|
|
- DatasetActionsMenu
|
|
|
|
API:
|
|
- POST /projects/{project_id}/datasets/upload
|
|
- GET /projects/{project_id}/datasets
|
|
- GET /datasets/{dataset_id}/metadata
|
|
|
|
### RasterLabPage
|
|
Purpose:
|
|
- raster inspection and preprocessing
|
|
|
|
Components:
|
|
- RasterDatasetSelector
|
|
- RasterMetadataCard
|
|
- BandSelector
|
|
- RasterPreviewPanel
|
|
- RasterOperationPanel
|
|
- RasterArtifactList
|
|
|
|
Actions:
|
|
- clip by area
|
|
- generate tiles
|
|
- calculate histogram
|
|
- calculate index later
|
|
|
|
API:
|
|
- GET /datasets/{dataset_id}/metadata
|
|
- POST /rasters/{dataset_id}/clip
|
|
- POST /rasters/{dataset_id}/tile
|
|
- POST /rasters/{dataset_id}/histogram
|
|
|
|
### VectorLabPage
|
|
Purpose:
|
|
- vector inspection and spatial operations
|
|
|
|
Components:
|
|
- VectorDatasetSelector
|
|
- GeometrySummaryCard
|
|
- VectorOperationPanel
|
|
- AttributePreviewTable
|
|
- VectorLayerPreview
|
|
|
|
Actions:
|
|
- validate geometry
|
|
- reproject
|
|
- clip
|
|
- buffer
|
|
- intersect
|
|
|
|
API:
|
|
- POST /vectors/{dataset_id}/validate
|
|
- POST /vectors/{dataset_id}/clip
|
|
- POST /vectors/{dataset_id}/buffer
|
|
- POST /vectors/{dataset_id}/intersect
|
|
|
|
### DetectionLabPage
|
|
Purpose:
|
|
- object detection workflow
|
|
|
|
Components:
|
|
- DetectionInputSelector
|
|
- ModelSelector
|
|
- DetectionParameterPanel
|
|
- DetectionRunButton
|
|
- DetectionResultsMap
|
|
- DetectionMetricsCards
|
|
- DetectionExportPanel
|
|
|
|
Parameters:
|
|
- confidence threshold
|
|
- tile size
|
|
- overlap
|
|
- target classes
|
|
|
|
API:
|
|
- POST /analysis/object-detection
|
|
- GET /analysis-runs/{run_id}
|
|
- GET /analysis-runs/{run_id}/detections
|
|
|
|
### SegmentationLabPage
|
|
Purpose:
|
|
- segmentation workflow
|
|
|
|
Components:
|
|
- SegmentationInputSelector
|
|
- SegmentationModelSelector
|
|
- SegmentationParameterPanel
|
|
- MaskPreview
|
|
- PolygonizedOutputPanel
|
|
- SegmentationExportPanel
|
|
|
|
API:
|
|
- POST /analysis/segmentation
|
|
- GET /analysis-runs/{run_id}/segmentations
|
|
|
|
### QaqcLabPage
|
|
Purpose:
|
|
- compare AI output against reference data
|
|
|
|
Components:
|
|
- PredictionLayerSelector
|
|
- ReferenceLayerSelector
|
|
- MatchThresholdSelector
|
|
- QaqcRunButton
|
|
- QaqcMetricsPanel
|
|
- ErrorLayerTabs
|
|
- FindingTable
|
|
|
|
API:
|
|
- POST /analysis/{run_id}/quality-check
|
|
- GET /quality-checks/{check_id}
|
|
|
|
### ChangeLabPage
|
|
Purpose:
|
|
- compare two vector or raster-derived layers
|
|
|
|
Components:
|
|
- BaselineLayerSelector
|
|
- ComparisonLayerSelector
|
|
- ChangeMethodSelector
|
|
- ChangeResultsMap
|
|
- ChangeStatsPanel
|
|
|
|
API:
|
|
- POST /analysis/change-detection
|
|
- GET /analysis-runs/{run_id}/changes
|
|
|
|
### ExportsPage
|
|
Purpose:
|
|
- generate/download artifacts
|
|
|
|
Components:
|
|
- ExportTypeSelector
|
|
- ExportTargetSelector
|
|
- ExportHistoryTable
|
|
- ExportDownloadButton
|
|
|
|
API:
|
|
- POST /exports/geojson
|
|
- POST /exports/package
|
|
- GET /exports
|
|
|
|
## Shared components
|
|
- LoadingState
|
|
- EmptyState
|
|
- ErrorState
|
|
- StatusBadge
|
|
- MetricCard
|
|
- JsonInspector
|
|
- GeometryBadge
|
|
- CrsBadge
|
|
- LayerLegend
|
|
|
|
## UI principles
|
|
- Processing state must be visible.
|
|
- Empty states must suggest next action.
|
|
- No hidden GIS assumptions: CRS, bounds and source must be visible.
|
|
- Exports must clearly say which run/source they belong to.
|