Wróć do bloga
Agenci AI

Strażnik cen perfum – projekt naszego kursanta

Bartek ręcznie odświeżał strony sklepów, żeby złapać dobrą cenę na konkretny flakon. Jego Strażnik cen perfum to w pełni bezserwerowy automat na AWS Lambda i DynamoDB, który sprawdza ceny co godzinę i pisze na Telegrama tylko wtedy, gdy naprawdę warto zareagować.

5 min czytania
case study, AWS Lambda, DynamoDB, serverless, Telegram, automatyzacja

Ś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

1

Konfiguracja

System trzyma listę interesujących flakonów w łatwym do edycji pliku YAML.

2

Pobieranie danych

AWS Lambda wyzwalana z CloudWatch Events (cron co godzinę) parsuje konfigurację i odpytuje sklepy internetowe o aktualne ceny.

3

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.

4

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.

Opis techniczny Strażnika cen perfum od Bartka: konfiguracja YAML, AWS Lambda, DynamoDB i inteligentne alerty

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.

1h
częstotliwość sprawdzania cen (CloudWatch Events)
≥ 5 zł
próg zmiany ceny, od którego leci alert
30/90/365 dni
okna czasowe, względem których liczone są minima

„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:

Zgłoszenie Strażnika cen perfum na X: Lambda AWS z cronem co godzinę, DynamoDB z historią cen, alert na Telegrama przy zmianie od 5 zł

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.

Chcesz wdrożyć to u siebie?

Praktyczne kursy i wdrożenia AI oraz automatyzacji. Albo zapisz się na newsletter, żeby nie przegapić nowych treści.