WELIFE Docs Swagger Admin Web

MAP UX + Demo Images Audit — 2026-08-11

Domain: D-PLACE (+ D-RENTAL · D-HOTEL · D-FNB)
WP: WP-MAP-DEMO-IMG-01 (media/seed) · WP-FE-MAP-UX-01 (wire UI + web placeholder)
Surfaces: CON
Gate: Phase 0 PASS → Phase 1 download/upload allowed.

1. Mockup vs FE (so JPG)

JPG Domain Map-related panels FE Gap ưu tiên (pre) → post
0293115396ae17f04ebf1 Home / Places Map + red pins; nearby photo cards HomeMapPreview · NearbyPlacesSection Preview web stylized OK; nearby có URI khi seed
0ea609678e9a0fc4568b23 Rental Hero photo cards; Bản đồ RentalListScreen PASS cover + sheet thumb
934d7f88f875792b20645 Hotel Photo cards; mini-map HotelListScreen PASS cover + sheet thumb
44ba267ea18320dd799235 FNB Cards photo; map entry MerchantList · MerchantMap PASS cover + web strip

2. Surface checklist — post-implement (2026-08-11 review)

Surface Hierarchy Pins Ảnh Web demo GPS Status
WelifeMap PASS PASS + mapCluster PASS sheet/list thumb PASS cover strip PASS device PASS
PlacesNearby PASS PASS PASS list URI PASS cover strip PASS PASS
PlaceDetail PASS PASS mini PASS gallery URI n/a n/a PASS
HomeMapPreview PASS PASS mapPin PARTIAL (social thumb) PARTIAL stylized PASS OK hub
NearbyMapSheet PASS PASS + thumb PASS when caller wires PASS cover strip mixed PASS (Hotel/Rental wired)
Rental/Hotel list PASS PASS PASS Image+fallback PASS via sheet Rental GPS / Hotel DEFAULT+copy PASS
Merchant list/map PASS PASS PASS PASS cover strip DEFAULT+copy PASS

* Chip stretch web: filterChipWebFix (2026-08-11).

3. Media — post-implement

Entity Demo URL source FE Image Map thumb
hub places.imageUrl MinIO uploads/demo/** YES YES
catalog map_places.images MinIO (script) / Unsplash seed fallback Places list YES via enrich
hotels / rentals / merchants MinIO YES YES
pharmacy / medical / schools MinIO (script) domain screens YES on /places/map
transit_stops.imageUrl Unsplash seed / MinIO script (WP-TRANSIT-IMG-01) Nearby/Detail YES YES hub TRANSIT
parking_lots / fuel_stations / atms có imageUrl (demo script) domain screens hub thumb

Decision Phase 1: Host logo-free stock on MinIO uploads/demo/** (anonymous GET local).

4. Phase gate

Status Phase 0: PASS


Implement follow-up + review control

Phase Status Notes
0 Audit report DONE this file
1 MinIO demo pipeline DONE npm run demo:map-images
2 Wire FE images DONE Hotel/Rental/Merchant + PlaceDetail + WelifeMap + web strip
3 Polish DONE mapCluster · GPS copy · smoke

Smoke (review 2026-08-11)

Check Result
MinIO …/uploads/demo/hotel-1.jpg HTTP 200
GET /hotels imageUrl 4/4
GET /rentals imageUrl 3/3
GET /merchants?kind=FNB imageUrl 4/4
GET /transit/stops/nearby imageUrl OK (WP-TRANSIT-IMG-01)
GET /places/map (bounds) thumbs hotels/places/merchants/rentals (+ pharm/med/school/transit)
npm run env:check PASS
POST /upload/single Not re-verified (OTP rate-limit) — endpoint unchanged

Out of scope (accepted)

WP: WP-MAP-DEMO-IMG-01 · WP-FE-MAP-UX-01 · WP-TRANSIT-IMG-01 · Surfaces: CON