koleo-izochrona/QUICKSTART.md

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

  1. W polu wyszukiwania wpisz nazwę stacji, np.:

    • "Wrocław Główny"
    • "Warszawa Centralna"
    • "Kraków Główny"
    • "Gdańsk Główny"
  2. Wybierz stację z listy wyników

  3. Zaznacz przedziały czasowe (np. 30, 60, 90 minut)

  4. Kliknij "Oblicz izochrony"

  5. 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.md dla 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.md i TECHNICAL.md
  • Źródła danych: mkuran.pl/gtfs

Miłej zabawy z izochronami! 🚂🗺️