project-nomad/admin/app
Chris Sherwood 866a6d5625
feat(maps): persist markers to database instead of localStorage
Moves map marker storage from browser localStorage to a server-side database
table so pins survive cache clears, browser changes, and device switches.

Backend:
- New `map_markers` table with future-proofed columns for routing (marker_type,
  route_id, route_order, notes) to avoid a migration when routes are added later
- CRUD endpoints: GET/POST /api/maps/markers, PATCH/DELETE /api/maps/markers/:id
- VineJS validation on create/update
- MapMarker Lucid model

Frontend:
- useMapMarkers hook now fetches from API instead of localStorage
- Marker IDs changed from string (UUID) to number (DB auto-increment)
- API client methods added for all marker operations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 19:13:22 +00:00
..
controllers feat(maps): persist markers to database instead of localStorage 2026-04-03 19:13:22 +00:00
exceptions fix(Docs): documentation renderer fixes 2025-12-23 16:00:33 -08:00
jobs fix(downloads): improved handling for large file downloads and user-initiated cancellation (#632) 2026-04-02 22:46:17 +00:00
middleware feat: gzip compression by default for all registered routes 2026-04-02 20:56:01 +00:00
models feat(maps): persist markers to database instead of localStorage 2026-04-03 19:13:22 +00:00
services fix(Maps): ensure proper parsing of hostnames (#640) 2026-04-03 12:00:09 -07:00
utils feat(Kiwix): migrate to Kiwix library mode for improved stability (#622) 2026-04-01 23:54:16 -07:00
validators fix: block IPv4-mapped IPv6 and IPv6 all-zeros in SSRF check (#520) 2026-04-01 23:54:16 -07:00