Mobilna aplikacja (PWA do zainstalowania na telefonie): co dziś, jutro i w weekend dzieje się w Zamościu i na Roztoczu. Koncerty, kino, teatr, festyny, sport, wydarzenia dla dzieci.
👉 https://co-w-zamosciu.val.run
cron/scrape.ts zbiera wydarzenia 3 razy dziennie (6:00, 12:00, 18:00 czasu letniego) z:
apify/facebook-events-scraper): szczegóły niżej.cron/facebook.ts co 2 dni (3:30 UTC) uruchamia aktora z wyszukiwaniami: Zamość, Chełm, Tomaszów Lubelski, Biłgoraj, Krasnystaw, Roztocze.maxTotalChargeUsd). Przewidywany koszt to ok. 0,25–0,40 USD za run.cron/scrape.ts czyta wynik ostatniego udanego runu, także uruchomionego ręcznie w konsoli Apify.👉 Add APIFY_TOKEN here: https://www.val.town/x/dominik1/co-w-zamosciu/environment-variables?key=APIFY_TOKEN
std/openai, gpt-5.4-nano). Wystarcza darmowy limit Val Town.cron/digest.ts codziennie o 8:00 wysyła push na telefony (Twoje „Idę” są na początku) i mail do właściciela. W piątek dochodzi zapowiedź weekendu i ostrzeżenia o źródłach, które przestały działać./api/status.ADD_PIN: PIN do dodawania i ukrywania wydarzeń.VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY: klucze Web Push. Po zmianie trzeba ponownie włączyć powiadomienia na telefonach.OPENAI_API_KEY (opcjonalnie): własny klucz, jeśli darmowy limit Val Town okaże się za mały.👉 Add ADD_PIN here: https://www.val.town/x/dominik1/co-w-zamosciu/environment-variables?key=ADD_PIN
index.ts: serwer Hono (strona, manifest, ikony, service worker, API, pliki .ics)backend/adapters/*: parsery poszczególnych stronbackend/sources.ts: rejestr źródeł i przebieg zbieraniabackend/db.ts: SQLite (wydarzenia, źródła, subskrypcje push, cache AI)backend/normalize.ts: daty w strefie Europe/Warsaw, kategorie, miejscowości, deduplikacjabackend/llm.ts: AI do odczytu tekstu i klasyfikacjifrontend/: interfejs React, service worker, powiadomieniascripts/test-adapters.ts: próbny przebieg parserów bez zapisu (do diagnozy, gdy strona zmieni układ)Nowe źródło dodajesz jako adapter w backend/adapters/ i wpis w SOURCES w backend/sources.ts.