An open API service indexing awesome lists of open source software.

https://github.com/zyxxie-creator/routes_app

Test task "Application for displaying routes on the map"
https://github.com/zyxxie-creator/routes_app

Last synced: 8 months ago
JSON representation

Test task "Application for displaying routes on the map"

Awesome Lists containing this project

README

          

# Тестовое задание "Приложение по отображению маршрутов на карте"

![Alt Text](demo.gif)

* Задача:

Используя заданный набор маршрутов (таблица 1), реализовать экран, в котором слева будет таблица со списком маршрутов, а справа карта. При выборе в таблице строки с маршрутом, выбранная строка должна подсветиться, а на карте должны отобразиться точки маршрута в виде маркеров и полилиния (polyline) трека движения по точкам маршрута, полученная из сервиса построения треков по дорогам OSRM (или другой). При выборе маршрута в таблице, на карте происходит центрирование и масштабирование таким образом, что весь маршрут должен попасть в область видимости карты. Одновременно на карте может отображаться только один маршрут – выбранный.

Для получения полилиний (polylines) маршрута можно использовать API OSRM:

http://project-osrm.org/docs/v5.5.1/api/?language=cURL#route-service

Таблица 1 – Список маршрутов
![alt text](https://lh6.googleusercontent.com/zdU-TXBegzRLuiy-ktXF_BhLa70AjYsp19Sts3XggXYKotfUF6WctpTMkB9nEiq3OOSOjRjwdIvbY185a-5KjNbvK1Wab3DvZXVFdonVZKPmRlB586Uamuz9EuzNOrTF3g=w740)
## Разработка решения
## Выбор и настройка основы приложения:

* Рассмотреть React Create App или Vite в качестве основы приложения.
* Создать проект и настроить окружение.
## Установка необходимых пакетов:

* Установить и настроить Leaflet для отображения карты.
* Установить AntDesign для использования компонентов.
* Установить Redux (redux-toolkit) для хранения стейта компонентов и данных.
* Установить Sagas для реакции на события.
## Разработка функциональных компонентов:

* Создать функциональные компоненты для различных частей приложения.
* Разбить код по каталогам: components, selectors, reducers, sagas, HTTP-services, helpers, и т.д.
## Использование Sagas для получения трека по точкам:

* Реализовать Sagas для обработки событий и запросов данных.
* Использовать Sagas для получения трека по точкам с API.
## Обработка ошибок от HTTP-сервисов:

* Учесть возможность ошибок при обращении к HTTP-сервисам.
* Настроить обработку ошибок и сообщений об ошибках для пользователей.
## Написание стилей:

* Использовать препроцессор SASS/LESS для написания CSS-стилей.
* Реализовать стилизацию компонентов и элементов интерфейса.
## Проверка и тестирование:

* Провести тестирование приложения, включая компонентные и интеграционные тесты.
* Убедиться, что все функции работают должным образом.
## Оптимизация и завершение:

* Произвести оптимизацию кода и устранение возможных узких мест.
* Завершить разработку приложения и убедиться в его работоспособности.
## Документация:

* Добавить комментарии к коду для улучшения его читаемости.

* Тестирование производительности:

* Протестировать производительность приложения и внести необходимые изменения для оптимизации.