Телеграм Бот на Python
# Telegram-Бот для Автоматизації Документообігу (Рахунки та Акти)
## Огляд Проєкту
Цей Telegram-бот розроблено для **швидкого формування рахунків (Рахунків) та актів виконаних робіт (Актів) у форматах XLSX та PDF** на основі даних, введених користувачем через діалог.
Проєкт демонструє навички розробки функціональних **Telegram-ботів** з використанням асинхронного фреймворка `aiogram` та прикладну роботу з файлами **MS Excel** для генерації офіційних фінансових документів.
---
## Ключові Можливості
* **Діалогова Взаємодія (FSM):** Покроковий збір даних (назва фірми, номер/дата рахунку, перелік послуг, кількість, ціна) з використанням **FSM (Finite State Machine)** в `aiogram` для структурованого користувацького досвіду.
* **Генерація Документів:** Використання бібліотеки `openpyxl` для заповнення шаблонних файлів XLSX рахунками та актами.
* **Конвертація в PDF:** Автоматична конвертація створених XLSX-файлів у PDF за допомогою зовнішнього інструмента (`libreoffice` через `subprocess`).
* **Гнучкість:** Підтримка додавання кількох позицій послуг в один документ.
* **Фінансові Функції:** Автоматичний розрахунок загальної суми та виведення суми прописом українською мовою (`num2words`).
---
## Використовувані Технології
| Категорія | Технологія | Опис |
| :--- | :--- | :--- |
| **Основна Мова** | Python | |
| **Бот-Фреймворк** | `aiogram` (v3+) | Асинхронний фреймворк для Telegram-ботів. |
| **Стан** | FSMContext / MemoryStorage | Керування користувацькими сесіями. |
| **Робота з Excel** | `openpyxl` | Читання та запис даних у шаблонні XLSX-файли. |
| **Конфігурація** | `python-dotenv` | Приховування конфіденційних даних (API-токену). |
| **Системні Виклики** | `subprocess` + `libreoffice` | Конвертація документів. |
## Огляд Проєкту
Цей Telegram-бот розроблено для **швидкого формування рахунків (Рахунків) та актів виконаних робіт (Актів) у форматах XLSX та PDF** на основі даних, введених користувачем через діалог.
Проєкт демонструє навички розробки функціональних **Telegram-ботів** з використанням асинхронного фреймворка `aiogram` та прикладну роботу з файлами **MS Excel** для генерації офіційних фінансових документів.
---
## Ключові Можливості
* **Діалогова Взаємодія (FSM):** Покроковий збір даних (назва фірми, номер/дата рахунку, перелік послуг, кількість, ціна) з використанням **FSM (Finite State Machine)** в `aiogram` для структурованого користувацького досвіду.
* **Генерація Документів:** Використання бібліотеки `openpyxl` для заповнення шаблонних файлів XLSX рахунками та актами.
* **Конвертація в PDF:** Автоматична конвертація створених XLSX-файлів у PDF за допомогою зовнішнього інструмента (`libreoffice` через `subprocess`).
* **Гнучкість:** Підтримка додавання кількох позицій послуг в один документ.
* **Фінансові Функції:** Автоматичний розрахунок загальної суми та виведення суми прописом українською мовою (`num2words`).
---
## Використовувані Технології
| Категорія | Технологія | Опис |
| :--- | :--- | :--- |
| **Основна Мова** | Python | |
| **Бот-Фреймворк** | `aiogram` (v3+) | Асинхронний фреймворк для Telegram-ботів. |
| **Стан** | FSMContext / MemoryStorage | Керування користувацькими сесіями. |
| **Робота з Excel** | `openpyxl` | Читання та запис даних у шаблонні XLSX-файли. |
| **Конфігурація** | `python-dotenv` | Приховування конфіденційних даних (API-токену). |
| **Системні Виклики** | `subprocess` + `libreoffice` | Конвертація документів. |