📖 README — Escala da Paróquia

Documentação completa de funcionamento da aplicação

Aplicação web local para criação, organização, geração, impressão e exportação de escalas de pastorais e ministérios paroquiais.

A aplicação permite cadastrar:

  • Nome da pastoral ou ministério.
  • Mês e ano da escala.
  • Quantidade de pessoas participantes.
  • Celebrações realizadas em cada dia.
  • Horários das celebrações.
  • Quantidade de pessoas necessárias por celebração.
  • Cargo ou função de cada vaga dentro de uma celebração.
  • Nome das pessoas escaladas.
  • Quantidade mínima sugerida de participações por pessoa.
  • Dias em que cada pessoa está indisponível.
  • Escala gerada automaticamente, já indicando o cargo de cada pessoa escalada.
  • Alteração manual da escala gerada, com validação automática de consistência.
  • Impressão ou salvamento em PDF do calendário, da tabela, das estatísticas ou de tudo.
  • Exportação e importação das configurações em arquivos JSON.
  • Download exclusivo da escala já gerada, para revisão posterior.
  • Reaproveitamento dos dados para um novo mês e ano.
  • Remoção individual de pessoas sem precisar refazer o calendário.

1. Características principais

1.1. Aplicação local

A aplicação funciona diretamente no navegador, sem necessidade de servidor ou banco de dados.

Os dados ficam disponíveis apenas no navegador em uso e podem ser salvos manualmente em um arquivo JSON para backup ou reutilização.

1.2. Configuração mensal

A escala é organizada por:

  • Mês.
  • Ano.
  • Pastoral ou ministério.
  • Quantidade total de pessoas.

O calendário mensal é construído de acordo com o mês e o ano selecionados.

1.3. Cadastro de celebrações

Para cada dia do mês, é possível configurar:

  • Quantidade de celebrações.
  • Horário de cada celebração.
  • Quantidade de pessoas necessárias em cada celebração.
  • Cargo ou função de cada vaga da celebração.

A aplicação aceita até 5 celebrações por dia e até 10 pessoas por celebração, conforme os limites definidos no código.

1.4. Cadastro de pessoas

Para cada participante, podem ser informados:

  • Nome.
  • Sugestão mínima de participações no mês.
  • Dias indisponíveis.

Cada pessoa possui um mini calendário individual. Para marcar um dia como indisponível, basta clicar sobre o número correspondente.

1.5. Remoção individual de pessoas

Cada pessoa cadastrada possui um botão Remover.

Ao remover uma pessoa:

  • A aplicação solicita confirmação.
  • A pessoa é retirada da lista.
  • As demais pessoas são reindexadas.
  • O calendário de celebrações permanece preservado.
  • Não é necessário configurar novamente todos os dias do mês.
  • A quantidade total de pessoas é atualizada automaticamente.

A aplicação impede a remoção quando existe apenas uma pessoa cadastrada.

↑ Voltar ao topo

2. Fluxo de utilização

Etapa 1 — Informações gerais

Na primeira seção, informe:

  1. Nome da pastoral ou ministério.
  2. Mês da escala.
  3. Ano da escala.
  4. Quantidade total de pessoas.

A quantidade de pessoas deve ser, obrigatoriamente, igual ou superior a 1.

Caso o usuário tente gerar o calendário com:

  • Campo vazio.
  • Valor inválido.
  • Valor igual a zero.
  • Valor negativo.

A aplicação interrompe o processo e apresenta uma mensagem de aviso.

Depois de preencher os dados, clique em:

Gerar Calendário do Mês

A aplicação somente cria as seções seguintes quando a quantidade de pessoas é válida.

Etapa 2 — Celebrações e necessidade de pessoas

Depois de gerar o calendário, a aplicação apresenta todos os dias do mês.

Para cada dia, é possível escolher a quantidade de celebrações.

Por exemplo:

  • Segunda-feira às 19:00, com 2 pessoas.
  • Sábado às 18:30, com 3 pessoas.
  • Domingo às 07:30, com 3 pessoas.
  • Domingo às 10:30, com 3 pessoas.
  • Domingo às 18:30, com 3 pessoas.

Ao selecionar a quantidade de celebrações de um dia, aparecem os campos correspondentes para informar:

  • Horário.
  • Quantidade de pessoas.
  • Cargo de cada vaga, quando a quantidade de pessoas for maior que zero.

