Inteligentny asystent dnia codziennego - łączy plan zajęć USOS, pogodę, rozkłady PKP i ZTM oraz notatki w jednym dashboardzie. Sterowany językiem naturalnym dzięki integracji z Claude AI.
Jako student dojeżdżający codziennie z Tarnowskich Gór do Katowic musiałem żonglować wieloma źródłami informacji jednocześnie: plan zajęć w USOS, aktualna pogoda, rozkład PKP, autobusy ZTM, notatki z uczelni i czas przejazdu samochodem. Każdego ranka traciłem czas na sprawdzanie kilku różnych aplikacji i stron - zamiast skupić się na planowaniu dnia.
USOS nie pozwala na dodawanie własnych zadań, aplikacje kalendarza nie znają rozkładów PKP, a żadne z dostępnych narzędzi nie pokazywało wszystkiego naraz - zajęć, pogody i transportu - w kontekście konkretnego dnia. Potrzebowałem czegoś własnego.
Napisałem skrypt update_data.py z wykorzystaniem Claude Code, który równolegle pobiera dane z 6 zewnętrznych źródeł: pogodę (OpenWeatherMap), czasy przejazdu samochodem (TomTom), pociągi PKP, rozkłady autobusów ZTM (dane GTFS), prognozę 5-dniową oraz plan zajęć z USOS w formacie iCal. Wszystko trafia do lokalnych plików JSON.
Serwer Flask (server.py) serwuje dashboard z kartami: harmonogram dnia, pogoda z jakością powietrza, mini-kalendarz, notatki, połączenia kolejowe, autobusy ZTM i czas przejazdu samochodem. Ciepły, minimalistyczny design inspirowany Google Calendar.
Zintegrowałem Claude Haiku (Anthropic) z mechanizmem tool use - AI może nie tylko odpowiadać na pytania, ale też faktycznie dodawać zadania, edytować notatki, ukrywać zajęcia USOS, importować plan czy pokazać rozkład. Do 4 rund narzędziowych w jednej rozmowie.
Parser GTFS (ZTM Metropolia) + API PKP PLK tworzą połączenia multimodalne: pociąg z Tarnowskich Gór do Katowic Głównych, a następnie tramwaj lub autobus ZTM do konkretnego przystanku (np. Zawodzie UE). Wszystko z czasami odjazdu i całkowitym czasem podróży.
Projekt składa się z backendu Flask, skryptów aktualizacji danych i frontendu. Dane przechowywane są lokalnie jako pliki JSON.
server.py obsługuje routing HTTP, API oraz logikę rozmów z Claude AI. Zawiera 14 funkcji narzędziowych wywoływanych przez AI.
update_data.py pobiera dane ze wszystkich 6 źródeł i zapisuje je lokalnie jako JSON. Moduły działają równolegle, można uruchomić wybrany lub wszystkie naraz.
Siatka kart 2×2 bez frameworków JS. Oddzielny widok czatu z asystentem AI. Responsywny design inspirowany Google Calendar.
W kolejnym etapie dashboard ma być uruchomiony na Raspberry Pi i wyświetlany na dedykowanym ekranie. Całość działałaby jako autonomiczne urządzenie domowe, startujące automatycznie przy włączeniu.
Projekt łączy 6 zewnętrznych API, lokalny magazyn danych i model językowy w jedno spójne narzędzie do planowania dnia.
Siatka z kartami: harmonogram dnia (USOS + własne zadania), pogoda z jakością powietrza, mini-kalendarz i notatki. Ciepła kolorystyka zainspirowana Google Calendar.
Dolny rząd dashboardu pokazuje najbliższe pociągi PKP, autobusy ZTM oraz aktualny czas przejazdu samochodem dla 5 tras - z zaznaczeniem najszybszej.
Oddzielny widok czatu z asystentem. Można powiedzieć „dodaj jutro laboratorium o 10:00" albo „kiedy mam jutro zajęcia?" - AI wywoła właściwe narzędzia i zmodyfikuje harmonogram.
OpenWeatherMap, TomTom, PKP PLK API, USOS (iCal), GTFS ZTM Metropolia i lokalny harmonogram - wszystko synchronizowane jednym poleceniem.
Claude Haiku nie tylko odpowiada na pytania, ale wykonuje realne akcje: dodaje zadania, edytuje notatki, ukrywa zajęcia USOS - do 4 wywołań narzędzi w jednej wiadomości.
Automatyczne łączenie rozkładu PKP z danymi GTFS buduje trasy PKP+ZTM z całkowitym czasem podróży - funkcja niedostępna w standardowych aplikacjach transportowych dla tego odcinka.
update_data.py obsługuje argumenty CLI - można zaktualizować tylko pogodę, tylko PKP lub wszystko naraz. Moduły działają równolegle dzięki ThreadPoolExecutor.