Plataforma de comunicación escuela–familias
Frontend de plataforma para escuela en España donde padres consultan actividades, se inscriben digitalmente y pagan en línea con Stripe.
Contexto / Problema
Una escuela en España gestionaba inscripciones a viajes y actividades extracurriculares por email y documentos físicos. Los padres de familia no tenían visibilidad clara del estado de las inscripciones de sus hijos, y el equipo administrativo procesaba pagos manualmente con transferencias bancarias que tardaban días en confirmarse.
El proyecto llegó a través de la agencia 31rooms, con quien trabajé casi un año desarrollando proyectos para clientes en España. El cliente necesitaba una solución que cumpliera con el RGPD europeo — un requerimiento que no había enfrentado antes y que requirió investigación específica sobre almacenamiento de datos de menores y consentimiento parental digital.
Decisiones técnicas
Next.js para el frontend por los requisitos de la agencia y la necesidad de SSR para páginas protegidas por auth. El SSR era importante: las páginas de actividades necesitaban ser indexables (SEO para padres que buscan la escuela online) pero las páginas de gestión de hijos debían estar completamente protegidas. Next.js permite manejar ambos casos desde el mismo proyecto sin duplicar código.
Stripe para pagos — requerimiento del cliente desde el inicio por soporte multi-divisa y facturación europea. Stripe Checkout simplificó enormemente el cumplimiento con PSD2 (autenticación fuerte de clientes requerida en Europa) porque maneja la autenticación 3D Secure automáticamente sin código adicional de mi parte.
El reto principal fue la arquitectura de roles: padres de familia ven únicamente la información de sus propios hijos; administradores ven todo. Se implementó a nivel de middleware de Next.js para garantizar que ninguna ruta exponga datos cruzados, sin depender de validaciones en el cliente.
Implementación destacada
Área de padres
Cada padre tiene acceso a un dashboard personalizado con las actividades disponibles para sus hijos (filtradas por nivel escolar), el estado de inscripciones previas, y próximas fechas. Los datos de los alumnos están completamente aislados — un padre no puede acceder, ni accidentalmente, a información de otros niños.
El diseño fue mobile-first porque la mayoría de los padres accedía desde el teléfono. El objetivo era que cualquier inscripción fuera completable en menos de 3 minutos desde un teléfono sin necesidad de capacitación.
Flujo de pago con Stripe
La inscripción crea una sesión de Stripe Checkout con los detalles del viaje. Al completar el pago, el webhook de Stripe confirma la inscripción en la base de datos y envía confirmación por email. El sistema maneja reintentos y pagos fallidos automáticamente, con notificaciones al administrador cuando un pago requiere atención manual.
La implementación de webhooks requirió manejo cuidadoso de idempotencia — Stripe puede enviar el mismo evento múltiples veces, y el sistema debe procesar cada inscripción exactamente una vez para evitar cobros o registros duplicados.
Cumplimiento RGPD
Implementé las funcionalidades mínimas requeridas: política de privacidad aceptada en el registro, derecho de acceso (exportación de datos del usuario en JSON), y derecho al olvido (eliminación completa de cuenta y datos asociados). El almacenamiento de datos de menores requirió consentimiento parental explícito documentado en la base de datos.
Resultado / impacto
Eliminación de papeleo en inscripciones y reducción del tiempo de gestión administrativa de horas a minutos por actividad. Primera experiencia construyendo para un cliente europeo con requisitos regulatorios distintos a México: RGPD, facturación UE, y PSD2 para pagos.
Desafíos no planeados
La zona horaria fue un desafío operativo real. Con 7 horas de diferencia entre México y España, las revisiones tenían que ser temprano en la mañana para mí o tarde en la tarde para ellos. Establecimos revisión asincrónica: cada PR incluía un video corto mostrando el feature implementado, reduciendo las llamadas sincrónicas a menos de una por semana.
Aprendizajes
Trabajar con un equipo remoto en zona horaria opuesta requiere documentación más rigurosa que el desarrollo local. La inversión en documentar decisiones técnicas en cada PR pagó dividendos cuando el equipo español necesitaba retomar contexto después de días sin comunicación. También aprendí que los requerimientos de privacidad bajo el RGPD europeo son significativamente más exigentes que la regulación mexicana equivalente, y que es mejor investigarlos desde el inicio del proyecto que descubrirlos en la etapa de QA.