Приложение позволяет увидеть среднюю стоимость использования разных билетов на общественный транспорт Москвы на нагляном двухмерном графике (он же номограмма). По одной оси — поездки на метро, на второй — поездки на наземном транспорте (ТАТ — трамвай, автобус, троллейбус).
👀 Ссылка на работающий сервис: novvember.github.io/mosmetro-tickets
- На горизонтальной оси отметить количество поездок на метро (в среднем за месяц),
- на вертикальной — количество поездок на наземном транспорте (тоже среднее за месяц).
- На пересечении будет точка с информацией об оптимальном билете.
- В целом видны характерные области использования тех или иных билетов
- Видно общую картину билетов (например, некоторые билеты ни в каких ситуациях не выгодны)
Написано на HTML / TypeScript / React.js / Redux и поэтому полностью работает в браузере на стороне пользователя.
Исходные параметры билетов — в файле ./src/data/ticketsData
Параметры расчета — в файле ./src/data/appConfig
. По умолчанию:
- в месяце
30
дней, - рассчитывается график размером до
50
поездок по каждой оси.
-
Для каждого билета сриптом создается поле с его стоимостью использования
-
Такие же поля создаются для сочетаний билетов. Сочетания нужно дополнительно вносить в файл параметров билетов как отдельные билеты.
-
Создается общее поле, в котором для каждой ячейки указаны значения по всем билетам, а также рассчитаны наиболее выгодный билет и другие значения.
-
На странице генерируются график (шкалы на осях, сами ячейки), элементы управления (форма).
-
В ячейки графика на страницу переносится информация из рассчитанного поля.
- HTML5 / CSS3 / BEM
- TypeScript
- React.js
- Redux Toolkit
Сейчас это уже 3-я версия сервиса. Первая версия была на кустарном JS, а вторая — на чистом JS + ООП.
Доступны в тегах проекта.
Сейчас релизовывается минимальная работа сервиса, а также внутренняя реалзиация Redux-хранилища.
Также выполненные, запланированные и далекие задачи можно увидеть на Github Issues. Отдельно отмечены те, что будут выполнены в первую очередь.
Если вы нашли ошибку в расчетах, создайте баг на Github Issues или просто напишите на n.demitsuri@gmail.com.