Case Study

Case Study: GPL Finder BOT - automatyczne monitorowanie dostępności leków

10 min czytania

Wyzwanie

Pacjenci z chorobami przewlekłymi często mierzą się z problemem dostępności specjalistycznych leków. Wyszukiwanie leku w aptekach to żmudny, czasochłonny proces - szczególnie gdy lek jest deficytowy lub dostępny tylko w wybranych lokalizacjach.

Ręczne sprawdzanie - pacjenci codziennie odświeżają strony aptek w nadziei, że lek się pojawi
Brak powiadomień - portale apteczne nie oferują alertów o dostępności
Stracone okazje - gdy lek się pojawia, często jest już wyprzedany zanim pacjent zdąży zareagować

Rozwiązanie

Zaprojektowałem i wdrożyłem GPL Finder BOT - bota Telegram, który automatycznie monitoruje dostępność leków w polskich aptekach i powiadamia użytkowników natychmiast po pojawieniu się leku.

Kluczowe funkcjonalności

01
Kreator monitora

4-etapowy wizard: URL → miasto → promień → dostępność

02
Smart powiadomienia

3 poziomy dostępności, eliminacja duplikatów

03
Geolokalizacja

100+ miast, obliczanie odległości

04
Multi-monitoring

Do 5 leków jednocześnie na użytkownika

05
Linki rezerwacji

Bezpośrednie linki do apteki online

06
System feedbacku

Zgłaszanie błędów i sugestii

Optymalizacja wydajności

Kluczowym wyzwaniem było efektywne sprawdzanie setek monitorów bez przeciążania serwera docelowego:

  • Grupowanie zapytań - jedno zapytanie HTTP dla wielu użytkowników monitorujących ten sam lek
  • Hashowanie wyników - SHA256 do wykrywania zmian (unikam duplikatów)
  • Rate limiting - 2-sekundowe opóźnienie między grupami zapytań

Bezpieczeństwo

  • Walidacja URL - whitelist domen (tylko gdziepolek.pl)
  • Izolacja użytkowników - Foreign Key na user_id
  • Non-root Docker - dedykowany użytkownik botuser
  • Admin alerty - powiadomienia przy błędach krytycznych

Efekty wdrożenia

Bot działa produkcyjnie i pomaga realnym użytkownikom w znajdowaniu leków:

100+ aktywnych użytkowników

korzystających z bota regularnie

Sprawdzanie co 15 minut

alert niemal natychmiast po pojawieniu się leku

99.9% uptime

dzięki Railway i automatycznemu restartowi

Podsumowanie techniczne

Python 3.11, async-first architecture
PostgreSQL + SQLAlchemy ORM
Web scraping: BeautifulSoup4, cloudscraper
Docker + Railway (PaaS)

Potrzebujesz podobnego rozwiązania?

Chętnie porozmawiam o Twoim projekcie i zaproponuję optymalne rozwiązanie.