A aplicação também mostra um resumo contendo:

  • Dias com celebrações.
  • Total de celebrações no mês.
  • Total de vagas necessárias.

Etapa 3 — Replicação de uma semana

A aplicação pode utilizar uma semana como modelo para preencher os demais dias da semana.

O recurso:

Replicar Primeira Semana para o Restante do Mês

usa como referência a primeira semana completa do mês, de domingo a sábado.

Por exemplo, se a semana de referência estiver configurada assim:

Dia da semana Horário Pessoas
Segunda-feira19:002
Terça-feira19:002
Quarta-feira19:002
Quinta-feira19:002
Sexta-feira19:002
Sábado18:303
Domingo07:30, 10:30 e 18:303 em cada

A aplicação poderá utilizar esse padrão para as demais semanas do mês, incluindo os cargos definidos em cada vaga.

A replicação considera o dia da semana, e não apenas o número do dia.

Etapa 4 — Cadastro das pessoas

A seção de pessoas apresenta um card individual para cada participante.

Cada card possui:

  • Número de identificação.
  • Campo de nome.
  • Campo de sugestão mínima de missas.
  • Contador de dias indisponíveis.
  • Mini calendário mensal.
  • Botão para remover a pessoa.

Sugestão mínima de missas

A sugestão mínima serve como referência para o algoritmo de distribuição.

Ela não representa necessariamente um limite absoluto. Caso existam mais vagas ou poucas pessoas disponíveis, a aplicação poderá ajustar a distribuição e apresentar avisos.

Dias indisponíveis

Os dias marcados em vermelho não serão utilizados normalmente para escalar aquela pessoa.

O sistema considera os dias indisponíveis ao gerar cada celebração e também durante a alteração manual da escala.

Etapa 5 — Geração da escala

Depois de configurar as celebrações e cadastrar as pessoas, clique em:

Gerar Escala

A aplicação:

  1. Percorre as celebrações em ordem cronológica.
  2. Identifica as pessoas disponíveis no dia.
  3. Evita escalar a mesma pessoa duas vezes no mesmo dia sempre que possível.
  4. Prioriza pessoas que ainda não atingiram sua sugestão mínima.
  5. Considera a quantidade de participações já atribuídas.
  6. Distribui as pessoas entre as celebrações.
  7. Vincula cada pessoa selecionada ao cargo correspondente à vaga que ela ocupou.
  8. Registra avisos quando alguma regra não pode ser atendida completamente.

A escala gerada é exibida em três formatos:

  • Calendário mensal.
  • Tabela detalhada.
  • Estatísticas por pessoa.

Após a geração, ficam disponíveis o botão de Alteração da Escala Manual e o botão de download exclusivo da escala gerada, detalhados nas seções seguintes.

↑ Voltar ao topo

3. Cargos e funções por vaga

3.1. O que é o cargo de uma vaga

Cada vaga dentro de uma celebração pode receber um cargo ou função, informado livremente pelo usuário em um campo de texto.

Exemplos de cargos comuns:

  • Leitor.
  • Coroinha.
  • Ministro da Eucaristia.
  • Comentarista.
  • Responsável pelo som.
  • Ofertório.

O preenchimento do cargo é opcional. Se o campo for deixado em branco, a aplicação exibe apenas o nome da pessoa escalada, sem indicar função específica.

3.2. Como configurar o cargo de cada vaga

Ao definir a quantidade de pessoas necessárias em uma celebração:

  1. A aplicação exibe automaticamente um campo de texto para cada vaga.
  2. Cada campo é identificado como Vaga 1, Vaga 2, e assim por diante.
  3. O usuário pode digitar o cargo correspondente a cada vaga.

Se a quantidade de pessoas de uma celebração for alterada, os campos de cargo são reorganizados automaticamente:

  • Se a quantidade aumentar, novos campos de cargo em branco são adicionados.
  • Se a quantidade diminuir, os campos de cargo excedentes são removidos.
  • Os cargos já preenchidos nas vagas existentes são preservados sempre que possível.

3.3. Replicação de cargos entre semanas

Ao utilizar o recurso de replicação da semana de referência, os cargos configurados em cada vaga também são copiados para os demais dias correspondentes ao mesmo dia da semana.

