Dokumentacja - System Analizy Konkurencji Badań Medycznych
Status projektu: 🚧 W TRAKCIE REALIZACJI 🚧
📋 Spis Treści
- Specyfikacja Techniczna - Pełna dokumentacja techniczna systemu
- Quick Start Guide - Szybki przewodnik i checklista implementacji
- Dokumentacja Scrapingu - Szczegółowa dokumentacja systemu scrapingu
🎯 Cel Projektu
System do automatycznego zbierania, porównywania i prezentacji danych dotyczących badań medycznych (nie leków) oferowanych przez różne firmy medyczne w dziedzinach:
- Onkologii
- Interny
🏗️ Architektura
System składa się z następujących komponentów:
- Cloudflare Worker - Wykonuje scraping danych ze stron internetowych raz na tydzień
- Cloudflare R2 - Przechowuje całe zescrapowane strony (baza danych)
- Cloudflare KV Store - Przechowuje konfigurację (nie dane)
- Google Sheets - Warstwa prezentacji danych (tabele, wykresy, trendy)
🔄 Przepływ Danych
📊 Dane Zbierane
Dla każdego badania system zbiera:
- ✅ Nazwę badania
- ✅ Kategorię (onkologia/interna)
- ✅ Firmę oferującą
- ✅ Cenę standardową
- ✅ Cenę promocyjną (jeśli dostępna)
- ✅ Okres promocji
- ✅ Zakres badania (parametry)
- ✅ Opis badania
- ✅ Link do oferty
- ✅ Datę aktualizacji
⚙️ Automatyzacja
Worker wykonuje się automatycznie raz na tydzień:
- Automatycznie wyszukuje strony internetowe z badaniami medycznymi (nie ma statycznej listy)
- Scrapuje całe strony internetowe ze znalezionych źródeł
- Zapisuje całe strony do R2 (baza danych)
- Normalizuje i przetwarza dane
- Eksportuje dane do Google Sheets (warstwa prezentacji: tabele, wykresy, trendy)
- Konfiguracja przechowywana w KV Store
📁 Struktura Dokumentacji
🚀 Rozpoczęcie Pracy
- Przeczytaj Quick Start Guide dla szybkiego przeglądu
- Zapoznaj się z Specyfikacją Techniczną dla szczegółów implementacji
- Przeanalizuj plik Excel z przykładowymi danymi
- Rozpocznij implementację zgodnie z checklistą
🔑 Kluczowe Funkcjonalności
- ✅ Automatyczne scrapowanie danych z wielu źródeł
- ✅ Porównywanie cen standardowych i promocyjnych
- ✅ Analiza zawartości produktu (zakres badań)
- ✅ Automatyczne aktualizacje bez interwencji użytkownika
- ✅ Interaktywna tabela porównawcza z filtrowaniem i sortowaniem
- ✅ Responsywny design dla urządzeń mobilnych
📝 Uwagi
- System skupia się na badaniach medycznych, nie na lekach
- Dane są aktualizowane automatycznie przez Worker raz na tydzień (dla analizy trendów)
- Warstwa prezentacji: Google Sheets (tabele, wykresy, trendy) - najbliższa formatowi Excel
- R2 służy jako baza danych (całe zescrapowane strony)
- KV Store służy tylko do konfiguracji
- System automatycznie wyszukuje strony - nie ma potrzeby ręcznego dodawania źródeł
📞 Wsparcie
W razie pytań dotyczących implementacji, zapoznaj się z:
- Specyfikacją Techniczną - szczegółowe informacje techniczne
- Quick Start Guide - praktyczne wskazówki i troubleshooting
- Dokumentacją Scrapingu - szczegóły implementacji scraperów
Wersja dokumentacji: 1.0
Data utworzenia: 2024-01-20
Status: 🚧 W TRAKCIE REALIZACJI
🚧
Specyfikacja Techniczna - System Analizy Konkurencji Badań Medycznych
Status projektu: 🚧 W TRAKCIE REALIZACJI 🚧
1. Przegląd Systemu
1.1 Cel
System do automatycznego zbierania, porównywania i prezentacji danych dotyczących badań medycznych (nie leków) oferowanych przez różne firmy medyczne w dziedzinach:
- Onkologii
- Interny
1.2 Zakres funkcjonalności
- Scraping danych ze stron internetowych
- Porównywanie cen standardowych
- Porównywanie cen promocyjnych
- Analiza zawartości produktu (zakres badań, parametry)
- Automatyczne aktualizacje danych
- Prezentacja danych w formie interaktywnej tabeli
2. Architektura Techniczna
2.1 Komponenty Systemu
2.2 Technologie
Frontend:
- HTML5, CSS3, JavaScript (ES6+)
- Vanilla JS (bez frameworków) dla minimalnej zależności
- Responsive design
Backend:
- Cloudflare Workers (JavaScript/TypeScript)
- Cloudflare KV Store (dane strukturalne)
- Cloudflare R2 (opcjonalnie dla większych plików)
- Scheduled Events (Cron Triggers)
Scraping:
- Cheerio (HTML parsing w Worker)
- Fetch API dla żądań HTTP
- Rate limiting i retry logic
3. Struktura Danych
3.1 Model Danych Badania
3.2 Przykładowa struktura danych (na podstawie Excel)
Dane powinny zawierać kolumny:
- Nazwa badania - pełna nazwa badania
- Kategoria - Onkologia / Interna
- Firma - Nazwa firmy medycznej
- Cena standardowa - Cena regularna w PLN
- Cena promocyjna - Cena w promocji (jeśli dostępna)
- Okres promocji - Data rozpoczęcia i zakończenia
- Zakres badania - Lista parametrów/analizowanych elementów
- Opis - Szczegółowy opis badania
- Link - URL do oferty
- Data aktualizacji - Ostatnia aktualizacja danych
6. Konfiguracja Cloudflare
6.2 Cloudflare Pages
- Build command: (pusty - Worker generuje index.html)
- Build output directory:
- Root directory:
-
Environment variables:
7. Harmonogram Aktualizacji
7.1 Częstotliwość Scrapingu
- Domyślnie: Raz na tydzień
- Uzasadnienie: Częstotliwość raz na tydzień pozwala na analizę trendów i tworzenie wykresów z danymi historycznymi. Zbyt częste scrapowanie (np. co 6 godzin) może przeciążać Cloudflare i nie jest potrzebne dla analizy trendów.
7.2 Strategia Aktualizacji
- Full page scraping: Zescrapowanie całej strony internetowej na raz (nie incremental updates)
- Uzasadnienie: Strony internetowe to statyczne strony HTML, nie API RESTowe z diffem. Nie ma sensu robić incremental updates - trzeba zescrapować całą stronę i zapisać do R2
- Error handling: Retry logic dla nieudanych scrapów
- Rate limiting: Szanuj limity serwerów docelowych
8. Obsługa Błędów
8.1 Scraping Errors
- Retry z exponential backoff
- Logowanie błędów do Cloudflare Workers Logs
- Fallback do cache'owanych danych z R2
8.2 Data Validation
- Walidacja struktury danych przed zapisem
- Sprawdzanie wymaganych pól
- Normalizacja formatów (ceny, daty)
- Usuwanie duplikatów
9. Bezpieczeństwo
9.1 Rate Limiting
- Ograniczenie liczby requestów na sekundę
- User-Agent rotation
- Respect dla robots.txt
9.2 Dane Wrażliwe
- Brak przechowywania danych osobowych
- Szyfrowanie danych w KV Store (jeśli wymagane)
- HTTPS dla wszystkich połączeń
10. Logowanie
10.1 Logi
- Structured logging (JSON) - logi w formacie JSON
- Cloudflare Workers Logs -
- Logowanie wszystkich ważnych operacji (scraping, błędy, sukcesy)
11. Rozszerzalność
11.1 Automatyczne Wyszukiwanie Stron
System automatycznie wyszukuje strony internetowe z badaniami medycznymi. Nie ma potrzeby ręcznego dodawania stron do listy - system sam znajduje odpowiednie źródła poprzez:
- Wyszukiwanie w wyszukiwarkach (Google, Bing) z odpowiednimi frazami kluczowymi
- Analizę linków z już znalezionych stron
- Wykrywanie wzorców w strukturze URL i treści stron
- Walidację znalezionych stron pod kątem zawartości badań medycznych
11.2 Dodawanie Nowych Kategorii
- Rozszerz enum w modelu danych
- Zmiana w kodzie - nie ma sensu robić panelu konfiguracji, zmiana w kodzie w Cursorze to moment
- Zaktualizuj logikę kategoryzacji
12. Deployment
12.1 Worker Deployment
12.2 Eksport do Google Sheets
- Worker eksportuje dane do Google Sheets (warstwa prezentacji)
- Google Sheets API wymaga odpowiedniej konfiguracji (Service Account)
- Format danych: tabele, wykresy, trendy (najbliższe formatowi Excel)
14. Przykładowe Dane Wyjściowe
Dane wyjściowe są prezentowane w Google Sheets (najbliższe formatowi Excel). System eksportuje dane w formacie:
15. Roadmap
Faza 1 (MVP)
- Podstawowy scraper dla 2-3 firm
- Prosta tabela porównawcza
- Automatyczne aktualizacje co 6 godzin
Faza 2
- Rozszerzenie o więcej firm
- Zaawansowane filtry i sortowanie
- Wykresy porównawcze cen
Faza 3
- Historia zmian cen
- Alerty o promocjach
- API dla zewnętrznych integracji
Autor: System Analizy Konkurencji
Wersja: 1.0
Data: 2024-01-20
Quick Start Guide - System Analizy Konkurencji
Status projektu: 🚧 W TRAKCIE REALIZACJI 🚧
Przegląd
System do automatycznego scrapingu i porównywania badań medycznych z różnych firm w dziedzinach onkologii i interny.
Architektura w Pigułce
Kluczowe Komponenty
- Cloudflare Worker - Wykonuje scraping raz na tydzień (dla analizy trendów)
- Cloudflare R2 - Przechowuje całe zescrapowane strony (baza danych)
- Cloudflare KV - Przechowuje konfigurację (nie dane)
- Google Sheets - Warstwa prezentacji (tabele, wykresy, trendy - najbliższe formatowi Excel)
Struktura Projektu
Przykładowe Komendy
Lokalne testowanie Worker
Testowanie scheduled event
Deployment
Podgląd logów
Struktura Danych
R2 (Baza Danych):
- Całe zescrapowane strony HTML (z datą scrapingu)
- Historia zmian dla analizy trendów
KV Store (Konfiguracja):
- Konfiguracja scraperów
- Metadane wyszukiwania (ostatnia aktualizacja, statystyki)
- Cache znalezionych stron
Google Sheets (Prezentacja):
- Tabele z danymi (najbliższe formatowi Excel)
- Wykresy i trendy
- Analiza danych historycznych
Najczęstsze Problemy
Worker nie wykonuje się automatycznie
- Sprawdź konfigurację Cron w (raz na tydzień)
- Zweryfikuj uprawnienia w Cloudflare Dashboard
- Sprawdź logi:
Scraping zwraca puste dane
- Sprawdź selektory CSS (mogły się zmienić)
- Zweryfikuj User-Agent i headers
- Sprawdź czy strona nie wymaga JavaScript (może być potrzebny Puppeteer)
Google Sheets nie aktualizuje się
- Sprawdź czy Worker eksportuje dane do Google Sheets
- Zweryfikuj konfigurację Google Sheets API (Service Account)
- Sprawdź uprawnienia do zapisu w Google Sheets
Następne Kroki
- Przeczytaj pełną SPECYFIKACJĘ_TECHNICZNĄ.md
- System automatycznie wyszukuje strony - nie ma potrzeby ręcznego dodawania
- Przeanalizuj jak system wyszukuje strony (frazy kluczowe, wzorce)
- Rozpocznij od testowania automatycznego wyszukiwania (proof of concept)
Wsparcie
W razie pytań lub problemów:
- Dokumentacja Cloudflare Workers: https://developers.cloudflare.com/workers/
- Dokumentacja Cloudflare KV: https://developers.cloudflare.com/kv/
- Dokumentacja Cloudflare Pages: https://developers.cloudflare.com/pages/
Dokumentacja Scrapingu - System Analizy Konkurencji
Status projektu: 🚧 W TRAKCIE REALIZACJI 🚧
1. Przegląd Systemu Scrapingu
1.1 Cel
Automatyczne zbieranie danych o badaniach medycznych z witryn firm medycznych w dziedzinach:
- Onkologii
- Interny
1.2 Zakres Danych
Dla każdego badania scraper zbiera:
- Nazwę badania
- Kategorię (onkologia/interna)
- Firmę oferującą
- Cenę standardową (PLN)
- Cenę promocyjną (jeśli dostępna)
- Okres promocji (od-do)
- Zakres badania (lista parametrów)
- Opis badania
- URL do oferty
- Metadane (data scrapingu, wiarygodność)
1.3 Architektura Scrapingu
5. Selektory CSS - Przewodnik
5.1 Typowe Wzorce Selektorów
5.2 Funkcja Pomocnicza do Znajdowania Selektorów
6. Obsługa Błędów i Retry Logic
6.1 Strategie Retry
6.2 Obsługa Typowych Błędów
7. Rate Limiting i Etyka Scrapingu
7.1 Rate Limiting
7.2 Szanowanie robots.txt
8. Monitoring i Logowanie
8.1 Struktura Logów
Wersja: 1.0
Data: 2024-01-20