Opis projektu:
Należy opracować bota Telegram do generowania tekstów SEO dla strony Trast.ua. Bot powinien przyjmować URL kategorii lub produktu, generować tekst SEO przy użyciu API OpenAI i zapisywać wynik w bazie danych.
Podstawowe wymagania:
1. **Stos technologiczny**:
- Python 3.10
- Aiogram dla bota Telegram
- Quart dla serwera internetowego
- SQLite dla bazy danych
- Aiohttp do asynchronicznych żądań HTTP
- BeautifulSoup4 do analizy HTML
- Pytest do pisania testów
2. **Wymagania funkcjonalne**:
- **Komenda /start**: Wysłanie wiadomości powitalnej z przyciskiem "START".
- **Przycisk "START"**: Po naciśnięciu bot powinien poprosić o URL kategorii lub produktu.
- **Przetwarzanie URL**: Bot powinien przyjmować URL, sprawdzać jego poprawność i generować tekst SEO za pomocą API OpenAI.
- **Zapisywanie tekstu SEO**: Bot powinien zapisywać wygenerowany tekst SEO w bazie danych.
- **Wysyłanie tekstu SEO**: Bot powinien wysyłać wygenerowany tekst SEO użytkownikowi.
3. **Wymagania niefunkcjonalne**:
- **Wydajność**: Bot powinien obsługiwać żądania i generować teksty SEO w ciągu 5 sekund.
- **Testowanie**: Wszystkie główne funkcje powinny być pokryte testami przy użyciu Pytest.
- **Dokumentacja**: Cały kod powinien być dobrze udokumentowany i zawierać instrukcję uruchamiania i konfiguracji.
#### Szczegółowe zadania:
1. **Opracowanie bota Telegram**:
- Konfiguracja Aiogram.
- Implementacja komendy `/start`.
- Obsługa naciśnięcia przycisku "START".
- Obsługa wiadomości z URL.
- Generowanie tekstu SEO przy użyciu API OpenAI.
- Wysyłanie wygenerowanego tekstu użytkownikowi.
2. **Opracowanie serwera internetowego**:
- Konfiguracja Quart.
- Implementacja trasy `/generate` do generowania tekstu SEO na podstawie URL.
3. **Praca z bazą danych**:
- Konfiguracja SQLite.
- Tworzenie tabel do przechowywania kategorii i produktów.
- Funkcje do zapisywania i pobierania danych z bazy danych.
4. **Testowanie**:
- Pisanie testów dla głównych funkcji bota.
- Testowanie generowania tekstów SEO.
- Testowanie pracy z bazą danych.
5. **Dokumentacja**:
- Opis instalacji i konfiguracji środowiska.
- Instrukcja uruchamiania bota i serwera internetowego.
- Opis struktury bazy danych.
#### Przykładowa struktura projektu:
```
project/
│
├── app.py # Plik aplikacji Quart
├── bot.py # Plik bota Telegram
├── db_manager.py # Zarządzanie bazą danych
├── seo_generator.py # Generowanie tekstów SEO
├── config.py # Parametry konfiguracyjne
├── gunicorn_conf.py # Konfiguracja Gunicorn
│
├── tests/ # Katalog z testami
│ ├── test_app.py
│ ├── test_bot.py
│ ├── test_db_manager.py
│ └── test_seo_generator.py
│
├── requirements.txt # Zależności projektu
├── wsgi.py # Plik do uruchamiania aplikacji
└── pytest.ini # Konfiguracja dla Pytest
```
#### Oczekiwane rezultaty:
- Działający bot Telegram spełniający wymagania funkcjonalne.
- Serwer internetowy na Quart obsługujący żądania generowania tekstów SEO.
- Poprawnie działająca baza danych.
- Pełne pokrycie głównych funkcji testami.
- Szczegółowa dokumentacja projektu.
W przypadku pytań lub potrzeby dodatkowych informacji, proszę się skontaktować.