Não é necessário preencher os cargos novamente após a replicação, exceto se o usuário desejar alterar algum cargo específico em um dia isolado.

3.4. Cargo na escala gerada

Ao gerar a escala, cada pessoa selecionada para uma vaga recebe automaticamente o cargo configurado para aquela vaga específica.

O cargo é exibido:

  • No calendário da escala, no formato Nome — Cargo.
  • Na tabela detalhada, no formato Nome (Cargo).
  • No arquivo JSON exportado, dentro da lista de pessoas escaladas de cada celebração.

Caso o cargo não tenha sido informado para determinada vaga, apenas o nome da pessoa é exibido, sem prejuízo ao funcionamento da escala.

3.5. Reaproveitamento de cargos entre meses

Ao utilizar a opção de reaproveitamento de configuração para um novo mês, os cargos configurados em cada vaga são mantidos, pois fazem parte do padrão de celebrações por dia da semana.

Somente os dias indisponíveis e a escala anteriormente gerada são removidos nesse processo, conforme detalhado na seção de importação.

↑ Voltar ao topo

4. Critérios de distribuição da escala

O algoritmo utiliza os seguintes critérios:

4.1. Disponibilidade

Uma pessoa não deve ser escalada em dias marcados como indisponíveis.

4.2. Evitar repetição no mesmo dia

A aplicação tenta não escalar a mesma pessoa em mais de uma celebração no mesmo dia.

Se não houver pessoas suficientes disponíveis, a aplicação poderá repetir uma pessoa no mesmo dia e exibirá um aviso.

4.3. Atendimento da sugestão mínima

Pessoas que ainda estão abaixo da quantidade mínima sugerida recebem prioridade na distribuição.

4.4. Equilíbrio de participações

Entre pessoas com a mesma prioridade, a aplicação prefere quem possui menos participações já atribuídas no mês.

4.5. Critério de desempate

Em caso de empate completo entre os critérios anteriores, a aplicação ordena as pessoas em ordem alfabética para manter um resultado previsível.

4.6. Atribuição de cargo por ordem de seleção

Cada celebração pode ter cargos definidos individualmente por vaga. Ao distribuir as pessoas, a aplicação atribui o cargo da vaga na mesma ordem em que a pessoa foi selecionada para preenchê-la.

Isso significa que a primeira pessoa escolhida para uma celebração recebe o cargo da Vaga 1, a segunda pessoa recebe o cargo da Vaga 2, e assim sucessivamente.

O algoritmo não avalia se uma pessoa possui aptidão específica para um determinado cargo. A atribuição segue estritamente a ordem de seleção. Ajustes finos de compatibilidade entre pessoa e cargo devem ser feitos manualmente através do recurso de Alteração da Escala Manual, descrito na próxima seção.
↑ Voltar ao topo

5. Alteração manual da escala

5.1. Para que serve

Depois que a escala é gerada automaticamente, é possível realizar ajustes manuais diretamente no calendário, sem a necessidade de gerar a escala novamente do zero.

Esse recurso é útil quando, por exemplo:

  • Uma pessoa avisou que não poderá comparecer após a escala já ter sido gerada.
  • A coordenação da pastoral deseja trocar manualmente quem ocupa determinado cargo em uma celebração específica.
  • É necessário corrigir uma atribuição pontual sem afetar o restante da escala.

5.2. Como ativar o modo de edição

Após gerar a escala, um botão é exibido:

✏ Alteração da Escala Manual

Ao clicar nesse botão:

  1. A aplicação entra no modo de edição.
  2. Um aviso informativo aparece no topo da seção de escala.
  3. Cada pessoa escalada, dentro do calendário, passa a ser exibida como um campo de seleção (nome) e um campo de texto (cargo), em vez de apenas texto fixo.

Para concluir a edição, basta clicar novamente no mesmo botão, que passa a exibir:

✅ Concluir Edição Manual

Ao concluir, a aplicação retorna à visualização normal, somente leitura.

5.3. Como alterar o nome de uma pessoa escalada

No modo de edição, cada vaga preenchida exibe uma lista suspensa com todas as pessoas cadastradas na pastoral.

