DunnQuick

DunnQuick – A Tkinter-Based Dunning Letter Generator

A Python application to streamline the creation of dunning letters (reminders for overdue payments). This tool combines Tkinter/CustomTkinter for a user-friendly GUI, ReportLab for generating PDF letters, and PIL for handling images such as logos and addresses.


Table of Contents

  1. Features
  2. Project Structure
  3. Requirements
  4. Installation
  5. Usage
  6. Templates & Assets
  7. Agents Dictionary
  8. Future Improvements
  9. License & Disclaimer

Features


Project Structure

DunnQuick/
├── main.py               # Entry point for the Tkinter application
├── ui.py                 # Contains the DunningLetterUI class (GUI elements)
├── letter_generator.py   # Contains the DunningLetterGenerator class (PDF generation logic)
├── agents.py             # Contains the collectors dictionary (agent details)
├── templates/            # Folder with TXT templates for Level 1, 2, and 3 letters
├── assets/
│    ├── logo.png         # Logo used in the PDF
│    └── address.png      # Address image used in the PDF
├── requirements.txt      # List of dependencies
└── README.md             # Project documentation

Key Modules


Requirements

Below is the requirements.txt content:

pandas
Pillow
reportlab
customtkinter

Note:


Installation

  1. Clone the Repository
    git clone https://github.com/AArCh95/DunnQuick.git
    cd DunnQuick
    
  2. (Optional) Create a Virtual Environment
    # On Windows:
    python -m venv venv
    .\venv\Scripts\activate
    
    # On macOS/Linux:
    python3 -m venv venv
    source venv/bin/activate
    
  3. Install Dependencies
    pip install -r requirements.txt
    

    This command installs pandas, Pillow, reportlab, and customtkinter.


Usage

  1. Run the Application
    python main.py
    
    • A DunnQuick window will appear, allowing you to enter Recipient Details, Account Information, Days to Pay, Letter Level, and Agent.
  2. Generate a Dunning Letter
    • Fill in the form (name, address, amounts, etc.).
    • Select an Agent from the dropdown and choose a Letter Level (Level 1, 2, or 3).
    • Click Generate Dunning Letter.
    • The PDF will be automatically saved to your Documents folder and opened.
  3. Clear Fields (Optional)
    • Use the Clear Fields button to reset all input fields.

Templates & Assets

Ensure these filenames match exactly what’s referenced in letter_generator.py.


Agents Dictionary

In agents.py, there’s a predefined dictionary called collectors. Each key is the agent’s name, and each value is a sub-dictionary containing:

{
  "email": "agent.email@placeholder.com",
  "phone": "+1 (555) 123-4567",
  "location": "Country or Region"
}

Feel free to add or remove agents as needed. The UI’s dropdown is populated by this dictionary.


Future Improvements


License & Disclaimer


Thank You for Visiting!

This project is a work in progress, and we’re continuously adding new features and improvements. If you encounter issues or have ideas for enhancements, feel free to open an issue or submit a pull request.

Happy Generating!
Enjoy creating your dunning letters with DunnQuick. If you find this tool helpful, please ⭐ the repo to show your support!