Bot Telegram na Python
# Telegram-Bot do Automatyzacji Obiegu Dokumentów (Faktury i Protokoły)
## Przegląd Projektu
Ten Telegram-bot został stworzony do **szybkiego generowania faktur (Faktur) oraz protokołów wykonanych prac (Protokół) w formatach XLSX i PDF** na podstawie danych wprowadzonych przez użytkownika w dialogu.
Projekt demonstruje umiejętności tworzenia funkcjonalnych **Telegram-botów** z wykorzystaniem asynchronicznego frameworka `aiogram` oraz aplikacyjną pracę z plikami **MS Excel** do generowania oficjalnych dokumentów finansowych.
---
## Kluczowe Możliwości
* **Interakcja Dialogowa (FSM):** Krok po kroku zbieranie danych (nazwa firmy, numer/data faktury, lista usług, ilość, cena) z wykorzystaniem **FSM (Finite State Machine)** w `aiogram` dla strukturalnego doświadczenia użytkownika.
* **Generowanie Dokumentów:** Wykorzystanie biblioteki `openpyxl` do wypełniania szablonowych plików XLSX fakturami i protokołami.
* **Konwersja do PDF:** Automatyczna konwersja utworzonych plików XLSX do PDF za pomocą zewnętrznego narzędzia (`libreoffice` przez `subprocess`).
* **Elastyczność:** Wsparcie dla dodawania wielu pozycji usług w jednym dokumencie.
* **Funkcje Finansowe:** Automatyczne obliczanie łącznej kwoty oraz wyświetlanie kwoty słownie w języku polskim (`num2words`).
---
## Wykorzystywane Technologie
| Kategoria | Technologia | Opis |
| :--- | :--- | :--- |
| **Główny Język** | Python | |
| **Framework Bota** | `aiogram` (v3+) | Asynchroniczny framework dla Telegram-botów. |
| **Stan** | FSMContext / MemoryStorage | Zarządzanie sesjami użytkowników. |
| **Praca z Excelem** | `openpyxl` | Odczyt i zapis danych w szablonowych plikach XLSX. |
| **Konfiguracja** | `python-dotenv` | Ukrywanie poufnych danych (tokenu API). |
| **Wywołania Systemowe** | `subprocess` + `libreoffice` | Konwersja dokumentów. |
## Przegląd Projektu
Ten Telegram-bot został stworzony do **szybkiego generowania faktur (Faktur) oraz protokołów wykonanych prac (Protokół) w formatach XLSX i PDF** na podstawie danych wprowadzonych przez użytkownika w dialogu.
Projekt demonstruje umiejętności tworzenia funkcjonalnych **Telegram-botów** z wykorzystaniem asynchronicznego frameworka `aiogram` oraz aplikacyjną pracę z plikami **MS Excel** do generowania oficjalnych dokumentów finansowych.
---
## Kluczowe Możliwości
* **Interakcja Dialogowa (FSM):** Krok po kroku zbieranie danych (nazwa firmy, numer/data faktury, lista usług, ilość, cena) z wykorzystaniem **FSM (Finite State Machine)** w `aiogram` dla strukturalnego doświadczenia użytkownika.
* **Generowanie Dokumentów:** Wykorzystanie biblioteki `openpyxl` do wypełniania szablonowych plików XLSX fakturami i protokołami.
* **Konwersja do PDF:** Automatyczna konwersja utworzonych plików XLSX do PDF za pomocą zewnętrznego narzędzia (`libreoffice` przez `subprocess`).
* **Elastyczność:** Wsparcie dla dodawania wielu pozycji usług w jednym dokumencie.
* **Funkcje Finansowe:** Automatyczne obliczanie łącznej kwoty oraz wyświetlanie kwoty słownie w języku polskim (`num2words`).
---
## Wykorzystywane Technologie
| Kategoria | Technologia | Opis |
| :--- | :--- | :--- |
| **Główny Język** | Python | |
| **Framework Bota** | `aiogram` (v3+) | Asynchroniczny framework dla Telegram-botów. |
| **Stan** | FSMContext / MemoryStorage | Zarządzanie sesjami użytkowników. |
| **Praca z Excelem** | `openpyxl` | Odczyt i zapis danych w szablonowych plikach XLSX. |
| **Konfiguracja** | `python-dotenv` | Ukrywanie poufnych danych (tokenu API). |
| **Wywołania Systemowe** | `subprocess` + `libreoffice` | Konwersja dokumentów. |