Files
enduro-trails/README.md
claude-bot 00fb1c0413
All checks were successful
CI / lint (pull_request) Successful in 3s
CI / test (pull_request) Successful in 5s
CI / build (pull_request) Successful in 2s
docs: fix inconsistencies after ET-006 review
- README: add GPX upload feature to fiche list and intro section
- CLAUDE.md: clarify ADR convention (per-work-item vs global)
- ET-005: add YAML frontmatter to business request
- PH-7: document F-07/F-08 done, F-10 pending in phase BRD
- docs/architecture: add client modules table (app.js, units.js, gpx.js)
2026-05-22 20:22:06 +03:00

94 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Enduro Trails 🏍️
OSM-карта с фокусом на грунтовые дороги для построения эндуро-маршрутов.
## Что это
Обычные карты оптимизированы под автомобили — асфальт яркий, грунтовки не видны. Enduro Trails переворачивает логику: **грунтовки и тропы — главный слой**, асфальт — тусклый фон.
Приложение помогает:
- Найти грунтовые дороги в любом районе
- Построить маршрут с максимумом грунта и минимумом асфальта
- Оценить сложность (grade 1-5, покрытие, уклон)
- Найти живописные места (озёра, виды, руины, броды)
- Загрузить свой GPX-трек и просмотреть его с профилем высот и статистикой
- Экспортировать маршрут в GPX для навигатора
## Демо
https://openclaw.mva154.duckdns.org/enduro/
## Фичи
- 🗺️ **Карта грунтовок** — MapLibre GL JS, кастомный стиль, тёмная/светлая тема
- 🛤️ **Маршрут** — до 5 альтернатив с разным балансом грунт/асфальт, промежуточные точки
-**Красивый маршрут** — замкнутый круг через живописные POI
- 🔗 **Связка** — соединить два трека грунтовками
- 🔍 **Разведка** — статистика грунтовок в радиусе 20/50/100 км
- 📏 **Линейка** — измерение расстояний на карте
- 📍 **Метки** — сохранение точек интереса
- 🏔️ **Рельеф** — гипсометрия + hillshade (SRTM 30м)
- 📊 **Статистика** — % грунта/асфальта, время, дистанция
- 📂 **GPX загрузка** — импорт треков с профилем высот, статистикой и сохранением при смене стиля карты
- 📥 **GPX экспорт** — трек + waypoints для навигатора
- 🌙 **Тёмная тема** — авто (по закату), ручная, синхронизация карты и UI
## Стек
| Компонент | Технология |
|-----------|-----------|
| Frontend | MapLibre GL JS + vanilla JS |
| Backend | Python 3.12 + FastAPI + uvicorn |
| БД | SQLite + Spatialite (1.1M треков, 14K POI) |
| Роутинг | OSRM с кастомным эндуро-профилем |
| Тайлы | Self-hosted raster (terrain, hillshade, TRI) |
| Контейнеризация | Docker + Compose |
| CI | Gitea Actions |
## Регион
ЦФО + Чувашия (расширение по запросу)
## Быстрый старт
```bash
make dev # поднять локально (Docker Compose)
make test # запустить тесты
make lint # линтеры
make build # собрать Docker-образ
```
## Структура
```
src/api/ — FastAPI backend (маршруты, тайлы, поиск)
src/web/ — фронтенд (MapLibre, UI)
tests/ — тесты (unit, integration, e2e)
docs/ — документация, ADR, work-items
scripts/ — утилиты
migrations/ — миграции БД
.openclaw/ — system prompts агентов
```
## Фазы
| # | Название | Описание |
|---|----------|----------|
| PH-1 | MVP | Карта грунтовок + MVT тайлы |
| PH-2 | Routing | OSRM роутинг + базовый UI |
| PH-3 | Smart Route | Альтернативы, статистика, GPX |
| PH-4 | Advanced Routing | Красивый маршрут, связка, разведка |
| PH-5 | Redesign | Тёмная тема, mobile UI, UX |
| PH-6 | Terrain | Hillshade + гипсометрия + TRI |
| PH-7 | Barriers | Шлагбаумы, тротуары, слой препятствий |
| PH-8 | Elevation Profile | Профиль высот, режим «Горка» |
| PH-9 | PWA | Офлайн режим |
Детали каждой фазы: [docs/phases/](docs/phases/)
## Лицензия
Данные: © OpenStreetMap contributors (ODbL)
Рельеф: NASA SRTM (Public Domain)