Комплексна GIS (геоінформаційна система) для транспорту, що складається з трьох основних модулів:
- Analytics Map - аналіз маршрутів та теплових карт
- Live Map - моніторинг водіїв у реальному часі
- Taxi Map - симуляція замовлення таксі
- Виділення: Інструмент виділення довільних областей на карті.
- Аналітика: Аналітика маршрутів та швидкості.
- Теплові карти: Візуалізація гарячих точок активності (Heatmaps).
- Перехрестя: Розрахунок та візуалізація точок перетину маршрутів.
- Реальний час: Відображення водіїв на карті через WebSockets.
- Керування: Перемикання статусу вантажу (cargo) з миттєвим оновленням.
- Історія: Відтворення переміщень (rewind) за часовими мітками.
- Трекінг: Візуалізація активних маршрутів.
- Backend: Django, DRF, Django Channels, Daphne, WebSockets, ASGI.
- Frontend: TypeScript, Leaflet, Bootstrap 5, Vite, NPM.
- Database: PostGIS, Redis.
- Maps: GeoJSON, Nominatim, OSRM, CartoDB.
├── accounts/ # Кастомні юзери та профілі, oauth
├── assets/ # TypeScript файли та конфігурація Vite
├── rides/ # Логіка моніторінгу та статистики
├── vehicles/ # База автомобілів (fleet)
├── templates/ # Базові та специфічні Django шаблони
└── static/ # Статичні ресурси
Клонуйте репозиторій:
git clone https://github.com/imgVOID/uber_django_leaflet/tree/main
Створіть оточення Python:
python -m venv .venv
Активуйте його:
- Linux/macOS:
source .venv/bin/activate - Windows:
.venv\Scripts\activate
Встановіть бібліотеки:
pip install -r requirements.txt
Запустіть базу PostGIS на звичайному порті та виконайте міграції
python manage.py migrate
Створіть супер юзера:
python manage.py createsuperuser
Створіть фікстури:
python manage.py loaddata {fixtrename}
Запустіть бекенд:
python manage.py runserver
Запустіть фронтенд:
npm install && npm run dev
Запустіть клієнта, який імітує переміщення по мапі. Основне використання: створення маршруту по доставці карго, тест вебсокета, візуальний тест переміщення автомобіля по мапі.
python websocket_test_driver.py
- Live view дозволяє операторам спостерігати за загальним станом парку транспортних засобів на 2D-мапі.
- Візуалізація поточної та останньої швидкості транспортного засобу.
- Візуалізація поточного стану транспортного засобу, включно з іконками для подій на кшталт пробитого колеса, низького рівня пального та інших аварійних ситуацій.
- Візуалізація маршруту транспортного засобу від останньої точки, де він завантажив вантаж клієнта, в реальному часі.
- Перемотування часу назад для перегляду стану усіх транспортних засобів у конкретний момент часу, до 6 місяців у минулому.
- Відображення середньої швидкості вибраного транспортного засобу.
- Відображення найбільш популярної дороги у вказаній області.
- Відображення середньої швидкості автомобілів на найбільш популярній дорозі, серед обраних транспортних засобів, які раніше використовували цей маршрут.
- Відображення місця, де транспортні засоби найчастіше завантажувалися вантажем у вибраній області, у форматі heatmap.
- Відобразити всіх маршрутів, які починаються у вибраній області.
- Відображення перехресть між маршрутами в обраній області.
- Відображення всіх початкових точок маршрутів у вибраній області у вигляді heatmap (в даній архітектурі ідентично підбору карго).

