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
4.5 KiB
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:
- Backend scaffold maken in
backend/. - Frontend scaffold maken in
frontend/. - Docker compose toevoegen voor backend, frontend, db, redis.
.env.exampletoevoegen.- Basis README quickstart bijwerken.
- 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:
- SQLAlchemy + GeoAlchemy2 toevoegen.
- Alembic initialiseren.
- projects, areas, datasets, analysis_runs toevoegen.
- PostGIS extensie activeren.
- 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:
- CRUD routes voor projects.
- CRUD routes voor areas.
- GeoJSON polygon validatie.
- Area oppervlakte berekenen.
- Frontend project list/detail.
- 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:
- Upload endpoint.
- Bestandsopslag in storage/uploads.
- Raster metadata extraction met Rasterio.
- Vector metadata extraction met GeoPandas/Fiona.
- Dataset list/detail UI.
- 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:
- Raster clipping by area.
- Raster preview generation.
- Raster tiling met tile metadata.
- Tile opslag.
- 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:
- Vector import naar PostGIS.
- CRS transform naar 4326.
- Geometry validation/repair.
- Vector clipping by area.
- 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:
- OSM fetcher als fallback implementeren.
- GRB connector interface ontwerpen.
- Reference datasets opslaan als datasets + vector_features.
- 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:
- Model config en YOLO wrapper.
- Detection analysis run.
- Inference op raster tiles.
- Pixel bbox naar geospatial polygon.
- Detecties opslaan.
- Detectielaag tonen.
- 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:
- IoU matching.
- TP/FP/FN berekening.
- Precision/recall/F1.
- quality_checks en quality_findings opslaan.
- 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:
- Exportcentrum.
- Demo project seed.
- Portfolio workflow documenteren.
- Smoke tests.
- 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