|
|
import os |
|
|
import subprocess |
|
|
|
|
|
|
|
|
required_packages = ["faker", "streamlit", "python-docx"] |
|
|
for package in required_packages: |
|
|
try: |
|
|
__import__(package) |
|
|
except ImportError: |
|
|
subprocess.run(["pip", "install", package]) |
|
|
|
|
|
|
|
|
from faker import Faker |
|
|
import streamlit as st |
|
|
from docx import Document |
|
|
|
|
|
|
|
|
fake = Faker() |
|
|
|
|
|
document_types = [ |
|
|
"TL (Trade License)", "MOA (Memorandum of Association)", "Certificate of Incumbency", |
|
|
"Registration Certificate", "Certificate of Formation", "Certificate of Incorporation", |
|
|
"Certificate of Incorporation/TL (DED)", "VAT Registration", "Indemnity", |
|
|
"Address Proof - Shared Desk", "TL (LLC & DIFC)", "Utility Bill", "Ejari", |
|
|
"Shareholding Doc", "POA (Power of Attorney)", "Good Standing Certificate", |
|
|
"Incorporation Certificate", "Name Change Certificate", "MOA/TL/Extract/Incumbency", |
|
|
"Passport", "EID (Emirates ID)", "Visa", "TL/MOA & Certificate of Incumbency/Registration Certificate", |
|
|
"MOA/BR/POA", "BR/POA", "Mandate/BR" |
|
|
] |
|
|
|
|
|
def generate_document(doc_type): |
|
|
doc = Document() |
|
|
doc.add_heading(f'{doc_type}', level=1) |
|
|
doc.add_paragraph(f'Generated on: {fake.date_time_this_year()}') |
|
|
|
|
|
if "Trade License" in doc_type: |
|
|
doc.add_paragraph(f'Company Name: {fake.company()}') |
|
|
doc.add_paragraph(f'Registration Number: {fake.uuid4()}') |
|
|
doc.add_paragraph(f'Issued Date: {fake.date()}') |
|
|
doc.add_paragraph(f'Expiry Date: {fake.date()}') |
|
|
elif "MOA" in doc_type: |
|
|
doc.add_paragraph(f'Company: {fake.company()}') |
|
|
doc.add_paragraph(f'Founders: {fake.name()}, {fake.name()}') |
|
|
doc.add_paragraph(f'Capital: {fake.random_int(10000, 500000)} AED') |
|
|
doc.add_paragraph(f'Date of Establishment: {fake.date()}') |
|
|
elif "Certificate" in doc_type: |
|
|
doc.add_paragraph(f'Business Name: {fake.company()}') |
|
|
doc.add_paragraph(f'Incorporation Date: {fake.date()}') |
|
|
doc.add_paragraph(f'Registration ID: {fake.uuid4()}') |
|
|
elif "VAT Registration" in doc_type: |
|
|
doc.add_paragraph(f'Company Name: {fake.company()}') |
|
|
doc.add_paragraph(f'VAT Number: {fake.random_int(100000, 999999)}') |
|
|
doc.add_paragraph(f'Registration Date: {fake.date()}') |
|
|
elif "Indemnity" in doc_type: |
|
|
doc.add_paragraph(f'Indemnified Party: {fake.name()}') |
|
|
doc.add_paragraph(f'Indemnifier: {fake.name()}') |
|
|
doc.add_paragraph(f'Agreement Date: {fake.date()}') |
|
|
elif "Address Proof" in doc_type or "Utility Bill" in doc_type or "Ejari" in doc_type: |
|
|
doc.add_paragraph(f'Name: {fake.name()}') |
|
|
doc.add_paragraph(f'Address: {fake.address()}') |
|
|
doc.add_paragraph(f'Document Date: {fake.date()}') |
|
|
elif "Shareholding Doc" in doc_type: |
|
|
doc.add_paragraph(f'Shareholder: {fake.name()}') |
|
|
doc.add_paragraph(f'Company: {fake.company()}') |
|
|
doc.add_paragraph(f'Share Percentage: {fake.random_int(1, 100)}%') |
|
|
elif "POA" in doc_type: |
|
|
doc.add_paragraph(f'Grantor: {fake.name()}') |
|
|
doc.add_paragraph(f'Grantee: {fake.name()}') |
|
|
doc.add_paragraph(f'Authority Granted: Full Business Authority') |
|
|
elif "Passport" in doc_type or "EID" in doc_type or "Visa" in doc_type: |
|
|
doc.add_paragraph(f'Name: {fake.name()}') |
|
|
doc.add_paragraph(f'Document Number: {fake.uuid4()}') |
|
|
doc.add_paragraph(f'Issue Date: {fake.date()}') |
|
|
doc.add_paragraph(f'Expiry Date: {fake.date()}') |
|
|
else: |
|
|
doc.add_paragraph(f'Generated Placeholder for {doc_type}') |
|
|
|
|
|
file_name = f"{doc_type.replace(' ', '_')}.docx" |
|
|
doc.save(file_name) |
|
|
return file_name |
|
|
|
|
|
|
|
|
st.title("📄 Document Generator") |
|
|
st.write("Generate Business and Legal Documents with Synthetic Data") |
|
|
|
|
|
doc_choice = st.selectbox("Select Document Type:", document_types) |
|
|
|
|
|
if st.button("Generate Document"): |
|
|
file_path = generate_document(doc_choice) |
|
|
with open(file_path, "rb") as file: |
|
|
st.download_button(label="Download Document", data=file, file_name=file_path, mime="application/vnd.openxmlformats-officedocument.wordprocessingml.document") |
|
|
os.remove(file_path) |
|
|
|
|
|
|