Analisando propostas

Automação Python para Geração de Certificados Ocupacionais Docx e Zip a partir de Microsoft Forms

Publicado em 28 de Janeiro de 2026 dias na TI e Programação

Sobre este projeto

Aberto

Estamos buscando um desenvolvedor Python para criar uma solução de automação robusta, capaz de gerar certificados ocupacionais em formatos docx e zip. O sistema deve operar em um PC local com Windows e integrar-se com dados provenientes do Microsoft Forms, preferencialmente via Power Automate Desktop, para garantir um fluxo de trabalho totalmente automatizado.

O objetivo principal é automatizar a criação de certificados a partir das respostas coletadas no Microsoft Forms (exportadas para Excel/SharePoint), mantendo 100% do layout original dos modelos de certificados existentes. A solução deve ser capaz de processar múltiplos colaboradores em lote.

Funcionalidades e Requisitos:

1.  Implementação em Python: O script deve ser desenvolvido em Python, utilizando a biblioteca python-docx para manipulação dos arquivos .DOCX.
2.  Integração de Dados: A automação deve consumir dados de entrada de um arquivo Excel gerado a partir das respostas do Microsoft Forms. A integração com Power Automate (especificamente Power Automate Desktop) é prioritária para o acionamento do processo.
3.  Geração de Certificados: Gerar certificados automaticamente para cada colaborador com base nos modelos fornecidos e nos dados de entrada.
4.  Estrutura de Saída: Para cada colaborador, o sistema deve criar uma pasta dedicada (em minúsculas, sem acentos, com underscores) e um arquivo .ZIP contendo todos os certificados gerados para aquele colaborador, além de um relatório de execução (em formato .json ou .txt).
5.  Registro de Logs: A solução deve registrar logs detalhados e gerar um relatório de execução para cada lote processado.

Entrada de Dados (via Forms/Excel):

*  Nome do colaborador
*  cpf (com ou sem pontuação, ou “sem cpf”)
*  certificados solicitados (delimitados por “;”), por exemplo: nr06;nr18;direção defensiva

regras técnicas obrigatórias para preservação de layout:

é proibido alterar qualquer um dos seguintes elementos nos modelos de certificados:

*  fonte, tamanho da fonte, margens, alinhamento.
*  Cabeçalho e rodapé.
*  Datas, validade, carga horária ou local (exceto as datas/períodos de realização que são campos de preenchimento).
*  Remover logos ou assinaturas.

Os certificados finais devem ser idênticos aos modelos originais, com a única exceção do preenchimento dos campos permitidos.

Substituições Permitidas (somente):

*  Nome do colaborador
*  cpf do colaborador (identificado no contexto “cpf:” ou “portador(a) do cpf:”)
*  data ou período de realização

implementação (obrigatório):

*  utilização da biblioteca python-docx para manipulação de documentos word.
*  A solução deve suportar texto dividido em múltiplos “runs” dentro do documento Word.
*  É Proibido o uso direto de `paragraph.text = ...` Para substituição de texto.
*  A varredura e substituição de texto devem ser realizadas no corpo do documento, em tabelas, cabeçalhos e rodapés.

Modelos de Certificados:

Os modelos a serem utilizados são: NR06, NR10, NR12, NR18, NR20, NR34, NR35, SEP, Direção Defensiva. Caso algum modelo não exista, os demais devem ser gerados e a ausência registrada no relatório de execução.

Saída Esperada:

*  Nomes dos arquivos: “nome do colaborador - curso.docx
*  Pastas: Uma pasta por colaborador (nome em minúscula, sem acento, com underscores)
*  Arquivos ZIP: Um arquivo .ZIP por colaborador, contendo os certificados gerados e o relatório de execução (_relatorio.json ou .txt).

Critério de Aceite:

*  A solução deve funcionar para múltiplos colaboradores (processamento em lote).
*  O processo deve ser totalmente automático a partir da entrada de dados do Forms.

Observação: Já existe um GPT que gera certificados; o foco deste projeto é a integração com a tabela do Forms para automatizar o processo.

Categoria TI e Programação
Subcategoria Aplicativos desktop
Qual é o alcance do projeto? Bug ou alteração pequena

Prazo de Entrega: Não estabelecido

Habilidades necessárias