Sobre el proyecto

Worship Presenter Web es un centro autohospedado diseñado para convertir una orden de servicio en diapositivas terminadas. Fue creado para una congregación adventista del séptimo día, pero es adaptable a cualquier iglesia con un orden de servicio similar, ya que las plantillas de diapositivas son datos, no código. El flujo de trabajo principal toma una orden de servicio—pegada en un formulario web o enviada mediante un webhook protegido por secreto desde un bot de chat—y produce tres salidas a partir de un único plan de diapositivas hidratado: una presentación PowerPoint descargable para uso sin conexión, una presentación en navegador a pantalla completa y un modo presentador de doble pantalla con una ventana separada para proyector. Esto significa que el mismo diseño impulsa las cuatro salidas (PowerPoint, presentación web, proyector y vista previa en vivo) sin código de diseño específico por formato. Las características clave incluyen: - Entrada de órdenes de servicio mediante formulario web o webhook, con líneas no reconocidas mostradas en lugar de descartadas silenciosamente. - Resolución de himnos desde un corpus local de 695 himnos, buscados por número y expandidos en diapositivas de título y letra con estribillos repetidos después de cada estrofa. - 28 plantillas de diapositivas editables almacenadas en un registro SQLite con un editor de lienzo para mover, redimensionar y estilizar elementos, además de la capacidad de agregar cuadros de texto y formas personalizados. - Modo presentador con diapositiva actual y siguiente, tira de miniaturas, lista de diapositivas, cuadrícula para saltar a cualquier diapositiva, hoja de ejecución y una segunda ventana real que puede arrastrarse al proyector. - Función de pantalla en blanco para apagar el proyector y restaurar sin perder la posición. - Transiciones seleccionables (ninguna, corte, fundido, disolución, empuje) aplicadas de manera idéntica a la presentación y al navegador. - Búsqueda de escrituras que muestra pasajes KJV en el proyector durante el servicio. - Volantes de anuncios con carga de imágenes o URL en lista permitida. - Cuentas y roles con cuentas de administrador y operador por persona, inicio de sesión con límite de velocidad y sesiones revocables. La aplicación incluye dos corpus predeterminados: un corpus de himnario (695 himnos del Himnario Adventista del Séptimo Día) y un corpus bíblico KJV (66 libros, 1,189 capítulos, 31,102 versículos). Ambos están incluidos en el repositorio para que una clonación resuelva números de himnos y referencias bíblicas sin conexión de red al iniciar. Los corpus se reconcilian desde sus archivos incluidos en cada inicio. Los requisitos técnicos son Go 1.24 y Node.js 22 o más reciente. El almacenamiento usa SQLite sin servidor de base de datos separado. La pila incluye una API Go, una SPA React construida con Vite y un trabajador PPTX. El inicio rápido implica clonar el repositorio, ejecutar npm install, npm run setup (que genera .env con secretos nuevos, crea la base de datos, siembra el registro de diapositivas e imprime la contraseña de administrador) y npm run dev para iniciar la API Go en el puerto 3000 y la SPA React en el puerto 5173. El proyecto incluye un directorio de constitución con pautas para el manejo de datos privados, documentación de implementación y registros de decisiones. Una prueba falla si los datos de la congregación llegan a un archivo rastreado, protegiendo contra la publicación accidental de información sensible. El repositorio comienza con un único commit inicial con una congregación de ejemplo sintética, ya que el repositorio privado original contenía nombres reales de miembros, fotografías de personas identificables incluyendo menores, capturas de pantalla de mensajes privados y un código de pago en vivo. El código está licenciado bajo MIT, pero el nombre Worship Presenter Web, el acrónimo WDI y el icono o marca de palabra no están cubiertos por la licencia MIT. El contenido de terceros, incluido el corpus de himnos, se cubre por separado en ATTRIBUTIONS.md. El proyecto fomenta la adaptación para otras tradiciones e himnarios, con soporte para agregar corpus de himnarios adicionales junto al incluido.