Files
geointel/docs/COMPONENT_BREAKDOWN.md
Jens faeb58ef6d
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
Initial public release
2026-08-31 21:56:53 +02:00

4.3 KiB

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.