← Volver a proyectos
Proyecto 03 · En producción

SCAR — Sistema de Control de Asistencia y Recursos

Migración completa de un sistema escolar construido sobre Google Apps Script hacia una aplicación web independiente, con reportes, escaneo optimizado y panel de superadministración.

FirebaseSPA / Router propiojsPDFCSVOptimización de lecturas

El reto

El sistema original de asistencia y pagos escolares (Enlace Escolar) dependía de Google Apps Script y de la API REST de Firestore, una combinación funcional pero limitada: lenta para búsquedas, frágil ante errores de red, y difícil de escalar conforme crecía el número de escuelas usándolo.

La solución

Migré el sistema completo a una aplicación Firebase independiente (enlaceescolar-v2), entregando más de 26 archivos que cubren un router de aplicación de página única, todos los módulos de servicio, generación de reportes en PDF y CSV, un motor de escaneo rediseñado, y un panel de superadministración con carga masiva por CSV.

  • Corrección de tres errores originales: sobrescritura de bajas de alumnos, fallas en el disparo de notificaciones por Telegram, y búsquedas lentas en el sistema anterior
  • Modo dual de evaluación docente, agregado como funcionalidad nueva sobre la base migrada
  • Reportes en PDF generados con jsPDF directamente en el cliente, sin depender de servicios externos de conversión
  • Optimización de costos con onSnapshot — rediseño de las suscripciones en tiempo real para reducir el número de lecturas facturables en Firestore
  • Despliegue simplificado mediante un script deploy.bat para Windows, pensado para que el proceso de publicación no dependiera de conocimientos avanzados de línea de comandos

Por qué una migración y no un parche

Los tres errores originales no eran accidentes aislados: eran síntomas de una arquitectura que no estaba pensada para la escala que el sistema ya tenía. Migrar a una base de Firebase propia, en lugar de seguir parchando Apps Script, fue la decisión que permitió resolver esos errores de raíz y, al mismo tiempo, abrir espacio para funcionalidad nueva como la evaluación docente dual.