Ao selecionar uma nova pessoa para aquela vaga:

  • A aplicação verifica se a pessoa selecionada realmente está cadastrada.
  • A aplicação verifica se a pessoa está marcada como indisponível naquele dia específico.
  • A aplicação verifica se a pessoa já está escalada em outra vaga da mesma celebração.

Se qualquer uma dessas verificações falhar, a alteração não é aplicada e uma mensagem de erro específica é exibida abaixo da vaga correspondente.

Também é possível selecionar a opção "— selecione —", que deixa a vaga marcada como não preenchida, sem atribuir nenhuma pessoa a ela.

5.4. Como alterar o cargo de uma vaga já escalada

Ao lado do campo de seleção de nome, um campo de texto permite digitar ou corrigir o cargo daquela vaga específica.

A alteração do cargo é aplicada automaticamente enquanto o usuário digita, sem necessidade de confirmação adicional.

5.5. Validações de consistência aplicadas

Durante a edição manual, a aplicação impede:

  • A seleção de uma pessoa que não existe na lista de pessoas cadastradas.
  • A atribuição de uma pessoa a um dia em que ela está marcada como indisponível.
  • A duplicação da mesma pessoa em duas vagas diferentes da mesma celebração.

Essas validações ocorrem no momento da alteração, antes de a mudança ser efetivamente aplicada à escala.

5.6. Reflexo automático nas demais visualizações

Toda alteração realizada no modo de edição manual é imediatamente refletida:

  • No próprio calendário da escala.
  • Na tabela detalhada, na seção de visualização em tabela.
  • Nas estatísticas por pessoa, recalculando a quantidade de participações de cada uma.

Não é necessário gerar a escala novamente para que essas alterações sejam consideradas nas demais seções.

5.7. Vagas não preenchidas

Quando uma vaga é deixada intencionalmente sem pessoa atribuída, ela passa a ser exibida como "Vaga não preenchida" tanto no calendário quanto na tabela.

Vagas não preenchidas não são contabilizadas nas estatísticas de participação de nenhuma pessoa, mas continuam sendo contabilizadas no total de vagas necessárias da celebração.

5.8. Encerramento do modo de edição

O modo de edição manual é encerrado automaticamente quando:

  • O usuário clica novamente no botão para concluir a edição.
  • Uma nova escala é gerada.
  • Uma nova configuração é importada.
  • Os dados da aplicação são limpos.
↑ Voltar ao topo

6. Avisos da geração

Após gerar a escala, a aplicação pode exibir avisos relacionados a:

  • Falta de pessoas disponíveis em determinado dia.
  • Necessidade de repetir uma pessoa no mesmo dia.
  • Vagas que não puderam ser completamente preenchidas.

Os avisos aparecem destacados no topo da seção de escala gerada, antes do calendário.

Os avisos gerados automaticamente refletem a situação da escala no momento da geração. Após realizar alterações manuais, é recomendável revisar visualmente o calendário e a tabela, pois os avisos automáticos não são recalculados durante a edição manual.
↑ Voltar ao topo

7. Visualização da escala

A escala gerada é exibida de três formas complementares:

7.1. Calendário

Exibe todos os dias do mês, destacando finais de semana e mostrando, dentro de cada dia, as celebrações configuradas com horário e as pessoas escaladas, incluindo o cargo quando informado.

7.2. Tabela

Lista todas as celebrações em ordem cronológica, indicando data, dia da semana, horário, pastoral e as pessoas escaladas com seus respectivos cargos.

7.3. Estatísticas por pessoa

Mostra, para cada pessoa cadastrada, quantas celebrações ela foi efetivamente escalada, comparando com a sugestão mínima informada.

Também exibe totais gerais: quantidade de celebrações, vagas necessárias e vagas preenchidas no mês.

↑ Voltar ao topo

8. Impressão e salvamento em PDF

A aplicação permite imprimir ou salvar em PDF, de forma seletiva:

  • Somente o calendário.
  • Somente a tabela.
  • Somente as estatísticas por pessoa.
  • Tudo (calendário, tabela e estatísticas juntos).

A impressão utiliza o recurso nativo do navegador.

Ao selecionar uma opção de PDF:

  1. A aplicação prepara somente o conteúdo escolhido.
  2. Abre a janela de impressão do navegador.
  3. Selecione a opção Salvar como PDF.
  4. Escolha o local e o nome do arquivo.
  5. Confirme o salvamento.

