Phase 1 : seed CoastalPoints + frontend React complet

Backend :
- SeedCoastalPointsCommand : 29 points Antilles (idempotent)
  Martinique, Guadeloupe, Sainte-Lucie, Barbade, Saint-Martin

Frontend :
- api/client.js : wrapper fetch pour spots, observations, feedback
- SargassesMap : MapLibre GL JS, marqueurs spots, couche observations
  GeoJSON avec rechargement bbox dynamique à chaque mouvement carte
- SpotPanel : Spot Mode (score/niveau/distance/trend), bouton feedback
  terrain anonyme, gestion état loading/error/null
- App.jsx : composition map + panel, état selectedSpot
- vite.config.js : proxy /api → Symfony dev, build → backend/public/spa

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Gwadaking
2026-04-01 03:17:43 -04:00
parent 4af5e62465
commit 0c1deb93cb
15 changed files with 1369 additions and 306 deletions

View File

@@ -52,7 +52,7 @@
- [x] Rasterisation → raster UINT8 binaire (evalscript cloud-side)
- [x] Vectorisation GDAL (`gdal_polygonize.py`) + simplification PostGIS
- [x] Persistance `SargassumObservation`
- [ ] Génération vector tiles (Tippecanoe → `.pbf`)
- [ ] Génération vector tiles (Tippecanoe → `.pbf`) — différé Phase 2
### API Backend
@@ -66,14 +66,16 @@
### Frontend React
- [ ] Carte de base (MapLibre GL JS)
- [ ] Affichage vector tiles observations
- [ ] Sélection d'un CoastalPoint (Spot Mode)
- [ ] Affichage polygones observés
- [x] Carte de base (MapLibre GL JS + fond CARTO dark)
- [x] Affichage observations GeoJSON (bbox dynamique au mouvement)
- [x] Marqueurs CoastalPoints avec sélection
- [x] SpotPanel : Spot Mode complet (score, niveau, distance, trend)
- [x] Bouton feedback terrain (confirmation/infirmation anonyme)
- [x] Build Vite → backend/public/spa/ (SPA statique servie par Caddy)
### Données initiales
- [ ] Seed `CoastalPoint` zone Antilles (plages, ports, spots surf, zones pêche)
- [x] Seed `CoastalPoint` zone Antilles — 29 points (plages, ports, surf, pêche)
---