Repository navigation
feat: add self-service registration components and styles - #3
Merged
Merged
Conversation
feat: implement self-service registration and home page with FAQs feat: add self-service check functionality and integrate QR code processing feat: enhance self-service functionality with QR code processing and reward redemption features feat: add gift redemption functionality with QR code support and availability check feat: add participation dialog and integrate with self-service home page
|
En el combo box de los premios ("rewards") no salen los ilimitados (en el modelo de la API dice que los productos en none son ilimitados) la API los devuelve pero el front no los muestra. |
|
En /self/acreditation no se tiene trim en la busqueda por carnet, asi que los espacios evitan que se encuentra un CI (el carnet "1000" pasaria pero el "1000 " no), otras paginas si lo tienen no si fue a proposito o no pero es una diferencia entre mismos buscadores entre distintas paginas. |
|
Tal vez se podrian colocar mensajes explicitos en lugar de usar los genericos de la API en ingles, solo por no causar confusión. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



name: feat: add self-service registration components and styles
about: Abre un Pull Request para contribuir con código, documentación o pruebas
title: "feat: implementar autoservicio de acreditación, participación y canjes"
labels: enhancement
assignees: "AASG2003"
✨ Descripción
Implementa el autoservicio de PyDay La Paz para que los participantes puedan acreditarse, descargar su credencial QR, registrar su participación en charlas y talleres, consultar puntos y canjear productos o un regalo especial desde el navegador.
Agrega una página principal con accesos a los distintos flujos y preguntas frecuentes. Integra los endpoints de autoservicio del backend, comparte la lectura del QR y adapta la navegación de las rutas
/selfsin sustituir el menú administrativo del resto de la aplicación.Descripción basada en el commit
8c2a90eab6fc1e48f3e996231c0a372da251f2dfde la ramafeat/self-service: 15 archivos modificados, 1324 inserciones y 10 eliminaciones.🔄 Tipo de cambio
🔗 Issue relacionado
No se proporcionó un issue relacionado. Añadir
Closes #Ncuando corresponda.🧩 ¿Qué cambiaste?
/selfcon accesos a acreditación, participación, canje de puntos y canje de regalos; incorpora un banner y preguntas frecuentes con el contactohello@pylapaz.org./self/acreditationcon carnet de identidad y fecha de nacimiento, bloqueo de envíos simultáneos y descarga de la credencial QR como PNG con efecto holográfico.vanilla-tiltpara la inclinación de la tarjeta yhtml-to-imagepara exportarla; agrega los estilos enstyles/hologram.module.css.lib/qr.tspara leer imágenes QR conjsqr, probar distintas resoluciones y colores invertidos, y extraer el código de control como texto o desde JSON./self/check/[code]: verifica el código por GET, permite subir el QR y registra la participación por POST; muestra el resultado y redirige a/selfal cerrar el diálogo de error de validación./self/redeem/rewardcon consulta de puntos, selector de productos con stock, carnet obligatorio, bloqueo por saldo insuficiente y actualización de saldo y catálogo después del canje./self/redeem/giftcon comprobación inicial de disponibilidad, lectura QR y canje con carnet, sin exigir puntos ni selección de producto./self/check/[code]./selfy sus subrutas, conservando las opciones administrativas fuera de esas rutas.🧪 ¿Cómo probarlo?
Preparación
Se necesita un backend compatible con los endpoints
/api/v1/self-service, un participante de prueba con carnet y fecha de nacimiento válidos, un código de actividad vigente y productos con stock. Realizar los canjes únicamente en un entorno de pruebas, porque modifican puntos y existencias.Configurar
NEXT_PUBLIC_API_URLcon la URL base del backend. Next.js redirige/api/v1/:path*a esa URL mediante la configuración existente.En otra terminal, con la misma variable configurada, ejecutar las comprobaciones del proyecto:
npx tsc --noEmit npm run lint npm run buildEstos comandos son instrucciones para el revisor; no se certifica su ejecución ni su resultado en este documento.
Recorrido manual
http://localhost:3000/selfy comprobar los cuatro accesos, el banner, las preguntas frecuentes y el menú de autoservicio. Verificar también que el menú administrativo se conserve fuera de/self./self/acreditation, ingresar el carnet y la fecha de nacimiento del participante de prueba y completar la acreditación. Comprobar el bloqueo durante la consulta y descargar la credencial QR holográfica./self/check/[code], tanto con Aceptar como con Enter./selfal cerrarlo. Probar también respuestas no exitosas con texto y un fallo de conexión./self/redeem/reward, subir el QR y verificar el saldo. Seleccionar un producto cuyo costo supere los puntos disponibles y comprobar que no permita canjearlo.multiple: false./self/redeem/giftcon disponibilidad y completar el canje usando QR y carnet, sin consultar ni exigir puntos. Repetir con el regalo agotado o no disponible y verificar el diálogo y la redirección.control_code, un archivo ilegible y clics repetidos durante una consulta. Revisar la interfaz en móvil y escritorio y confirmar que no se solicite acceso a la cámara para cargar imágenes.🖼️ Capturas de pantalla (si aplica)
Pendientes de adjuntar. Incluir capturas de la página principal, la credencial, el diálogo de participación y los resultados de canje en escritorio y móvil. No publicar credenciales, códigos de descuento ni datos personales reales.
✅ Checklist
maintipo: descripción breveCloses #N💬 Notas para el revisor
{ control_code, ci, gift: null }. Validar que el backend aceptenull; si exige una cadena vacía, será necesario ajustar el cliente antes del merge.