A aplicação não depende de biblioteca externa para criar o PDF.

Alterações realizadas no modo de Alteração da Escala Manual são refletidas na impressão e no PDF normalmente, desde que o modo de edição seja concluído (ou mesmo durante a edição, já que a impressão sempre utiliza os dados mais recentes da escala).
↑ Voltar ao topo

9. Importação e exportação de arquivos JSON

9.1. Exportar configuração completa

O botão:

Baixar Configuração (.json)

salva um arquivo com:

  • Dados gerais.
  • Mês e ano.
  • Celebrações, incluindo os cargos configurados em cada vaga.
  • Pessoas.
  • Indisponibilidades.
  • Escala gerada, caso já tenha sido criada, incluindo o cargo de cada pessoa escalada e eventuais alterações manuais já realizadas.

O nome do arquivo é gerado automaticamente com base na pastoral, mês e ano.

Exemplo:

escala-pastoral-da-liturgia-outubro-2026.json

9.2. Importar configuração

Para importar um arquivo:

  1. Clique em Importar Configuração.
  2. Selecione um arquivo .json.
  3. Aguarde a abertura do modal de importação.
  4. Escolha uma das opções disponíveis.
↑ Voltar ao topo

10. Download da escala já gerada

10.1. Diferença em relação à configuração completa

Além do botão de exportação completa (seção 9), a aplicação disponibiliza um botão específico para baixar apenas o resultado da escala já gerada:

⬇ Baixar Escala Gerada (.json)

Esse botão aparece na seção de escala gerada, logo após a geração ou após o carregamento de uma escala previamente salva.

Tecnicamente, o arquivo baixado por esse botão possui a mesma estrutura completa do arquivo de configuração (incluindo celebrações, pessoas e a escala gerada). A diferença está apenas no nome do arquivo, que recebe o prefixo escala-gerada-, facilitando a identificação de que esse arquivo já contém uma escala pronta para revisão.

Exemplo de nome de arquivo gerado por este botão:

escala-gerada-pastoral-da-liturgia-outubro-2026.json

10.2. Quando utilizar este recurso

Esse botão é recomendado quando o usuário deseja:

  • Guardar um registro específico da escala já finalizada, separado dos arquivos de configuração intermediários.
  • Compartilhar a escala gerada com outra pessoa da coordenação, para revisão ou validação.
  • Retomar a edição da escala em outro momento ou em outro computador, utilizando o recurso de Alteração da Escala Manual.

10.3. O que acontece ao importar este arquivo

Ao importar um arquivo baixado por este botão:

  • Se a opção Carregar Tudo for escolhida, a escala gerada é restaurada integralmente, junto com o calendário, a tabela, as estatísticas e o botão de alteração manual.
  • Se a opção Reaproveitar para um Novo Mês for escolhida, a escala gerada anteriormente não é carregada, pois é específica do mês antigo. Apenas o padrão de celebrações, os cargos e as pessoas cadastradas são reaproveitados.
↑ Voltar ao topo

11. Opções disponíveis durante a importação

11.1. Carregar tudo

Essa opção importa o arquivo exatamente como foi salvo.

São carregados:

  • Pastoral.
  • Mês.
  • Ano.
  • Celebrações, incluindo os cargos de cada vaga.
  • Pessoas.
  • Dias indisponíveis.
  • Escala já gerada, se existir, incluindo os cargos atribuídos e eventuais alterações manuais anteriores.

Essa opção é indicada quando o usuário deseja continuar trabalhando na mesma escala, revisar uma escala já gerada através da Alteração da Escala Manual, ou apenas abrir um arquivo salvo anteriormente.

O modal de importação exibe, antes da confirmação, um resumo do arquivo selecionado, incluindo se ele já contém uma escala gerada, indicado como "Escala já gerada neste arquivo: Sim" ou "Não".

11.2. Reaproveitar para um novo mês

Essa opção permite utilizar uma configuração existente como modelo para outro mês.

O usuário escolhe:

  • Novo mês.
  • Novo ano.

A aplicação mantém:

  • Nome da pastoral.
  • Pessoas cadastradas.
  • Sugestão mínima de participações.
  • Padrão de celebrações por dia da semana, incluindo horários, quantidade de vagas e os cargos configurados.

