3.7 KiB
3.7 KiB
🚀 Quick Start Guide
Wymagania
Upewnij się, że masz zainstalowane uv:
# Instalacja uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Sprawdź instalację
uv --version
Uruchomienie w 3 krokach
1. Instalacja zależności i pobranie danych
./setup.sh
Lub ręcznie:
cd backend
uv venv
uv pip install -r requirements.txt
uv run download_gtfs.py
2. Uruchom backend
./run.sh
Lub ręcznie:
cd backend
uv run app.py
Serwer uruchomi się na http://localhost:5000
3. Otwórz frontend
Opcja A - Bezpośrednio w przeglądarce:
firefox frontend/index.html
# lub
open frontend/index.html # macOS
Opcja B - Przez serwer HTTP (zalecane):
cd frontend
python3 -m http.server 8000
Następnie otwórz: http://localhost:8000
Pierwsze kroki
-
W polu wyszukiwania wpisz nazwę stacji, np.:
- "Wrocław Główny"
- "Warszawa Centralna"
- "Kraków Główny"
- "Gdańsk Główny"
-
Wybierz stację z listy wyników
-
Zaznacz przedziały czasowe (np. 30, 60, 90 minut)
-
Kliknij "Oblicz izochrony"
-
Zobacz kolorowe obszary na mapie pokazujące gdzie możesz dojechać!
Przykładowe testy
Test 1: Wrocław Główny
Stacja: Wrocław Główny
Przedziały: 30, 60, 90, 120 min
Oczekiwany wynik: ~15-50 stacji w zależności od czasu
Test 2: Warszawa Centralna
Stacja: Warszawa Centralna
Przedziały: 60, 120, 180 min
Oczekiwany wynik: Duży obszar pokrycia centralnej Polski
Sprawdzanie API
# Status serwera
curl http://localhost:5000/api/health
# Wyszukaj stacje
curl "http://localhost:5000/api/stops/search?q=Wrocław"
# Oblicz izochrony (wymaga ID stacji)
curl -X POST http://localhost:5000/api/isochrones \
-H "Content-Type: application/json" \
-d '{"origin_stop_id": "5100069", "time_intervals": [30, 60]}'
Lub użyj przykładowego skryptu:
python examples/api_examples.py
Rozwiązywanie problemów
Błąd: "Nie znaleziono pliku GTFS"
cd backend
uv run download_gtfs.py
Błąd: "ModuleNotFoundError"
cd backend
uv pip install -r requirements.txt
Błąd: "uv: command not found"
# Zainstaluj uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Lub
pip install uv
Frontend nie łączy się z API
- Sprawdź czy backend działa:
curl http://localhost:5000/api/health - Sprawdź w konsoli przeglądarki (F12) czy nie ma błędów CORS
Mapa się nie ładuje
- Sprawdź połączenie z internetem (Leaflet pobiera kafelki z OSM)
- Otwórz konsolę przeglądarki (F12) i sprawdź błędy
Następne kroki
- Przeczytaj
TECHNICAL.mddla szczegółów technicznych - Eksperymentuj z różnymi stacjami i przedziałami czasowymi
- Modyfikuj kod backendu aby dodać nowe funkcje
- Customizuj frontend (kolory, style, kontrolki)
Dodatkowe możliwości
Zmiana zakresu danych GTFS
Edytuj backend/download_gtfs.py aby dodać więcej źródeł:
GTFS_SOURCES = {
'polish_trains': 'https://mkuran.pl/gtfs/polish_trains.zip',
'koleje_dolnoslaskie': 'URL_DO_KD_GTFS', # dodaj tutaj
}
Zmiana przedziałów czasowych
W frontend/index.html dodaj nowe checkboxy lub edytuj istniejące.
Zmiana kolorów izochron
W frontend/map.js edytuj obiekt ISOCHRONE_COLORS:
const ISOCHRONE_COLORS = {
30: '#0080ff', // niebieski
60: '#00c864', // zielony
90: '#ffc800', // żółty
// ...
};
Pomoc
- Issues: Stwórz issue w repozytorium
- Dokumentacja: Zobacz
README.mdiTECHNICAL.md - Źródła danych: mkuran.pl/gtfs
Miłej zabawy z izochronami! 🚂🗺️