Евгений Сайты › Peppers Сбер ID
Сайты, SEO и GEO, реклама, чат-боты, ИИ и дизайн | Москва
Рейтинг
9 371
№ 106 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
11 лет
На сайте с
2016 года
Юридический статус
Самозанятый
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Создание сайта-кабинета для диспетчеров грузоперевозок: переезд с AngularJS на Angular, Angular Material, графики на Chart.js вместо модуля Flex

Используемые навыки Angular AngularJS Angular Material Chart.js Flex

Описание

Веб-кабинет диспетчера региональной компании грузоперевозок переехал с AngularJS на Angular: заявки, рейсы, водители и статусы работают как раньше, а отчёты, жившие в старом модуле Flex, теперь строит Chart.js. Переезд провёл Евгений Росляков. Сайты и веб-приложения он делает с 2016 года, живёт в Москве, но с заказчиками работает и удалённо. Он самозанятый, заключает договор, а для юридических лиц оформляет закрывающие документы.

Кабинетом компания пользовалась лет десять. Писали его на AngularJS, а поддержка этого фреймворка закончилась. Библиотеки не обновить, любая правка грозила сломать соседний экран, и найти человека, который согласится в этом копаться, становилось всё труднее.

С отчётами было ещё хуже. Они жили в отдельном модуле на Apache Flex: это Flash-приложение, и современные браузеры его не открывают. Чтобы посмотреть загрузку машин за месяц, диспетчеры включали старый компьютер в углу офиса. Держали его только ради одного модуля.

По сути, компании нужно было получить свой кабинет заново: создание сайта с теми же экранами, но на живой технологии. При этом заявки идут каждый день, и «закрыться на ремонт» диспетчерская не могла.

Решение

Переписывать всё сразу я не стал. Новый кабинет на Angular поставил рядом со старым, а экраны переезжали по одному: сначала список водителей, потом справочник машин, затем заявки и рейсы. Вход общий, так что диспетчер не замечал границы: пункт меню вёл то на старый экран, то на новый. Каждый перенесённый экран две недели работал параллельно со старым, чтобы сотрудники могли сверить цифры.

Интерфейс собран на Angular Material. Таблицы заявок с сортировкой и постраничной выдачей, фильтры по дате, водителю и статусу, диалоги для смены статуса рейса и назначения машины. Диспетчеры сидят в кабинете по восемь часов, поэтому плотные строки и работа с клавиатуры оказались важнее красоты: Tab ходит по полям, Enter подтверждает диалог.

Отчёты по рейсам — отдельная история. Из исходников модуля Flex я выписал, что он считал: загрузку машин по дням, простои, пробег порожняком, рейсы по водителям. Формулы перенёс в новый код, а графики теперь рисует Chart.js. Их можно сохранить картинкой и приложить к письму бухгалтерии. Тяжёлые расчёты вынес на сервер, чтобы страница не зависала на длинных периодах.

Когда переехал последний маршрут, код на AngularJS отключили. Несколько отчётов, которыми давно никто не пользовался, переносить не стали: диспетчеры сами сказали, что они не нужны.

Результат

Диспетчеры теперь работают в одном кабинете и не переключаются между старым и новым. Компьютер в углу офиса выключен: отчёты по рейсам и загрузке машин открываются в любом браузере, в том числе на планшете у руководителя. Картинку с графиком можно отправить бухгалтерии, не делая скриншот с чужого экрана.

Для разработчика изменилось главное: фреймворк живой, обновления выходят, а компоненты одинаковые во всех разделах. Новый экран собирается из знакомых деталей, а не вклеивается в чужой код. Это пригодится дальше: компания думает о мобильной версии для водителей, и теперь на чём её строить, понятно.

Есть и честное ограничение. Цифры в новых отчётах первые недели сверяли со старыми вручную, и это занимало время диспетчеров. Старые данные за прошлые годы остались в базе, но отчёты по ним считаются уже по новым формулам, поэтому в редких случаях разница в округлении видна. Для работы это не критично, но о ней лучше знать заранее.

Если у вас рабочая система застряла на устаревшей технологии, пришлите мне сообщение на freelance.ru: напишите, на чём она сделана и что в ней нельзя останавливать. Отвечу, можно ли переезжать по частям.

Оценили проект:

Другие проекты

Все проекты →
Маркетинг и Продвижение GEO-продвижение производителя модульных домов в России и Казахстане: страницы-ответы для нейросетей, AEO, SEO-аудит и версия сайта для Казахстана
GEO-продвижение производителя модульных домов в России и Казахстане: страницы-ответы для нейросетей, AEO, SEO-аудит и версия сайта для Казахстана
91
Веб-разработка и IT Кластер в облаке для онлайн-кинотеатра: управляемый Kubernetes, инфраструктура на Terraform, Ansible, Мониторинг Prometheus и Kibana
Кластер в облаке для онлайн-кинотеатра: управляемый Kubernetes, инфраструктура на Terraform, Ansible, Мониторинг Prometheus и Kibana
29
Дизайн и Брендинг Детская книга сказок о море от художника книги: раскадровка разворотов, глава-шторм в стиле манги, карикатура и мультфильм-трейлер, иллюстрации в Krita, герои без лиц
Детская книга сказок о море от художника книги: раскадровка разворотов, глава-шторм в стиле манги, карикатура и мультфильм-трейлер, иллюстрации в Krita, герои без лиц
33
Веб-разработка и IT Корпоративный сайт Novaline: агентство мерчандайзинга, B2B-маркетинг, прототипирование, вёрстка на HTML5 и CSS3, оптимизация скорости страницы
Корпоративный сайт Novaline: агентство мерчандайзинга, B2B-маркетинг, прототипирование, вёрстка на HTML5 и CSS3, оптимизация скорости страницы
191