A aplicação limpa:

  • Dias indisponíveis.
  • Escala gerada anteriormente.

Isso ocorre porque as indisponibilidades e a escala são específicas do mês antigo. Os cargos, por fazerem parte do padrão de celebrações, são preservados normalmente. Como a escala antiga não é carregada neste fluxo, não é necessário revisar ou apagar manualmente atribuições do mês anterior antes de gerar a nova escala.

Após o reaproveitamento, o usuário deve:

  1. Conferir o novo calendário.
  2. Marcar novamente os dias indisponíveis.
  3. Conferir as celebrações e os cargos de cada vaga.
  4. Clicar em Gerar Escala.
↑ Voltar ao topo

12. Estrutura do arquivo JSON

A estrutura atual utiliza o seguinte formato:

{
  "appName": "Escala da Paróquia",
  "fileVersion": "1.0.0",
  "generatedAt": "2026-08-23T02:00:00.000Z",
  "developer": "Paulo César Marino",
  "pastoralName": "Pastoral da Liturgia",
  "month": 9,
  "monthName": "Outubro",
  "year": 2026,
  "totalPeople": 3,
  "days": {
    "1": {
      "massCount": 1,
      "masses": [
        {
          "time": "19:00",
          "people": 2,
          "roles": ["Leitor", "Ministro da Eucaristia"]
        }
      ]
    }
  },
  "people": [
    {
      "name": "Maria da Silva",
      "suggestedMasses": 4,
      "unavailableDays": [3, 10, 17]
    }
  ],
  "generatedSchedule": []
}

12.1. Campos gerais

CampoTipoDescrição
appNameTextoNome da aplicação
fileVersionTextoVersão do formato do arquivo (ex: "1.0.0")
generatedAtTextoData e hora da exportação no formato ISO 8601
developerTextoNome do desenvolvedor
pastoralNameTextoNome da pastoral ou ministério
monthNúmeroMês no formato JavaScript (0-11)
monthNameTextoNome do mês por extenso
yearNúmeroAno da escala
totalPeopleNúmeroQuantidade total de pessoas
daysObjetoCelebrações configuradas por dia do mês
peopleListaPessoas cadastradas
generatedScheduleListaEscala gerada, incluindo eventuais alterações manuais

12.2. Numeração do mês

O campo month utiliza a numeração padrão do JavaScript:

NúmeroMês
0Janeiro
1Fevereiro
2Março
3Abril
4Maio
5Junho
6Julho
7Agosto
8Setembro
9Outubro
10Novembro
11Dezembro

Portanto, outubro é representado por:

"month": 9

12.3. Estrutura de days

Cada chave representa o número de um dia do mês.

Exemplo:

"days": {
  "15": {
    "massCount": 2,
    "masses": [
      {
        "time": "09:00",
        "people": 3,
        "roles": ["Leitor", "Coroinha", "Ministro da Eucaristia"]
      },
      {
        "time": "19:00",
        "people": 2,
        "roles": ["Leitor", ""]
      }
    ]
  }
}

Nesse exemplo, o dia 15 possui duas celebrações:

  • Uma às 09:00 com 3 pessoas, cada uma com um cargo definido.
  • Uma às 19:00 com 2 pessoas, sendo que a segunda vaga não possui cargo definido.

12.4. Estrutura de roles

O campo roles é uma lista de textos, na qual cada posição corresponde a uma vaga da celebração, na mesma ordem em que as vagas foram configuradas.

Regras de preenchimento:

  • O tamanho da lista deve corresponder à quantidade de pessoas (people) da celebração.
  • Uma posição pode conter um texto vazio, indicando que aquela vaga não possui cargo definido.
  • O campo é opcional. Caso não exista, a aplicação assume uma lista vazia.

12.5. Estrutura de people

Cada pessoa possui:

{
  "name": "João da Silva",
  "suggestedMasses": 3,
  "unavailableDays": [5, 12, 19]
}

Onde:

  • name: nome da pessoa.
  • suggestedMasses: quantidade mínima sugerida de participações.
  • unavailableDays: lista dos dias em que a pessoa não pode participar.

12.6. Estrutura de generatedSchedule

Quando a escala ainda não foi gerada:

"generatedSchedule": []

Depois de gerar a escala, o campo passa a conter as celebrações, as pessoas selecionadas e o cargo atribuído a cada uma.

