{"id":27926025,"url":"https://github.com/jfaccioli/documint","last_synced_at":"2025-10-12T14:37:29.227Z","repository":{"id":291512315,"uuid":"977841894","full_name":"jfaccioli/documint","owner":"jfaccioli","description":"DocuMint is a lightweight Flask web app that automates the bulk generation of personalised Word documents by merging a .docx template with Excel data. Simply upload a Word file with placeholders and an Excel sheet—DocuMint will create and zip a separate document for each row automatically.","archived":false,"fork":false,"pushed_at":"2025-05-12T07:26:45.000Z","size":199,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-12T14:37:28.919Z","etag":null,"topics":["admin-tools","automation-tool","bulk-document-generation","contract-automation","contract-generator","document-automation","docx-automation","excel-to-docx","flask","mail-merge","openpyxl","pandas","python","python-docx","small-business-tools","template-engine","webapp","word-documents","word-merge"],"latest_commit_sha":null,"homepage":"https://documint.onrender.com/ ","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jfaccioli.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-05T03:56:40.000Z","updated_at":"2025-07-11T17:13:07.000Z","dependencies_parsed_at":"2025-05-05T05:32:36.633Z","dependency_job_id":"e257be53-412a-4cbd-8e59-3ea58dc61b08","html_url":"https://github.com/jfaccioli/documint","commit_stats":null,"previous_names":["jfaccioli/documint"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jfaccioli/documint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfaccioli%2Fdocumint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfaccioli%2Fdocumint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfaccioli%2Fdocumint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfaccioli%2Fdocumint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfaccioli","download_url":"https://codeload.github.com/jfaccioli/documint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfaccioli%2Fdocumint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011604,"owners_count":26084964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin-tools","automation-tool","bulk-document-generation","contract-automation","contract-generator","document-automation","docx-automation","excel-to-docx","flask","mail-merge","openpyxl","pandas","python","python-docx","small-business-tools","template-engine","webapp","word-documents","word-merge"],"created_at":"2025-05-07T00:51:01.179Z","updated_at":"2025-10-12T14:37:29.210Z","avatar_url":"https://github.com/jfaccioli.png","language":"Python","readme":"# 📄 DocuMint – Bulk Word Document Generator from Excel Data\n\n**DocuMint** is a web-based document generator that turns Excel spreadsheets into individually customised Word documents using a single template. Perfect for contracts, documents, tenancy forms, and any admin task requiring personalised files — in bulk.\n\n[🟢 Live Demo – Try DocuMint Now](https://documint.onrender.com/)\n\n---\n\n### 🔥 Why DocuMint?\n\nMicrosoft Word's Mail Merge is useful — but limited. It only creates one long .docx file with multiple pages for different recipients. You still have to split the document manually.\n\nDocuMint does it better:\n\nCreates separate Word files, one for each row of your Excel spreadsheet\n\nAutomatically names each file\n\nPackages them all in a ZIP, ready to download\n\n---\n\n\n## 🚀 Features\n\n- 📝 Upload a Word `.docx` template with placeholders or merge fields\n- 📊 Upload an Excel file with matching column headers\n- 🔁 Choose a column to name the generated documents\n- 📂 Merge fields into both **paragraphs** and **tables**\n- 🗂️ Download a ZIP file with all generated documents\n- 🧹 Auto-cleans temporary files after download\n\n---\n\n## ▶️ How to Use\n\n### 1. Prepare Your Excel File\nEach row should represent one document. The column headers will become your placeholders.\n\n![Excel Screenshot](static/Excel.png)\n\n\n### 2. Prepare Your Word Template\nUse one of the two supported methods:\n\n✅ Option 1: Custom Placeholders\nType placeholders like «First_Name» directly in Word\nReplace spaces with underscores to match Excel column names\n\n✅ Option 2: Insert Merge Field (Advanced)\nOpen Word \u003e Mailings \u003e Select Recipients \u003e Use Existing List…\nLoad your Excel\nUse Insert Merge Field for placeholders (e.g. First_Name)\nSave the .docx file\n\n![Word Screenshot 1](static/Word1.png) \n![Word Screenshot 2](static/Word2.png)\n\n---\n\n## 📁 Project Structure\n\ndocumint/\n├── main.py # Flask app\n├── requirements.txt # Python dependencies\n├── .gitignore # Git ignored files/folders\n├── README.md # Project description\n├── templates/ # HTML templates\n│ ├── index.html\n│ └── choose_column.html\n├── static/ # Static assets (e.g. logo)\n│ └── generated-icon.png\n├── uploads/ # Temporary folder for uploaded files\n├── output/ # Temporary folder for processed files\n\n---\n\n## ⚙️ Requirements\n\n- Python 3.8+\n- `pip install -r requirements.txt` (includes Flask, pandas, python-docx, openpyxl)\n\n---\n\n## 💼 Example Use Cases\nContracts\nLetters of offer or employment\nBulk tenancy agreements\nCertificates or registration confirmations\nSchool or healthcare document mail-outs\n\n---\n\n## 🔐 Security Notes\nUploaded and generated files are stored only temporarily.\nAll files are deleted immediately after ZIP download.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfaccioli%2Fdocumint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfaccioli%2Fdocumint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfaccioli%2Fdocumint/lists"}