Features

  • Product Catalog: Pre-loaded items (fruits, dairy, meat, etc.) with automatic price fetching.
  • Dynamic Calculations: Automatically calculates sub-totals, discounts, and taxes as you type.
  • Live Preview: An interactive table (Treeview) that displays all added items and financial breakdowns.
  • Management Tools: Easily delete the last entry or clear the entire invoice.
  • Export Function: Save your final invoice as a structured .txt file to your local machine.
  • Mac Compatibility: Uses tkmacosx to ensure buttons look and behave correctly on macOS.

Prerequisites

Before running the application, ensure you have Python installed. You will also need to install the tkmacosx library:

pip install tkmacosx

Getting Started

  1. Clone the repository: ```bash git clone https://github.com/your-username/invoice-generator.git cd invoice-generator


2. **Add your assets:**
Make sure you have an image named `b.png` in the root directory for the application logo (or update the code to point to your image).
3. **Run the application:**
```bash
python main.py


How to Use

  1. Select Product: Use the dropdown menu to pick an item. The price will populate automatically.
  2. Adjust Quantity: Enter the amount you wish to purchase.
  3. Apply Discounts/Tax: Enter percentage values in the respective fields; the Grand Total will update instantly.
  4. Add to List: Click ADD ITEM to move the data into the table.
  5. Save: Once finished, click DOWNLOAD INVOICE to save a text copy of your receipt.

Project Structure

  • main.py: The core application logic and UI layout.
  • b.png: The store logo (placeholder).
  • README.md: Documentation.

Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Note: If you are using this on Windows/Linux and don't want to use tkmacosx, you can simply replace the Button imports with the standard tk.Button.


Built With

Share this project:

Updates