Exemplo:

"generatedSchedule": [
  {
    "day": 15,
    "date": "15/10/2026",
    "weekday": "Quinta-feira",
    "time": "19:00",
    "requiredPeople": 2,
    "people": [
      {
        "personIndex": 0,
        "name": "Maria da Silva",
        "role": "Leitor"
      },
      {
        "personIndex": 1,
        "name": "João Santos",
        "role": ""
      }
    ]
  }
]

O campo role, dentro de cada pessoa escalada, indica o cargo atribuído a ela naquela celebração específica. Quando vazio, significa que a vaga correspondente não possuía cargo definido.

Quando uma vaga é marcada como não preenchida através da Alteração da Escala Manual, o campo personIndex passa a valer null e o campo name fica como texto vazio (""), mantendo o registro da vaga dentro da celebração, porém sem pessoa atribuída.

↑ Voltar ao topo

13. Compatibilidade com arquivos antigos

A aplicação possui compatibilidade básica com arquivos que utilizam o campo antigo dailyNeeds.

Exemplo de formato antigo:

{
  "month": 5,
  "year": 2026,
  "dailyNeeds": {
    "1": 3,
    "7": 3,
    "14": 3
  }
}

Quando a aplicação encontra dailyNeeds e não encontra days, ela converte cada necessidade diária em uma celebração única sem horário definido e sem cargos configurados.

Formato convertido internamente:

{
  "1": {
    "massCount": 1,
    "masses": [
      {
        "time": "",
        "people": 3,
        "roles": []
      }
    ]
  }
}
Arquivos exportados por versões anteriores da aplicação, que ainda não possuíam o campo roles ou o suporte à alteração manual, continuam sendo importados normalmente. A aplicação assume valores padrão seguros (lista de cargos vazia, nenhuma alteração manual pendente) para esses casos, sem gerar erros.
↑ Voltar ao topo

14. Armazenamento local

A aplicação utiliza o localStorage do navegador para guardar uma cópia da configuração exportada.

A chave utilizada é:

parish_schedule_config

Esse armazenamento permite que a aplicação recupere a última configuração salva no navegador, incluindo os cargos configurados em cada vaga e a escala gerada, caso tenha sido baixada anteriormente através do botão de configuração completa.

Observações

  • O armazenamento é específico do navegador.
  • Se os dados do navegador forem apagados, a configuração local poderá ser perdida.
  • Recomenda-se exportar regularmente um arquivo JSON como backup.
  • O arquivo JSON é a forma mais segura de transferir uma configuração para outro computador.
  • O botão de download exclusivo da escala gerada (seção 10) não atualiza o armazenamento local; apenas o botão de configuração completa faz isso.
↑ Voltar ao topo

15. Limpeza dos dados

O botão:

Limpar Tudo

remove a configuração atual da aplicação.

A ação:

  • Solicita confirmação.
  • Remove os dados da tela.
  • Oculta o calendário.
  • Oculta a lista de pessoas.
  • Oculta a seção de escala.
  • Remove a escala gerada.
  • Encerra o modo de alteração manual, caso esteja ativo.
  • Oculta o botão de download da escala gerada.
  • Remove os dados armazenados no localStorage, incluindo os cargos configurados.
Atenção: essa ação não pode ser desfeita pela aplicação. Por isso, é recomendável exportar a configuração antes de limpar os dados.
↑ Voltar ao topo

16. Recomendações para impressão

Antes de imprimir ou salvar em PDF:

  1. Gere a escala.
  2. Realize as alterações manuais necessárias, se houver.
  3. Conclua o modo de edição manual, clicando em "Concluir Edição Manual".
  4. Escolha o conteúdo desejado.
  5. Na janela de impressão, confirme:
    • Orientação paisagem para o calendário.
    • Margens padrão ou reduzidas.
    • Escala automática.
    • Impressão de gráficos e cores, quando disponível.
  6. Para salvar em PDF, selecione Salvar como PDF.

O calendário foi configurado para ocupar uma única página sempre que possível. Porém, a quantidade de informações influencia o resultado final. Dias com muitas celebrações, muitos cargos preenchidos ou nomes muito longos podem exigir redução da escala de impressão pelo navegador.

↑ Voltar ao topo

17. Limitações conhecidas

