53 lines
2.1 KiB
Markdown
53 lines
2.1 KiB
Markdown
# 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/PATCH` al backend
|
|
- propagar cookies entrantes
|
|
- reenviar `set-cookie` del backend para conservar `mdv_club` same-origin
|
|
|
|
### 2) Rutas frontend del Club
|
|
- `project/frontend/src/app/club/page.tsx`
|
|
- `project/frontend/src/app/club/join/page.tsx`
|
|
- `project/frontend/src/app/club/card/page.tsx`
|
|
- `project/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.ts`
|
|
- `project/frontend/public/images/club-icon-192.png`
|
|
- `project/frontend/public/images/club-icon-512.png`
|
|
|
|
Además:
|
|
- `project/frontend/src/app/layout.tsx` ahora declara manifest + metadata Apple Web App + viewport themeColor.
|
|
|
|
### 4) Descubribilidad en storefront
|
|
- enlace `Club` añadido en header y footer.
|
|
|
|
## Decisiones de implementación
|
|
- Reutilicé un único componente cliente `ClubExperience` para `/club`, `/club/join` y `/club/card`.
|
|
- El frontend consume el backend Club vía proxy Next same-origin para que la cookie `mdv_club` quede gestionada correctamente por el navegador.
|
|
- La tarjeta muestra una credencial visual móvil basada en `memberCode` y 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_club` después de `POST /club/join`.
|