Dokumentacja - System Analizy Konkurencji Badań Medycznych

Status projektu: 🚧 W TRAKCIE REALIZACJI 🚧

📋 Spis Treści

  1. Specyfikacja Techniczna - Pełna dokumentacja techniczna systemu
  2. Quick Start Guide - Szybki przewodnik i checklista implementacji
  3. 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:

  1. Cloudflare Worker - Wykonuje scraping danych ze stron internetowych raz na tydzień
  2. Cloudflare R2 - Przechowuje całe zescrapowane strony (baza danych)
  3. Cloudflare KV Store - Przechowuje konfigurację (nie dane)
  4. 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

  1. Przeczytaj Quick Start Guide dla szybkiego przeglądu
  2. Zapoznaj się z Specyfikacją Techniczną dla szczegółów implementacji
  3. Przeanalizuj plik Excel z przykładowymi danymi
  4. 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:


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

  1. Full page scraping: Zescrapowanie całej strony internetowej na raz (nie incremental updates)
  2. 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
  3. Error handling: Retry logic dla nieudanych scrapów
  4. 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:

  1. Wyszukiwanie w wyszukiwarkach (Google, Bing) z odpowiednimi frazami kluczowymi
  2. Analizę linków z już znalezionych stron
  3. Wykrywanie wzorców w strukturze URL i treści stron
  4. 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

  1. Cloudflare Worker - Wykonuje scraping raz na tydzień (dla analizy trendów)
  2. Cloudflare R2 - Przechowuje całe zescrapowane strony (baza danych)
  3. Cloudflare KV - Przechowuje konfigurację (nie dane)
  4. 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

  1. Przeczytaj pełną SPECYFIKACJĘ_TECHNICZNĄ.md
  2. System automatycznie wyszukuje strony - nie ma potrzeby ręcznego dodawania
  3. Przeanalizuj jak system wyszukuje strony (frazy kluczowe, wzorce)
  4. Rozpocznij od testowania automatycznego wyszukiwania (proof of concept)

Wsparcie

W razie pytań lub problemów:

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