Este projeto é uma aplicação web para gerar certificados personalizados para alunos de clubes de programação. Os usuários podem preencher um formulário com os nomes dos alunos, o nome do líder do clube e o curso, e a aplicação gera certificados em PDF.
- Geração de certificados em PDF com nomes personalizados.
- Adição de um UUID único a cada certificado.
- Compactação dos certificados em um arquivo ZIP se houver mais de um certificado.
- Formulário web para entrada de dados.
- API para geração de certificados via requisição POST.
- Python 3.6 ou superior
- pip (gerenciador de pacotes do Python)
- Clone este repositório:
git clone https://github.com/seuusuario/code-clube-certificados.git cd code-clube-certificados - Crie um ambiente virtual:
python -m venv venv source venv/bin/activate # No Windows use `venv\Scripts\activate`
- Instale dependências
pip install -r requirements.txt
- Configure a estrutura de diretórios:
mkdir -p templates/pdf mkdir -p static/assets
- Adicione os arquivos PDF de templates em
templates/pdfe a fontearial.ttfemstatic/assets.
Para iniciar o servidor Flask, execute: ```bash python app.py
A aplicação estará disponível em http://127.0.0.1:5000.
-
Acesse http://127.0.0.1:5000/.
-
Preencha os campos do formulário:
- Alunos: Insira um nome por linha.
- Líder: Insira o nome do líder do clube.
- Curso: Selecione o curso.
- Clique em "Gerar certificados".
POST /api/v1/generate
Gera certificados com base nos dados fornecidos.
students(texto): Nomes dos alunos, um por linha.leaderName(texto): Nome do líder do clube.course(texto): Nome do curso (ex.: python1, scratch2).
curl -X POST http://127.0.0.1:5000/api/v1/generate \
-F "students=Aluno1\nAluno2\nAluno3" \
-F "leaderName=Líder do Clube" \
-F "course=python1" \
--output result.zipcode-clube-certificados/
├── app.py
├── .env
├── requirements.txt
├── README.md
├── run.sh
├── config.py
├── limpar_temp.py
├── certificados/
│ ├── __init__.py
│ ├── views.py
│ ├── utils.py
│ └── models.py
├── templates/
│ └── index.html
├── static/
│ ├── img/
│ │ └── logo.png
│ ├── css/
│ │ └── style.css
│ └── assets/
│ └── arial.ttf
└── temp/
- Flask: Framework web para Python.
- fillpdf: Biblioteca para preenchimento de formulários PDF.
- PyPDF2: Biblioteca para manipulação de arquivos PDF.
- reportlab: Biblioteca para geração de PDFs.
- Bootstrap: Framework CSS para design responsivo.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
- Fork este repositório.
- Crie uma branch para sua feature/bugfix (git checkout -b feature/nova-feature).
- Commit suas alterações (git commit -am 'Adiciona nova feature').
- Push para a branch (git push origin feature/nova-feature).
- Abra um Pull Request.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.