A aplicação possui algumas limitações naturais:

  • O PDF é gerado por meio da janela de impressão do navegador.
  • A escala depende da quantidade de pessoas cadastradas e disponíveis.
  • A aplicação não possui autenticação de usuários.
  • Os dados não são enviados para um servidor.
  • Não há sincronização automática entre computadores.
  • O algoritmo utiliza distribuição heurística, não otimização matemática completa.
  • Nomes muito longos podem ser reduzidos visualmente no calendário impresso.
  • A atribuição de cargos, na geração automática, segue a ordem de seleção das pessoas, sem considerar habilidades específicas de cada participante para um determinado cargo.
  • A aplicação não impede que o mesmo texto de cargo seja repetido em vagas diferentes de uma mesma celebração.
  • Os avisos automáticos de geração não são recalculados após alterações realizadas no modo de Alteração da Escala Manual; recomenda-se revisão visual após qualquer ajuste manual.
  • A alteração manual permite deixar vagas não preenchidas, mas não impede que o usuário deixe intencionalmente uma celebração inteira sem ninguém escalado.
↑ Voltar ao topo

18. Boas práticas de utilização

Recomenda-se:

  • Cadastrar todas as pessoas antes de gerar a escala.
  • Informar corretamente os dias indisponíveis.
  • Utilizar sugestões mínimas realistas.
  • Preencher os cargos das vagas de forma clara e padronizada, evitando abreviações que dificultem a leitura.
  • Conferir os avisos após gerar a escala.
  • Verificar se todas as celebrações possuem horário.
  • Conferir se o número de pessoas disponíveis é suficiente.
  • Utilizar o recurso de Alteração da Escala Manual para pequenos ajustes pontuais, em vez de gerar a escala inteira novamente.
  • Revisar manualmente se os cargos atribuídos fazem sentido para cada pessoa escalada, ajustando a escala com a coordenação da pastoral quando necessário.
  • Concluir o modo de edição manual antes de imprimir, salvar em PDF ou baixar o arquivo JSON.
  • Exportar a configuração em JSON após concluir o preenchimento.
  • Baixar a escala gerada separadamente quando desejar guardar um registro específico daquela versão já finalizada.
  • Fazer um novo backup depois de gerar ou alterar manualmente a escala.
  • Revisar a escala com a coordenação da pastoral antes de divulgá-la.
  • Utilizar a opção de reaproveitamento quando o padrão mensal, incluindo os cargos, for semelhante ao mês anterior.
↑ Voltar ao topo

19. Exemplo de fluxo completo

Um fluxo típico para uma nova escala é:

  1. Abrir a aplicação.
  2. Informar o nome da pastoral.
  3. Selecionar mês e ano.
  4. Informar uma quantidade igual ou superior a 1 pessoa.
  5. Clicar em Gerar Calendário do Mês.
  6. Configurar as celebrações.
  7. Preencher o cargo de cada vaga, quando aplicável.
  8. Utilizar a replicação semanal, se necessário.
  9. Conferir o total de vagas.
  10. Preencher o nome das pessoas.
  11. Informar a sugestão mínima de participações.
  12. Marcar os dias indisponíveis.
  13. Remover pessoas cadastradas incorretamente, se necessário.
  14. Clicar em Gerar Escala.
  15. Conferir os avisos.
  16. Conferir o calendário, verificando os cargos atribuídos.
  17. Utilizar a Alteração da Escala Manual para pequenos ajustes, se necessário.
  18. Concluir o modo de edição manual.
  19. Conferir a tabela.
  20. Conferir as estatísticas.
  21. Exportar o arquivo JSON completo ou baixar apenas a escala gerada.
  22. Imprimir ou salvar em PDF.
  23. Divulgar a escala após a conferência final.
↑ Voltar ao topo

20. Licença e autoria

Aplicação desenvolvida por:

Paulo César Marino

Uso destinado à organização de escalas de pastorais, ministérios e serviços paroquiais.

A aplicação foi criada para funcionar de maneira simples, local e acessível, auxiliando comunidades paroquiais na organização das celebrações e na distribuição das responsabilidades entre seus participantes, incluindo a definição de cargos e funções específicas para cada vaga e a possibilidade de ajustes manuais pontuais na escala já gerada.

↑ Voltar ao topo