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