À propos du projet

Worship Presenter Web est un hub auto-hébergé conçu pour transformer une feuille de culte en diapositives finalisées. Il a été créé pour une congrégation adventiste du septième jour, mais il est adaptable à toute église suivant un ordre de culte similaire, car les modèles de diapositives sont des données plutôt que du code. Le flux de travail principal prend une feuille de culte — collée dans un formulaire web ou envoyée via un webhook protégé par secret depuis un chatbot — et produit trois sorties à partir d'un seul plan de diapositives hydraté : un deck PowerPoint téléchargeable pour une utilisation hors ligne, un diaporama navigateur plein écran, et un mode présentateur double écran avec une fenêtre projecteur séparée. Cela signifie que la même mise en page pilote les quatre sorties (PowerPoint, diaporama web, projecteur et aperçu en direct) sans code de mise en page spécifique à chaque format. Les fonctionnalités clés incluent : - Saisie de la feuille de culte via formulaire web ou webhook, avec les lignes non reconnues signalées plutôt que silencieusement ignorées. - Résolution des hymnes à partir d'un corpus local de 695 hymnes, recherchés par numéro et développés en diapositives de titre et de paroles avec refrains répétés après chaque couplet. - 28 modèles de diapositives modifiables stockés dans un registre SQLite avec un éditeur de canevas pour déplacer, redimensionner et styliser les éléments, plus la possibilité d'ajouter des zones de texte et des formes personnalisées. - Mode présentateur avec diapositive actuelle et suivante, une pellicule de vignettes, une liste de diapositives, une grille de saut vers n'importe quelle diapositive, la feuille de route, et une véritable seconde fenêtre pouvant être glissée sur le projecteur. - Fonction d'écran noir pour masquer le projecteur et restaurer sans perdre la position. - Transitions sélectionnables (aucune, coupe, fondu, dissolution, poussée) appliquées de manière identique au deck et au navigateur. - Recherche biblique affichant les passages KJV sur le projecteur pendant le service. - Dépliants d'annonces avec téléversement d'images ou URL sur liste blanche. - Comptes et rôles avec comptes administrateur et opérateur par personne, connexion limitée en débit et sessions révocables. L'application est fournie avec deux corpus par défaut : un corpus de recueil de chants (695 hymnes de l'Hymnaire adventiste du septième jour) et un corpus biblique KJV (66 livres, 1 189 chapitres, 31 102 versets). Les deux sont inclus dans le dépôt, de sorte qu'un clone résout les numéros d'hymnes et les références bibliques sans connexion réseau au démarrage. Les corpus sont réconciliés à partir de leurs fichiers engagés à chaque démarrage. Les exigences techniques sont Go 1.24 et Node.js 22 ou plus récent. Le stockage utilise SQLite sans serveur de base de données distinct. La pile comprend une API Go, une SPA React construite avec Vite, et un worker PPTX. Le démarrage rapide consiste à cloner le dépôt, exécuter npm install, npm run setup (qui génère .env avec de nouveaux secrets, crée la base de données, initialise le registre de diapositives et imprime le mot de passe administrateur), puis npm run dev pour démarrer l'API Go sur le port 3000 et la SPA React sur le port 5173. Le projet comprend un répertoire constitution avec des lignes directrices pour le traitement des données privées, une documentation de déploiement et des registres de décisions. Un test échoue si les données de la congrégation atteignent un fichier suivi, protégeant ainsi contre la publication accidentelle d'informations sensibles. Le dépôt commence par un unique commit initial avec une congrégation exemple synthétique, car le dépôt privé d'origine contenait de véritables noms de membres, des photographies de personnes identifiables y compris des mineurs, des captures d'écran de messages privés et un code de paiement en direct. Le code est sous licence MIT, mais le nom Worship Presenter Web, l'acronyme WDI et l'icône ou le logotype ne sont pas couverts par la licence MIT. Le contenu tiers, y compris le corpus d'hymnes, est couvert séparément dans ATTRIBUTIONS.md. Le projet encourage l'adaptation à d'autres traditions et recueils de chants, avec prise en charge de l'ajout de corpus de recueils supplémentaires à côté de celui fourni.