This Streamlit application generates synthetic garage invoice data for model training purposes. It allows users to specify the number of invoices to generate and select between different invoice templates. The generated invoices include both PDF and JSON formats, with structured data for header, items, and summary sections.
The generated JSON format adheres to the required annotation specifications for training data used in Donut 🍩: Document Understanding Transformer.
- Generate multiple invoices in PDF format.
- Corresponding JSON files for each invoice with structured data.
- Select between different invoice templates.
- Download all generated invoices and JSON files as a ZIP archive.
- Python 3.10 or higher
- Streamlit
- Required Python packages (listed in requirements.txt)
- Clone the repository:
git clone https://github.com/mattdepaolis/invoice-generator-app.git
cd invoice-generator-app
- Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
- Install the required packages:
pip install -r requirements.txt
- Run Streamlit app:
streamlit run app.py
- Open the Streamlit app in your web browser.
- Use the sidebar to select the invoice template and enter the number of invoices you want to generate.
- Click the "Generate Invoices" button to start the generation process.
- Once the invoices are generated, download the ZIP archive containing all the PDFs and JSON files.
invoice-generator-app/
│
├── app.py # Main application file
├── requirements.txt # Python dependencies
├── pdf_generation_module.py # Module for generating garage invoices
├── images/ # Image of a generated invoice
├── temp_invoices/ # Temporary directory for storing generated files
├── README.md # This README file
└── .gitignore # Git ignore file
- Fork the repository.
- Create a new branch (git checkout -b feature-branch).
- Make your changes.
- Commit your changes (git commit -am 'Add new feature').
- Push to the branch (git push origin feature-branch).
- Create a new Pull Request.
This project is licensed under the MIT License.