Об этом проекте

Worship Presenter Web — это самодельный хаб, предназначенный для превращения порядка богослужения в готовые слайды. Он был создан для общины адвентистов седьмого дня, но адаптируется для любой церкви с похожим порядком службы, поскольку шаблоны слайдов — это данные, а не код. Основной рабочий процесс принимает порядок богослужения — вставленный в веб-форму или отправленный через защищённый секретом вебхук от чат-бота — и создаёт три результата из единого наполненного плана слайдов: загружаемую PowerPoint-колоду для офлайн-использования, полноэкранный слайд-шоу в браузере и режим докладчика с двумя экранами с отдельным окном проектора. Это означает, что один и тот же макет управляет всеми четырьмя выводами (PowerPoint, веб-слайд-шоу, проектор и живой предпросмотр) без отдельного кода вёрстки для каждого формата. Ключевые возможности: - Приём порядка богослужения через веб-форму или вебхук, при этом нераспознанные строки отображаются, а не молча отбрасываются. - Разрешение гимнов из локального корпуса из 695 гимнов, поиск по номеру и разворачивание в слайды с названием и текстом, с повтором припева после каждого куплета. - 28 редактируемых шаблонов слайдов, хранящихся в реестре SQLite, с редактором холста для перемещения, изменения размера и стилизации элементов, а также возможность добавлять собственные текстовые поля и фигуры. - Режим докладчика с текущим и следующим слайдом, миниатюрной лентой кадров, списком слайдов, сеткой для перехода к любому слайду, порядком богослужения и настоящим вторым окном, которое можно перетащить на проектор. - Функция пустого экрана для затемнения проектора и восстановления без потери позиции. - Выбираемые переходы (нет, обрезка, затухание, растворение, сдвиг), применяемые одинаково к колоде и браузеру. - Поиск по Писанию, выводящий отрывки из KJV на проектор во время службы. - Объявления с загрузкой изображений или URL из разрешённого списка. - Учётные записи и роли с отдельными администраторскими и операторскими аккаунтами для каждого человека, ограниченным по скорости входом и отзываемыми сессиями. Приложение поставляется с двумя стандартными корпусами: корпус сборника гимнов (695 гимнов из гимнала адвентистов седьмого дня) и корпус Библии KJV (66 книг, 1189 глав, 31 102 стиха). Оба включены в репозиторий, поэтому клон разрешает номера гимнов и ссылки на Писание без сетевого подключения при запуске. Корпуса сверяются с сохранёнными файлами при каждой загрузке. Технические требования: Go 1.24 и Node.js 22 или новее. Хранение использует SQLite без отдельного сервера базы данных. Стек включает Go API, React SPA, построенный на Vite, и воркер PPTX. Быстрый старт включает клонирование репозитория, запуск npm install, npm run setup (который генерирует .env с новыми секретами, создаёт базу данных, заполняет реестр слайдов и выводит пароль администратора) и npm run dev для запуска Go API на порту 3000 и React SPA на порту 5173. Проект включает каталог constitution с руководствами по обработке приватных данных, документацией по развёртыванию и журналом решений. Тест завершается ошибкой, если данные общины попадают в отслеживаемый файл, что защищает от случайной публикации чувствительной информации. Репозиторий начинается с единственного начального коммита с синтетическим примером общины, поскольку исходный частный репозиторий содержал реальные имена членов, фотографии узнаваемых людей, включая несовершеннолетних, скриншоты приватных переписок и действующий платёжный код. Код лицензирован под MIT, но название Worship Presenter Web, аббревиатура WDI и иконка или словесный знак не покрываются лицензией MIT. Сторонний контент, включая корпус гимнов, покрыт отдельно в ATTRIBUTIONS.md. Проект поощряет адаптацию для других традиций и гимналов, поддерживая добавление дополнительных корпусов сборников песен рядом с поставляемым.