Śledzenie cen konkretnego produktu ręcznie sprowadza się do jednej, nudnej czynności: co jakiś czas otwierasz tę samą stronę sklepu, patrzysz na cenę i zamykasz kartę, bo nic się nie zmieniło. Bartek robił to dla perfum, które go interesowały – aż postanowił, że zrobi to za niego automat.
„Zależało mi na bezobsługowym i tanim w utrzymaniu systemie, dlatego oparłem go w pełni o architekturę serverless” – napisał, zgłaszając swój projekt. Tak powstał Strażnik cen perfum.
Jak to działa pod spodem
Konfiguracja
System trzyma listę interesujących flakonów w łatwym do edycji pliku YAML.
Pobieranie danych
AWS Lambda wyzwalana z CloudWatch Events (cron co godzinę) parsuje konfigurację i odpytuje sklepy internetowe o aktualne ceny.
Przechowywanie stanu
Zebrane dane trafiają do tabeli w Amazon DynamoDB. Baza trzyma pełną historię, co pozwala efektywnie wyciągać minima cenowe w określonych oknach czasowych.
Alerty (Smart)
System porównuje nowe dane z historią w DynamoDB i uderza do API Telegrama tylko wtedy, gdy cena zmieni się o minimum 5 zł – i dotyka minimum z ostatnich 30, 90 lub 365 dni.

Alert, nie spam
Najciekawszą decyzją w tym projekcie nie jest wybór AWS Lambda czy DynamoDB, tylko to, czego automat nie robi. Mógłby wysyłać powiadomienie przy każdym uruchomieniu – co godzinę, niezależnie od tego, czy cena drgnęła o grosz czy wcale. Bartek celowo tego nie zrobił.
„Zamiast spamować powiadomieniami przy każdym uruchomieniu, zaimplementowałem konkretną logikę” – system musi spełnić dwa warunki naraz: cena musi zmienić się o co najmniej 5 zł (próg konfigurowalny) i dotknąć minimum z ostatnich 30, 90 lub 365 dni. Dopiero taka zmiana trafia na Telegrama.
„Dzięki temu automat pracuje cicho w tle, a ja dostaję powiadomienie na telefon tylko wtedy, gdy faktycznie dzieje się coś, na co warto zareagować” – podsumował.
Alert w praktyce
Tak wygląda powiadomienie, gdy Strażnik złapie realną zmianę ceny – z nazwą perfum, rozmiarem flakonu, aktualną i poprzednią ceną, przeliczeniem na cenę za mililitr oraz minimami z 30, 90 i 365 dni, razem z linkiem do sklepu:

Całość zastępuje to, co Bartek robił wcześniej ręcznie: odświeżanie stron sklepów w nadziei, że akurat trafi na dobry moment. Teraz automat robi to za niego co godzinę, a on dowiaduje się tylko wtedy, gdy naprawdę jest o czym.
Pełne zgłoszenie projektu jest na X.
To kolejny z projektów, jakie kursanci StormIT budują dla siebie w trakcie nauki. Zobacz pozostałe albo sprawdź, jak zacząć swój.
