How h1r0007/campus-map works
Это монорепозиторий кампусной карты: редактор команды поддерживает данные кампуса, а навигатор загружает их, помогает выбрать место и строит пошаговый маршрут. README описывает общее доменное ядро и карту, а sampled code подтверждает загрузку, маршрутную логику и сохранение редакторских данных. Подробности UI-слоёв и связей ненабранных функций опираются на README и дерево; неопределённые вызовы не показаны.
Main entry points: loader.ts Нормализация датасета · editorStore.ts Состояние разметки · routeStore.ts Маршрут · storageSlice.ts Сохранение и архив
Components 29
Навигатор
- Приложение viewer
apps/viewer/src/App.tsx - Загрузка датасета
apps/viewer/src/hooks/useDataLoader.ts - Состояние карты
apps/viewer/src/stores/mapStore.ts - Поиск мест
apps/viewer/src/components/UI/SearchView.tsx - Маршрут
apps/viewer/src/stores/routeStore.ts - Шаги навигации
apps/viewer/src/utils/routeInstructions.ts - Карта кампуса
apps/viewer/src/components/Map/CampusMap.tsx - Панель навигатора
apps/viewer/src/components/UI/NavigatorPanel.tsx - Офлайн и обновления
apps/viewer/src/pwa/warmCache.ts
Редактор
- Приложение editor
apps/editor/src/App.tsx - Загрузка данных
apps/editor/src/App.tsx - Состояние разметки
apps/editor/src/stores/editorStore.ts - Редактор карты
apps/editor/src/components/Map/EditorMap.tsx - Проверка данных
apps/editor/src/utils/validateData.ts - Симуляция маршрута
apps/editor/src/stores/editor/routeSlice.ts - Сохранение и архив
apps/editor/src/stores/editor/storageSlice.ts - Черновик браузера
apps/editor/src/utils/draftStorage.ts
Доменное ядро
- Нормализация датасета
packages/core/src/dataset/loader.ts - Граф и связность
packages/core/src/graph/Graph.ts - Поиск путей
packages/core/src/pathfinding/astar.ts - Алиасы и поиск
packages/core/src/aliases/AliasManager.ts - Геометрия и проекция
packages/core/src/projection.ts
Картография
- План этажа
packages/mapkit/src/PixelMap.tsx - Холст кампуса
packages/mapkit/src/WorldMap.tsx - Размещение планов
packages/mapkit/src/PlacedPlan.tsx
Other components
- Студент
- Разметчик
- Каталог кампуса
data - HTTP источник
packages/core/src/dataset/httpSource.ts
Connections 38
- Студент → Приложение viewer: открывает
- Приложение viewer → Загрузка датасета: запускает загрузку
- Загрузка датасета → HTTP источник: создаёт источник
- HTTP источник → Каталог кампуса: читает файлы
- Загрузка датасета → Нормализация датасета: передаёт источник
- Нормализация датасета → Граф и связность: нормализует данные
- Нормализация датасета → Алиасы и поиск: загружает алиасы
- Граф и связность → Состояние карты: инициализирует граф
- Студент → Поиск мест: ищет место
- Поиск мест → Состояние карты: использует места
- Студент → Маршрут: задаёт точки
- Маршрут → Поиск путей: ищет путь
- Маршрут → Состояние карты: переключает область
- Маршрут → Шаги навигации: передаёт маршрут
- Шаги навигации → Панель навигатора: показывает шаги
- Состояние карты → Карта кампуса: передаёт состояние
- Карта кампуса → Холст кампуса: рисует кампус
- Карта кампуса → План этажа: рисует этаж
- Холст кампуса → Размещение планов: размещает планы
- Студент → Панель навигатора: управляет навигацией
- Офлайн и обновления → Каталог кампуса: кэширует ресурсы
- Разметчик → Приложение editor: открывает
- Приложение editor → Загрузка данных: запускает загрузку
- Загрузка данных → HTTP источник: создаёт источник
- Загрузка данных → Нормализация датасета: передаёт источник
- Нормализация датасета → Состояние разметки: передаёт датасет
- Разметчик → Редактор карты: размечает карту
- Редактор карты → Состояние разметки: читает и меняет
- Состояние разметки → Проверка данных: проверяет данные
- Разметчик → Симуляция маршрута: задаёт маршрут
- Симуляция маршрута → Поиск путей: ищет альтернативы
- Симуляция маршрута → Состояние разметки: строит граф
- Разметчик → Сохранение и архив: сохраняет правки
- Сохранение и архив → Каталог кампуса: пишет файлы
- Сохранение и архив → Черновик браузера: сохраняет черновик
- Сохранение и архив → Состояние разметки: собирает датасет
- Алиасы и поиск → Поиск путей
- Геометрия и проекция → Размещение планов: привязывает планы