Erudia
★ DestacadoSaaS de gestión escolar K-12
Un solo backend, miles de colegios. SaaS escolar multi-tenant de extremo a extremo.
# Resumen
Erudia es una plataforma SaaS multi-tenant que digitaliza la operación completa de un colegio K-12. Cada escuela vive en su propio subdominio (colegio.erudia.app) con datos aislados lógicamente sobre una única base PostgreSQL, lo que permite operar cientos de instituciones desde una sola instancia con costos marginales mínimos. El backend es un modular monolith en NestJS con Clean Architecture, y el frontend un panel Angular 20 con PrimeNG. Cubre asistencia con QR y reconocimiento por foto, libreta de notas, tesorería con facturación electrónica SUNAT y aula virtual.
! El problema
Los colegios medianos en Perú gestionan asistencia, notas y cobranzas con cuadernos, Excel y WhatsApp. No hay trazabilidad, las matrículas se pierden y la cobranza es manual. Las soluciones existentes son caras, monolíticas y requieren un servidor por colegio.
✓ La solución
Un SaaS multi-tenant donde alta de un colegio = un registro + un subdominio, sin desplegar infraestructura nueva. Aislamiento por tenant en cada query, JWT que transporta el tenant, y módulos desacoplados que se activan por plan. Onboarding de un colegio en minutos, no semanas.
# Características
Asistencia QR + foto
Marcado por código QR del alumno y verificación opcional por foto; notificación al apoderado en tiempo real.
Libreta de notas
Períodos, competencias y promedios configurables por nivel; exportación a PDF oficial.
Tesorería + SUNAT
Estados de cuenta por alumno, pagos y facturación electrónica integrada con SUNAT.
Aula virtual
Tareas, materiales y comunicación docente-apoderado en un solo lugar.
Multi-tenant por subdominio
Resolución de tenant por host, aislamiento de datos y branding por colegio.
Colas con BullMQ
Notificaciones, generación de PDFs y envíos a SUNAT procesados de forma asíncrona y resiliente.
# Arquitectura
Modular monolith en NestJS con Clean Architecture: cada módulo de dominio (Matrícula, Asistencia, Notas, Tesorería) expone casos de uso y oculta su persistencia. Una capa transversal propaga el tenant a lo largo de cada request y garantiza que toda consulta quede acotada a su colegio, sin que cada caso de uso tenga que recordarlo. El trabajo pesado (PDFs, notificaciones, facturación) se procesa de forma asíncrona mediante colas.
# Stack técnico
# Aprendizajes
- → El aislamiento por tenant debe vivir en una capa transversal (interceptor/middleware), nunca en cada caso de uso: un solo punto de fallo controlado.
- → Un modular monolith bien delimitado da el 90% de los beneficios de microservicios con el 10% de la complejidad operativa.
- → Las colas no son un lujo: facturación SUNAT y notificaciones fuera del request son la diferencia entre una UI fluida y timeouts.
# Roadmap
¿Te sirve para tu negocio?
Esta solución se puede adaptar a tu organización. Comparte el proyecto o escríbeme para conversarlo.