2.1 KiB
2.1 KiB
Implementer evidence — CLUB-002
Resumen
Implementé la primera superficie frontend/PWA del Club sobre el backend de CLUB-001.
Qué se añadió
1) Proxy Next.js para Club
project/frontend/src/app/api/club/[...path]/route.ts
Función:
- reenviar
GET/POST/PATCHal backend - propagar cookies entrantes
- reenviar
set-cookiedel backend para conservarmdv_clubsame-origin
2) Rutas frontend del Club
project/frontend/src/app/club/page.tsxproject/frontend/src/app/club/join/page.tsxproject/frontend/src/app/club/card/page.tsxproject/frontend/src/components/club/ClubExperience.tsx
Comportamiento:
- landing Club
- alta anónima desde
POST /api/club/join - tarjeta digital con
memberCode, saldo y movimientos recientes - CTA para abrir la tarjeta cuando ya existe identidad Club en el dispositivo
- bloque de instalación PWA usando
beforeinstallprompt
3) Manifest e iconos PWA
project/frontend/src/app/manifest.tsproject/frontend/public/images/club-icon-192.pngproject/frontend/public/images/club-icon-512.png
Además:
project/frontend/src/app/layout.tsxahora declara manifest + metadata Apple Web App + viewport themeColor.
4) Descubribilidad en storefront
- enlace
Clubañadido en header y footer.
Decisiones de implementación
- Reutilicé un único componente cliente
ClubExperiencepara/club,/club/joiny/club/card. - El frontend consume el backend Club vía proxy Next same-origin para que la cookie
mdv_clubquede gestionada correctamente por el navegador. - La tarjeta muestra una credencial visual móvil basada en
memberCodey deja el contrato final de lectura en caja para CLUB-003, como estaba previsto en la fase TPV.
Validación ejecutada
cd project/frontend && npm run build✅./scripts/verify.sh✅git diff --check✅
Riesgos / siguiente paso
- CLUB-003 debe cerrar el contrato exacto de identificación en TPV/caja para usar la tarjeta digital también en escaneo/lectura operativa.
- Conviene hacer smoke manual real en navegador/móvil para comprobar el prompt de instalación y la persistencia de
mdv_clubdespués dePOST /club/join.