Skip to content

Commit 7b0fa79

Browse files
committed
Readme em português
1 parent a54c9c3 commit 7b0fa79

File tree

4 files changed

+206
-1
lines changed

4 files changed

+206
-1
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
![Docker](https://img.shields.io/badge/Docker-Enabled-2496ED?style=for-the-badge&logo=docker&logoColor=white)
66
![License](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg?style=for-the-badge)
77

8+
<div align="center">
9+
<a href="README_pt.md"><strong>Leia em Português</strong></a>
10+
</div>
11+
812
> **Automate the creation of Word, PowerPoint, and PDF documents from Excel data.**
913
1014
---
@@ -112,7 +116,7 @@ DocGenius/
112116
## 📘 Templating Syntax
113117

114118
DocGenius uses the pipe character (`|`) to apply formatting filters to variables.
115-
*For a complete list of filters, refer to the "How to Use" section in the application.*
119+
*For a complete list of filters, refer to the "How to Use" section in the application ([Documentation in Github Pages](https://rubensbraz.github.io/DocGenius/help.html)).*
116120

117121
### 1. Text Formatting
118122
```jinja2

README_pt.md

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
# DocGenius | Motor de Geração de Documentos
2+
3+
![Build Status](https://img.shields.io/badge/build-passing-brightgreen?style=for-the-badge&logo=github)
4+
![Python](https://img.shields.io/badge/Python-3.11-3776AB?style=for-the-badge&logo=python&logoColor=white)
5+
![Docker](https://img.shields.io/badge/Docker-Enabled-2496ED?style=for-the-badge&logo=docker&logoColor=white)
6+
![License](https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg?style=for-the-badge)
7+
8+
<div align="center">
9+
<a href="README.md"><strong>Read in English</strong></a>
10+
</div>
11+
12+
> **Automatize a criação de documentos Word, PowerPoint e PDF a partir de dados do Excel.**
13+
14+
---
15+
16+
## 📖 Visão Geral
17+
18+
**DocGenius** é uma ferramenta projetada para automatizar fluxos de trabalho de criação de documentos. Ele recebe dados estruturados de arquivos Excel e preenche templates do Microsoft Office (`.docx`, `.pptx`) usando um sistema de templates customizado baseado em Jinja2.
19+
20+
Desenvolvido com **FastAPI** e **Docker**, ele fornece um painel web para gerenciar trabalhos em lote e inclui integração com LibreOffice (headless) para converter documentos gerados em formato PDF. É adequado para gerar contratos, relatórios, certificados e apresentações em escala.
21+
22+
### 🌟 Principais Recursos
23+
24+
* **Processamento em Lote:** Processa eficientemente múltiplas linhas de dados de arquivos Excel.
25+
* **Suporte a Formatos:** Compatível com templates padrão de Word (`.docx`) e PowerPoint (`.pptx`).
26+
* **Lógica de Templates:** Inclui filtros para manipulação de texto, aritmética de datas, formatação de moedas e lógica condicional diretamente dentro do template.
27+
* **Gestão de Assets:** Suporta inserção dinâmica e redimensionamento de imagens (ex: fotos, assinaturas) a partir de um arquivo ZIP.
28+
* **Conversão PDF:** LibreOffice integrado para conversão confiável de arquivos Office para PDF.
29+
* **Painel Web:** Uma interface de usuário limpa para enviar arquivos, monitorar o progresso e baixar resultados.
30+
31+
---
32+
33+
## 🖼️ Prévia do Sistema
34+
35+
### Interface do Painel
36+
![Dashboard Interface](docs/images/dashboard_preview.png)
37+
*Interface Drag & Drop com logs de processo em tempo real.*
38+
39+
### Documentação & Ajuda
40+
![Documentation Interface](docs/images/documentation_preview.png)
41+
*Guia integrado para sintaxe de templates.*
42+
43+
---
44+
45+
## 🔄 Como Funciona
46+
47+
```mermaid
48+
graph LR
49+
A[Dados Excel] --> B(Motor DocGenius)
50+
C[Templates Word/PPT] --> B
51+
D[ZIP de Assets] --> B
52+
B --> E{Núcleo de Processamento}
53+
E --> F[Lógica Jinja2]
54+
E --> G[Redimensionamento de Imagens]
55+
E --> H[Conversão PDF]
56+
F --> I[Documentos Finais]
57+
G --> I
58+
H --> I
59+
I --> J[ZIP para Download]
60+
```
61+
62+
---
63+
64+
## 🚀 Início Rápido
65+
66+
### Pré-requisitos
67+
68+
* **Docker Desktop** (versão 20.10+)
69+
* **Docker Compose**
70+
71+
### Instalação
72+
73+
1. **Clonar o Repositório**
74+
```bash
75+
git clone [https://github.com/rubensbraz/DocGenius.git](https://github.com/rubensbraz/DocGenius.git)
76+
cd DocGenius
77+
```
78+
79+
2. **Iniciar o Motor**
80+
```bash
81+
docker-compose up --build
82+
```
83+
84+
3. **Acessar a Aplicação**
85+
Abra seu navegador e navegue para:
86+
`http://localhost:8000`
87+
88+
---
89+
90+
## 🛠️ Estrutura do Projeto
91+
92+
O projeto separa a lógica de processamento (backend) da interface do usuário (frontend).
93+
94+
```text
95+
DocGenius/
96+
├── app/
97+
│ ├── core/
98+
│ │ ├── engine.py # Processamento de Documentos (Docx/Pptx/Pdf)
99+
│ │ ├── formatter.py # Despachante de Filtros
100+
│ │ ├── validator.py # Verificador de Templates
101+
│ │ └── strategies/ # Módulos de Lógica de Formatação
102+
│ │ ├── base.py
103+
│ │ ├── date_std.py # Formatação de Datas
104+
│ │ ├── logic_std.py # Lógica Condicional
105+
│ │ └── ...
106+
│ ├── main.py # Aplicação FastAPI
107+
│ └── utils.py # Utilitários
108+
├── static/ # Assets do Frontend (HTML/CSS/JS)
109+
├── data/ # Volume Docker para Dados
110+
├── Dockerfile # Definição da Imagem
111+
└── docker-compose.yml # Orquestração de Containers
112+
```
113+
114+
---
115+
116+
## 📘 Sintaxe de Templates
117+
118+
DocGenius usa o caractere pipe (`|`) para aplicar filtros de formatação às variáveis.
119+
*Para a lista completa de filtros, consulte a seção "How to Use" na aplicação ([Documentação no Github Pages](https://rubensbraz.github.io/DocGenius/help.html)).*
120+
121+
### 1. Formatação de Texto
122+
```jinja2
123+
{{ client_name | format_string('upper') }} -> "ACME CORP"
124+
{{ client_id | format_string('prefix', 'ID: ') }} -> "ID: 12345"
125+
```
126+
127+
### 2. Números & Moeda
128+
```jinja2
129+
{{ contract_value | format_currency('USD') }} -> "$ 1,500.00"
130+
{{ tax_rate | format_number('percent', '2') }} -> "12.50%"
131+
{{ total | format_number('spell_out', 'en') }} -> "one thousand five hundred"
132+
```
133+
134+
### 3. Operações com Datas
135+
```jinja2
136+
{{ start_date | format_date('long') }} -> "January 12, 2024"
137+
{{ start_date | format_date('add_days', '30') }} -> "2024-02-11"
138+
```
139+
140+
### 4. Lógica Condicional
141+
Mapeie códigos de status ou valores diretamente no documento:
142+
```jinja2
143+
{{ status_code | format_logic(
144+
'10=Approved',
145+
'20=Pending',
146+
'default', 'Unknown'
147+
) }}
148+
```
149+
150+
### 5. Mascaramento de Dados
151+
```jinja2
152+
{{ email | format_mask('email') }} -> "j***@domain.com"
153+
```
154+
155+
### 6. Imagens
156+
```jinja2
157+
{{ photo_filename | format_image('3', '4') }} -> (Redimensiona imagem para 3x4cm)
158+
```
159+
160+
---
161+
162+
## 🧪 Testes
163+
164+
Um script utilitário está incluído para gerar dados de exemplo para fins de teste.
165+
166+
1. **Gerar Dados de Exemplo (Dentro do Container):**
167+
```bash
168+
docker exec -it docgenius python /data/mock_data/generate_seeds.py
169+
```
170+
*Isso cria `mock_data.xlsx`, `assets.zip`, e templates de exemplo na pasta de dados.*
171+
172+
2. **Executar Teste:**
173+
Faça o upload dos arquivos gerados no painel para verificar a saída.
174+
175+
---
176+
177+
## ⚖️ Licença (CC BY-NC 4.0)
178+
179+
Este projeto está licenciado sob a **Licença Creative Commons Atribuição-NãoComercial 4.0 Internacional**.
180+
181+
[![CC BY-NC 4.0](https://licensebuttons.net/l/by-nc/4.0/88x31.png)](http://creativecommons.org/licenses/by-nc/4.0/)
182+
183+
### Você tem o direito de:
184+
* **Compartilhar:** Copiar e redistribuir o material em qualquer suporte ou formato.
185+
* **Adaptar:** Remixar, transformar, e criar a partir do material.
186+
187+
### De acordo com os seguintes termos:
188+
1. **Atribuição:** Você deve dar o crédito apropriado a **Rubens Braz**, fornecer um link para a licença e indicar se mudanças foram feitas.
189+
2. **NãoComercial:** Você **NÃO** pode usar o material para fins comerciais (vender o software, usá-lo para serviços pagos ou integrá-lo em produtos comerciais).
190+
191+
*Para ver uma cópia desta licença, visite [http://creativecommons.org/licenses/by-nc/4.0/](http://creativecommons.org/licenses/by-nc/4.0/)*
192+
193+
---
194+
195+
## 👨‍💻 Autor
196+
197+
**Rubens Braz**
198+
199+
---
200+
201+
> *"Automação não é sobre preguiça; é sobre precisão."*

docs/images/dashboard_preview.png

16.5 KB
Loading
-147 KB
Loading

0 commit comments

Comments
 (0)