Sobre o projeto

O Worship Presenter Web é um hub auto-hospedado projetado para transformar um roteiro de culto em slides prontos. Foi criado para uma congregação adventista do sétimo dia, mas é adaptável a qualquer igreja com ordem de culto semelhante, pois os modelos de slides são dados, não código. O fluxo de trabalho principal recebe um roteiro—colado em um formulário web ou enviado via webhook protegido por segredo a partir de um chatbot—e produz três saídas a partir de um único plano de slides hidratado: um pacote PowerPoint para download (uso offline), uma apresentação em tela cheia no navegador e um modo apresentador de tela dupla com uma janela separada para projetor. Isso significa que o mesmo layout alimenta todas as quatro saídas (PowerPoint, slideshow web, projetor e pré-visualização ao vivo) sem código de layout específico por formato. Principais recursos incluem: - Entrada de roteiro via formulário web ou webhook, com linhas não reconhecidas exibidas em vez de descartadas silenciosamente. - Resolução de hinos a partir de um corpus local de 695 hinos, consultados por número e expandidos em slides de título e letra, com refrões repetidos após cada estrofe. - 28 modelos de slides editáveis armazenados em um registro SQLite, com editor de canvas para mover, redimensionar e estilizar elementos, além de adicionar caixas de texto e formas personalizadas. - Modo apresentador com slide atual e próximo, tira de miniaturas, lista de slides, grade para pular para qualquer slide, folha de execução e uma segunda janela real que pode ser arrastada para o projetor. - Função de tela em branco para apagar o projetor e restaurar sem perder a posição. - Transições selecionáveis (nenhuma, corte, fade, dissolução, empurrar) aplicadas de forma idêntica ao pacote e ao navegador. - Consulta de escrituras que exibe passagens KJV no projetor durante o culto. - Folhetos de anúncios com upload de imagens ou URLs permitidas. - Contas e papéis com contas de administrador e operador por pessoa, login com limite de taxa e sessões revogáveis. O aplicativo inclui dois corpora padrão: um corpus de hinário (695 hinos do Hinário Adventista do Sétimo Dia) e um corpus bíblico KJV (66 livros, 1.189 capítulos, 31.102 versículos). Ambos estão comprometidos no repositório, para que um clone resolva números de hinos e referências bíblicas sem conexão de rede na inicialização. Os corpora são reconciliados a partir de seus arquivos comprometidos a cada inicialização. Requisitos técnicos: Go 1.24 e Node.js 22 ou mais recente. Armazenamento usa SQLite, sem servidor de banco separado. A pilha inclui uma API Go, um SPA React construído com Vite e um worker PPTX. O início rápido envolve clonar o repositório, executar npm install, npm run setup (que gera .env com segredos novos, cria o banco, semeia o registro de slides e imprime a senha do administrador) e npm run dev para iniciar a API Go na porta 3000 e o SPA React na porta 5173. O projeto inclui um diretório de constituição com diretrizes para tratamento de dados privados, documentação de implantação e registros de decisão. Um teste falha se dados da congregação chegarem a um arquivo rastreado, protegendo contra publicação acidental de informações sensíveis. O repositório começa com um único commit inicial com uma congregação sintética de exemplo, pois o repositório privado original continha nomes reais de membros, fotografias de pessoas identificáveis (incluindo menores), capturas de tela de mensagens privadas e um código de pagamento ativo. O código é licenciado sob MIT, mas o nome Worship Presenter Web, a sigla WDI e o ícone ou logotipo não são cobertos pela licença MIT. Conteúdo de terceiros, incluindo o corpus de hinos, é coberto separadamente em ATTRIBUTIONS.md. O projeto incentiva adaptação para outras tradições e hinários, com suporte para adicionar corpora de hinários adicionais junto com o incluído.