Gwadaking
2c41832d02
fix: ingestion et service worker sont maintenant redémarré toutes les 6h
2026-04-14 01:42:43 -04:00
Gwadaking
9712cb54db
feat: phase A — backup B2, healthcheck /api/status, vector tiles Tippecanoe
...
- A1: scripts/backup-postgres.sh — pg_dump quotidien compressé → Backblaze B2 (rclone), rétention 30j
- A2: StatusController retourne HTTP 503 + healthy/alertReason si dernière observation > 6h
- A4: Dockerfile installe tippecanoe, GenerateTilesCommand génère 5 tilesets (obs + h6/12/24/48), Caddyfile sert /tiles/* sans fallback SPA, SargassesMap.jsx passe en sources vector tiles statiques
- chore: backend/public/assets/ ajouté au .gitignore (build artifacts)
- chore: setup vitest frontend + ImpactScoreServiceTest (session précédente)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-10 03:40:32 -04:00
Gwadaking
50a9e49468
fix: ordre géographique N→S (St-Martin, Guadeloupe, Dominique, Martinique, Ste-Lucie, Barbade)
2026-04-09 01:07:27 -04:00
Gwadaking
81cc9736d8
feat: Dominique et Sainte-Lucie dans les filtres navigation
2026-04-09 01:06:45 -04:00
Gwadaking
fb00ec8fa2
fix: topbar 2 lignes sur mobile (boutons îles toujours visibles), logo 44px
2026-04-09 01:02:25 -04:00
Gwadaking
38e810bd79
fix: supprimer stat Distance sargasses (redondante avec la liste des bancs)
2026-04-09 01:00:25 -04:00
Gwadaking
8823d33eb5
fix: clic carte ferme le panel, stopPropagation sur marker, max-height panel
2026-04-09 00:35:41 -04:00
Gwadaking
e5e835298e
feat: logo dans la topbar à la place de l'emoji+texte
2026-04-08 03:09:55 -04:00
Gwadaking
90bee1bfe9
fix: rebuild propre — 1 seul bundle, plugin clean-assets avant chaque build
2026-04-08 03:08:02 -04:00
Gwadaking
9f73639f25
clean: supprimer les artifacts Vite du repo, gitignore public/assets
2026-04-08 03:00:02 -04:00
Gwadaking
cc33c63d46
add: logo top-left sur la carte, compressé à 20ko (110px)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 02:51:11 -04:00
Gwadaking
878174404e
fix: calculer ETA depuis horizons API — évite dépendance aux données stale en base
2026-04-03 19:35:21 -04:00
Gwadaking
22a3ce23a4
fix: corriger null paint et line-dasharray invalide dans cartoonizeStyle
2026-04-03 19:27:15 -04:00
Gwadaking
8a60c783b1
fix: supprimer le pattern dots, réduire opacité observations
...
Les dots couvraient tout le tile Sentinel (pas seulement les pixels
sargasses), saturant la vue. Fill opacity réduit à 0.5 pour laisser
respirer la carte sous-jacente.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 16:42:33 -04:00
Gwadaking
6bf6762dac
fix: ne pas injecter afai:null dans les propriétés GeoJSON
...
MapLibre considère null comme "propriété présente" → le filtre !has
ne prenait pas le relais → tous les polygones étaient masqués.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 16:36:57 -04:00
Gwadaking
3f1e49bb3b
fix: masquer les zones d'observation sans sargasses (afaiIndex = 0)
...
Passe afaiIndex en propriété GeoJSON et applique un filtre MapLibre
sur les layers observation : seules les features avec afai > 0 sont
affichées. Fallback : si la propriété est absente, affichage normal.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 16:21:15 -04:00
Gwadaking
7169dffc67
feat: refonte visuelle cartoon — fond OpenFreeMap, marqueurs SVG, légende comic, SpotPanel clair
...
- Fond cartoon : OpenFreeMap bright transformé (îles #7ec850, océan #3ab5e6, bordure #4a7c2f)
- Overlay vagues SVG subtil sur toute la carte (opacity 6%)
- Marqueurs spots SVG expressifs : ★ (ok), ! (risque), ✕ (impact) — animation bounce sur impact
- Sargasses #f4a020 avec texture dots MapLibre + contour épais 3.5px
- Légende comic : fond #fffbf0, bordure 3px, ombre dure 4px 4px 0 #333 , Fredoka One
- SpotPanel blanc cassé avec ombre dure cartoon, gauge coloré pastel (vert/jaune/rouge)
- Topbar #1a1a2e avec boutons bleus ombre dure + hover translate(-2px,-2px)
- Timeline : step actif avec ombre dure cartoon
- Police Fredoka One chargée via Google Fonts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 15:25:17 -04:00
Gwadaking
1078a3459b
fix: supprimer le width 1126px du #root qui bridait la map en desktop
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 15:05:13 -04:00
Gwadaking
6e6df9fd89
build: bundle frontend assets
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 14:42:46 -04:00
Gwadaking
d4c513e5e5
build: bundle frontend assets
2026-04-01 23:39:52 -04:00
Gwadaking
c02b58c3ce
fix: remove unused frontend/dist volume, commit built assets
2026-04-01 20:57:28 -04:00
Gwadaking
94bb6f5e8c
Phase 2 : dérive, ImpactScore, slider temporel
...
Backend :
- OpenMeteoClient : vent horaire 72h (gratuit, sans clé)
- DriftSimulationService : échantillonnage ST_GeneratePoints,
déplacement itératif Stokes 3%, reconstruction ST_ConcaveHull,
4 horizons H+6/12/24/48, confiance décroissante
- ImpactScoreService : score 4 composantes (distance/densité/
vitesse/tendance), cache Redis TTL 3h, invalidation à chaque calcul
- ComputeForecastsCommand : traite les observations sans forecast
- SpotScoreController : score courant + horizons depuis forecasts
Frontend :
- TimelineSlider : navigation Now/+6h/+12h/+24h/+48h
- SargassesMap : couche observations (orange) vs forecasts (violet)
rechargée à chaque changement d'étape
- SpotPanel : affichage score par horizon actif + indicateur confiance
- Build → backend/public/spa/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 03:23:21 -04:00
Gwadaking
0c1deb93cb
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 >
2026-04-01 03:17:43 -04:00
Gwadaking
34e9675350
Fix : backend intégré en monorepo (suppression git imbriqué)
...
symfony new crée son propre .git — supprimé pour intégrer
backend/ comme dossier ordinaire dans le monorepo.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 02:23:26 -04:00