2026 · En producción
Sistema de Gestión de Servidores y Cultos
Aplicación web instalable para programar cultos y asignar roles de servicio
Rol: Desarrollo full stack
Contexto
La congregación organizaba los cultos y la asignación de roles de servicio en cuadernos y mensajes de WhatsApp. El sistema centraliza la programación, deja constancia de cada cambio y permite medir la rotación de participación entre los voluntarios.
De un vistazo
- líneas propias
- 9.800
- líneas propias
- tablas migradas
- 11
- tablas migradas
- roles de servicio
- 27
- roles de servicio
- rutas web
- 36
- rutas web
Tecnologías
- Laravel 11
- MySQL
- Blade
- JavaScript
- Service Worker
- dompdf
- Apache
Lo más destacado
- Reemplazos trazables: al sustituir un voluntario, la asignación original no se borra, se marca el motivo y se encadena la sustitución
- Bitácora de auditoría con usuario, IP, agente de usuario y una descripción legible de cada acción
- Control de acceso con tres roles mediante middleware propio, aplicado ruta por ruta
- Generación de la orden del culto en PDF con la lista numerada según el orden elegido
- Aplicación web progresiva instalable, con funcionamiento sin conexión a internet
- Panel de estadísticas que calcula la tasa de rotación de voluntarios y los motivos de reemplazo más frecuentes
- Calendario pastoral mensual con detalle por día sin recargar la página
El diseño del que más me enorgullece
El problema central era responder una pregunta que la congregación se hacía siempre: por qué alguien no llegó, y quién lo cubrió.
Un reemplazo normal borra la asignación anterior y se pierde el rastro. En cambio, la asignación original se conserva marcada como reemplazada, con su motivo, y apunta mediante una autorreferencia a la asignación que la sustituyó. Eso construye una cadena de sustituciones que permite auditar el historial completo y, además, alimenta las estadísticas de rotación.
Control de acceso
Cada módulo se restringe por rol: el secretario general administra todo, el líder de comité opera los cultos y las asignaciones, y el pastor accede al calendario pastoral y a los mensajes.
El middleware acepta varios roles por ruta, y las restricciones se leen directamente del archivo de rutas, sin tener que saltar entre archivos para entender quién puede ver qué.
Integridad de los datos
- No se puede eliminar un voluntario que tiene asignaciones, ni un culto con asignaciones activas, ni un rol con usuarios.
- Cada operación verifica que la asignación pertenezca al culto que se está editando, para impedir que alguien manipule desde la URL una asignación de otro culto.
- Un usuario no puede desactivar ni eliminar su propia cuenta.
- Las búsquedas ignoran mayúsculas y tildes: escribir maria encuentra a María.
Auditoría
Todas las escrituras pasan por un servicio único que registra quién hizo qué, sobre qué tabla, desde qué IP y con qué navegador, en lenguaje natural.
La bitácora se puede filtrar por rango de fechas y solo es visible para los roles autorizados.