https://github.com/vladik22611/fasttrack
Система отслеживания водителей (gRPC + Redis)
https://github.com/vladik22611/fasttrack
asyncio grpc grpc-python protobuf python redis
Last synced: about 2 months ago
JSON representation
Система отслеживания водителей (gRPC + Redis)
- Host: GitHub
- URL: https://github.com/vladik22611/fasttrack
- Owner: Vladik22611
- Created: 2025-06-20T08:56:10.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-06-22T18:50:07.000Z (12 months ago)
- Last Synced: 2025-07-01T20:01:41.853Z (12 months ago)
- Topics: asyncio, grpc, grpc-python, protobuf, python, redis
- Language: Python
- Homepage:
- Size: 42 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Система отслеживания водителей (gRPC + Redis)
## Стек технологий
[](https://www.python.org/)
[](https://grpc.io/)
[](https://redis.io/)
[](https://docs.python.org/3/library/asyncio.html)
[](https://developers.google.com/protocol-buffers)
## Описание
Проект представляет собой систему мониторинга водителей в реальном времени с использованием:
- gRPC для связи между компонентами
- Redis для хранения данных и геопространственных запросов
- Asyncio для асинхронной обработки
## Установка
```shell
# Склонировать репозиторий
git clone https://github.com/Vladik22611/FastTrack.git
```
> [!IMPORTANT]
> Для дальнейшей работы понадобится Redis.
> Чтобы его установить выполните в терминале следующую команду:
```shell
# Установка Redis
sudo apt install redis-server -y
```
```shell
# Добавление виртуального окражения и установка зависимостей
python -m venv venv
source venv/scripts/activate
pip install -r requirements.txt
```
## Запуск
```shell
# Запустите Redis(в отдельном терминале)
redis-server
```
```shell
# Запустите сервер(в новом терминале)
python -m server.main
```
```shell
# Запустите клиент водителя (в новом терминале):
python -m clients.driver_client
```
```shell
# Запустите клиент пассажира (в новом терминале):
python -m clients.passenger_client
```
## Взаимодействие компонентов
1. Водитель подключается к серверу и начинает отправлять свои координаты
2. Сервер сохраняет данные в Redis с геопространственным индексом
3. Пассажир запрашивает список доступных водителей в радиусе 5 км
4. Сервер возвращает ближайших водителей со статусом "AVAILABLE"
5. Пассажир выбирает водителя и начинает отслеживать его местоположение
## Настройки
Основные параметры можно изменить в файле config.py
## Автор:
Гречкин Владсислав
[](https://t.me/g_vladislav22)
[](https://github.com/Vladik22611)