Repositório com o emissor e validador de certificados do Hackerspace Blumenau.
Para gerar um certificado você precisa de um email no GMail (suportado no momento) e o pdflatex.
Existe um template incluso nesse repositório, mas você pode criar o seu (mais detalhes abaixo).
git clone <este repositório>
Para evitar conflitos com pacotes do sistema, inicie um ambiente virtual.
pip install -r requirements.txt
Gere uma chave (guarde-a) que será usada para assinar e recuperar os dados dos certificados.
python gerar_chave.py --senha <uma senha> --caminho ./certificados.key
Guarde essa chave! :)
Antes de emitir um certificado você precisa exportar três variáveis de ambiente para configuração.
export CERTIFICADO_CHAVE_ASSINATURA=certificados.key # caminho da chave gerada acima
export [email protected] # Email usado para autenticação SMTP e envio
export CERTIFICADO_EMAIL_SENHA="uma senha" # senha do email
Note que a autenticação pode falhar porque o GMail pode bloquear essas conexões. Para mais informações, acesse essa página do Google.
Agora, podemos emitir os certificados.
python emitir.py --evento "Nome do meu evento" --data "01/01/2019" --duracao "3 horas" --csv nomes_emails.csv --tex template.tex
Esse processo ainda está manual. Baixe o PDF do certificado em um diretório qualquer e execute
python validar.py --pdf caminho/para/pdf/certificado.pdf
Note que a a variável de ambiente CERTIFICADO_CHAVE_ASSINATURA
deve estar com a chave usada para assinar o certificado.
Agora, você precisa comparar as informações do terminal com os dados no certificado.
Por padrão, esse repositório disponibiliza um template.tex
, mas você pode usar o seu.
Você pode usar qualquer template que compile no seu LaTeX local, apenas deve deixar os seguintes placeholders no seu arquivo .tex
para que sejam substituídos durante a compilação/emissão.
Placeholders:
NOME-PARTICIPANTE
: será substituído pelo nome do participanteNOME-EVENTO
: será substituído pelo nome do eventoDATA-EVENTO
: será substituído pela data do eventoDURACAO-EVENTO
: será substituído pela duração do eventoDATA-EMISSAO
: será substituído pela data de emissão do certificadoHASH-VALIDACAO
: será substituído pelo hash de assinatura do certificado