Телеграм Бот на 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` | Конвертация документов. |