Telegram-bot do rejestracji online na manicure (Python, aiogram 3)
Telegram-bot do automatyzacji rejestracji klientów na manicure z panelem administracyjnym i systemem przypomnień.
Główne zadanie: Zastąpić ręczne prowadzenie zapisów w komunikatorze pełnoprawnym systemem rezerwacji z interaktywnym interfejsem - klient samodzielnie wybiera usługę, datę i godzinę, a mistrz otrzymuje powiadomienia i zarządza harmonogramem przez panel administracyjny.
Co zostało zrealizowane:
- Pełny przepływ FSM rejestracji: wybór usługi → inline-kalendarz → wybór godziny → wprowadzenie imienia i telefonu → potwierdzenie
- Panel administracyjny: zarządzanie dniami roboczymi, slotami czasowymi, usługami i ich cenami (CRUD)
- Inline-kalendarz z obsługą nawigacji po miesiącach, blokowaniem przeszłych i zamkniętych dat
- Automatyczne przypomnienia dla klientów na 24 godziny i na 2 godziny przed wizytą (APScheduler)
- Natychmiastowe powiadomienia dla administratora o nowych zapisach i anulacjach z możliwością działania bezpośrednio z wiadomości
- Walidacja telefonu (regex, normalizacja do +48XXXXXXXXX), ochrona przed podwójną rezerwacją (race condition na is_booked)
- Operacje CRUD z usługami przez panel administracyjny: dodawanie, zmiana ceny, usuwanie z automatyczną transliteracją kluczy
- Obsługa przypadków brzegowych: blokowanie ponownego zapisu, powiadomienie klienta przy anulowaniu przez administratora, try/except dla zablokowanych botów
Technologie: Python 3.11+, aiogram 3.25, Supabase (PostgreSQL), APScheduler, python-dotenv, FSM (Finite State Machine), Inline Keyboards, CallbackData factories
Główne zadanie: Zastąpić ręczne prowadzenie zapisów w komunikatorze pełnoprawnym systemem rezerwacji z interaktywnym interfejsem - klient samodzielnie wybiera usługę, datę i godzinę, a mistrz otrzymuje powiadomienia i zarządza harmonogramem przez panel administracyjny.
Co zostało zrealizowane:
- Pełny przepływ FSM rejestracji: wybór usługi → inline-kalendarz → wybór godziny → wprowadzenie imienia i telefonu → potwierdzenie
- Panel administracyjny: zarządzanie dniami roboczymi, slotami czasowymi, usługami i ich cenami (CRUD)
- Inline-kalendarz z obsługą nawigacji po miesiącach, blokowaniem przeszłych i zamkniętych dat
- Automatyczne przypomnienia dla klientów na 24 godziny i na 2 godziny przed wizytą (APScheduler)
- Natychmiastowe powiadomienia dla administratora o nowych zapisach i anulacjach z możliwością działania bezpośrednio z wiadomości
- Walidacja telefonu (regex, normalizacja do +48XXXXXXXXX), ochrona przed podwójną rezerwacją (race condition na is_booked)
- Operacje CRUD z usługami przez panel administracyjny: dodawanie, zmiana ceny, usuwanie z automatyczną transliteracją kluczy
- Obsługa przypadków brzegowych: blokowanie ponownego zapisu, powiadomienie klienta przy anulowaniu przez administratora, try/except dla zablokowanych botów
Technologie: Python 3.11+, aiogram 3.25, Supabase (PostgreSQL), APScheduler, python-dotenv, FSM (Finite State Machine), Inline Keyboards, CallbackData factories