Files
geointel/docs/CODEX_BUILD_PLAN.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

4.5 KiB

Codex Build Plan

Dit document is de uitvoeringsvolgorde voor Codex. Werk fase per fase. Sla geen fases over tenzij technisch noodzakelijk.

Algemene bouwregels

  • Lees eerst README.md, AGENTS.md en alle docs in deze map.
  • Bouw documentatiegedreven.
  • Geen quick hacks.
  • Geen mock-only functionaliteit als echte functionaliteit verwacht wordt.
  • Voeg bij elke fase tests toe waar zinvol.
  • Update TODO.md na elke afgeronde fase.
  • Houd frontend en backend consistent.
  • API-contracten volgen API_SPECIFICATION.md.
  • Database volgt DATABASE_SCHEMA.md.

Fase 1 — Repo Foundation

Doel: werkende basisrepo.

Taken:

  1. Backend scaffold maken in backend/.
  2. Frontend scaffold maken in frontend/.
  3. Docker compose toevoegen voor backend, frontend, db, redis.
  4. .env.example toevoegen.
  5. Basis README quickstart bijwerken.
  6. Health checks toevoegen.

Acceptatiecriteria:

  • backend start lokaal
  • frontend start lokaal
  • database container start
  • health endpoint werkt

Fase 2 — Database Foundation

Doel: PostGIS schema opzetten.

Taken:

  1. SQLAlchemy + GeoAlchemy2 toevoegen.
  2. Alembic initialiseren.
  3. projects, areas, datasets, analysis_runs toevoegen.
  4. PostGIS extensie activeren.
  5. Spatial indexes voorzien.

Acceptatiecriteria:

  • migraties draaien succesvol
  • tests kunnen project en area aanmaken
  • geometrie wordt correct opgeslagen

Fase 3 — Project & Area API

Doel: projecten en gebieden beheren.

Taken:

  1. CRUD routes voor projects.
  2. CRUD routes voor areas.
  3. GeoJSON polygon validatie.
  4. Area oppervlakte berekenen.
  5. Frontend project list/detail.
  6. Map draw basis.

Acceptatiecriteria:

  • gebruiker kan project maken
  • gebruiker kan polygon tekenen en opslaan
  • area verschijnt op kaart

Fase 4 — Dataset Manager

Doel: datasets uploaden en metadata lezen.

Taken:

  1. Upload endpoint.
  2. Bestandsopslag in storage/uploads.
  3. Raster metadata extraction met Rasterio.
  4. Vector metadata extraction met GeoPandas/Fiona.
  5. Dataset list/detail UI.
  6. Statussen tonen.

Acceptatiecriteria:

  • GeoTIFF upload toont CRS, bounds, bands, resolutie
  • GeoJSON/shapefile upload toont CRS, bounds, feature count

Fase 5 — Raster Core

Doel: rasterdata verwerken.

Taken:

  1. Raster clipping by area.
  2. Raster preview generation.
  3. Raster tiling met tile metadata.
  4. Tile opslag.
  5. UI acties voor clip/tile.

Acceptatiecriteria:

  • raster kan op area geclipt worden
  • tiles worden aangemaakt
  • tile metadata bevat transform en bounds

Fase 6 — Vector Core

Doel: vectordata verwerken.

Taken:

  1. Vector import naar PostGIS.
  2. CRS transform naar 4326.
  3. Geometry validation/repair.
  4. Vector clipping by area.
  5. Feature count en area metrics.

Acceptatiecriteria:

  • vectorlaag wordt zichtbaar op kaart
  • clipping werkt
  • features zitten in PostGIS

Fase 7 — Reference Data

Doel: referentielaag beschikbaar maken.

Taken:

  1. OSM fetcher als fallback implementeren.
  2. GRB connector interface ontwerpen.
  3. Reference datasets opslaan als datasets + vector_features.
  4. UI voor referentielaag.

Acceptatiecriteria:

  • OSM buildings kunnen voor area worden opgehaald
  • referentielaag zichtbaar op kaart
  • GRB-interface is voorbereid zonder app te blokkeren als externe endpoint nog niet volledig is

Fase 8 — Detection Lab

Doel: objectdetectie end-to-end.

Taken:

  1. Model config en YOLO wrapper.
  2. Detection analysis run.
  3. Inference op raster tiles.
  4. Pixel bbox naar geospatial polygon.
  5. Detecties opslaan.
  6. Detectielaag tonen.
  7. GeoJSON export.

Acceptatiecriteria:

  • detection job kan gestart worden
  • duidelijke fout als model ontbreekt
  • detecties worden als polygonen op kaart getoond
  • export werkt

Fase 9 — QA/QC Lab

Doel: detecties vergelijken met referentie.

Taken:

  1. IoU matching.
  2. TP/FP/FN berekening.
  3. Precision/recall/F1.
  4. quality_checks en quality_findings opslaan.
  5. QA UI met metrics en foutlagen.

Acceptatiecriteria:

  • detection run kan vergeleken worden met referentielaag
  • false positives/false negatives zichtbaar
  • metrics kloppen op testfixtures

Fase 10 — Export & Portfolio Demo

Doel: bruikbare einddemo.

Taken:

  1. Exportcentrum.
  2. Demo project seed.
  3. Portfolio workflow documenteren.
  4. Smoke tests.
  5. README bijwerken.

Acceptatiecriteria:

  • één demo-workflow werkt end-to-end
  • docs beschrijven hoe demo te draaien
  • tests groen

Niet doen in eerste bouwronde

  • geen volledige LiDAR Workbench
  • geen eigen training studio
  • geen complexe AI-copilot
  • geen multi-user auth tenzij noodzakelijk
  • geen zwaar dashboard boven analysefunctionaliteit