koleo-izochrona/QUICKSTART.md

189 lines
3.7 KiB
Markdown

# 🚀 Quick Start Guide
## Wymagania
Upewnij się, że masz zainstalowane [uv](https://docs.astral.sh/uv/):
```bash
# 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
```bash
./setup.sh
```
Lub ręcznie:
```bash
cd backend
uv venv
uv pip install -r requirements.txt
uv run download_gtfs.py
```
### 2. Uruchom backend
```bash
./run.sh
```
Lub ręcznie:
```bash
cd backend
uv run app.py
```
Serwer uruchomi się na `http://localhost:5000`
### 3. Otwórz frontend
**Opcja A** - Bezpośrednio w przeglądarce:
```bash
firefox frontend/index.html
# lub
open frontend/index.html # macOS
```
**Opcja B** - Przez serwer HTTP (zalecane):
```bash
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
```bash
# 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:
```bash
python examples/api_examples.py
```
## Rozwiązywanie problemów
### Błąd: "Nie znaleziono pliku GTFS"
```bash
cd backend
uv run download_gtfs.py
```
### Błąd: "ModuleNotFoundError"
```bash
cd backend
uv pip install -r requirements.txt
```
### Błąd: "uv: command not found"
```bash
# 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ł:
```python
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`:
```javascript
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](https://mkuran.pl/gtfs/)
---
**Miłej zabawy z izochronami! 🚂🗺️**