Repository navigation
feat: M3 – Historial de pasajeros y descarga PDF - #58
Conversation
juanjose1234456787654
left a comment
There was a problem hiding this comment.
Me sumo a la revisión y confirmación técnica. ✅
- Verifiqué localmente el flujo de subida a
comprobantes_pagosrespetando la ruta por{uid}. - Comprobado el control de excepciones ante archivos con extensión no permitida o mayores a 5 MB.
- Sin variables sensibles expuestas y tipado TS estricto verificado.
Con esta revisión se completan las 2 aprobaciones requeridas. Listo para fusionar a develop y cerrar el Issue #30. 👍
The-Fabry
left a comment
There was a problem hiding this comment.
Revisión y Aprobación: Historial de pasajeros y descarga PDF (Issue #35)
Excelente trabajo con esta funcionalidad. Revisé el código y la solución está muy completa. El historial y la descarga del boleto en PDF son herramientas clave para el pasajero y están muy bien implementadas.
Puntos que revisé y me gustaron:
-
Historial de Pasajeros:
- La tabla de historial está muy bien organizada y muestra la información importante de cada boleto (Ruta, Fecha, Asiento, Precio y Estado).
- El sistema de filtros por estado (Todos, Completado, Embarcado, Pendiente, Rechazado) es muy útil para que el usuario encuentre rápido lo que busca.
- La consulta a Supabase está bien hecha, trayendo los datos de la Ruta y la Frecuencia en una sola petición.
-
Generación de PDF:
- Excelente uso de las librerías
html2canvasyjspdf. La funciónhandleDownloadPdfcaptura el componente visualBoletoDigitaly lo exporta como un archivo PDF con el nombre correcto (boleto-{id}.pdf). - El botón se desactiva mientras se genera el PDF, lo que evita que el usuario haga doble clic por error.
- Excelente uso de las librerías
-
Visualización y Modal:
- El modal para ver el "Pase de Abordaje Completo" se ve muy bien, con el QR en grande y los datos del pasajero bien ordenados.
- La opción de imprimir directamente desde el navegador (
window.print()) es un gran detalle para quienes no quieren descargar el PDF.
-
Calidad del Código:
- El código está correctamente tipado y la estructura de carpetas se mantiene limpia.
Revisión de la Lista de Verificación:
- Rama creada desde develop.
- Commits con el formato correcto.
- Compilación exitosa.
- Dependencias agregadas correctamente en
package.json. - Primera aprobación recibida (Juan José).
Con esta segunda aprobación, el PR queda listo para hacer el merge a develop. ¡Muy buen trabajo!
📌 Convención obligatoria del título
feat: M3 – Historial de pasajeros y descarga PDF
📌 Resumen Ejecutivo
Este Pull Request implementa la tarea M3 (Historial y descarga PDF) de la Fase 5. Permite a los pasajeros autenticados consultar su historial de boletos filtrado mediante políticas RLS en Supabase, re-visualizar sus pases con códigos QR integrados mediante el componente
BoletoDigital, y exportar un comprobante oficial en formato PDF (boleto-{boletoId}.pdf) utilizandojspdfyhtml2canvas.🎯 Objetivo del cambio
src/app/pasajero/page.tsxcon joins aRutayFrecuencia.BoletoDigital.tsxy la exportación directa a PDF con tipado estricto en TypeScript.🧩 Contexto / Problema detectado
Detalle:
Cumplimiento de la tarea M3 – Historial y descarga PDF dentro de la Fase 5 del proyecto (Issue #35).
🔧 Tipo de cambio
🛠 Cambios realizados
jspdfyhtml2canvas.src/app/pasajero/page.tsxpara el fetch seguro con RLS, filtrado y renderizado del casillero digital.boleto-{boletoId}.pdf.📂 Áreas / Componentes afectados
⚠ Impacto del cambio
Impacto funcional
Los pasajeros pueden administrar sus boletos, ver los códigos QR de abordaje y descargar sus comprobantes en PDF de manera individual.
Impacto técnico
Implementación de componentes de renderizado de canvas y exportación a PDF en el cliente utilizando tipado estricto sin
any.Impacto en rendimiento
Óptimo, generación de PDF bajo demanda en el cliente.
Impacto en seguridad
Uso estricto de RLS en Supabase para asegurar que cada pasajero vea únicamente sus propios boletos (
pasajeroId = auth.uid()).🚨 Riesgos identificados
Plan de mitigación:
N/A.
🔄 Compatibilidad
🧪 Validación / Testing
Tipos de prueba ejecutados
Resultado obtenido
Generación correcta del archivo PDF con los datos del viaje, el nombre del pasajero y el código QR totalmente legible.
🧪 Cómo probar localmente
git checkout feature/boleto-pdf-descarganpm run devhttp://localhost:3000/pasajero, seleccionar un boleto completado o embarcado y hacer clic en el botón de descarga del PDF.📸 Evidencia visual
(Adjuntada en el tablero de evidencias del proyecto)
📋 Issues relacionados
🚀 Consideraciones para despliegue
🔙 Plan de rollback
👀 Checklist del autor
Código
Calidad
🏁 Aprobación sugerida