Files
geointel/docs/COMPONENT_BREAKDOWN.md
T
Codex 6ea3586a3e
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled
Initial GeoIntel V1 foundation
2026-06-16 23:36:32 +02:00

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.