Skip to content

Latest commit

 

History

History
64 lines (36 loc) · 4.21 KB

README.md

File metadata and controls

64 lines (36 loc) · 4.21 KB

Визуализатор проездных билетов Москвы

Приложение позволяет увидеть среднюю стоимость использования разных билетов на общественный транспорт Москвы на нагляном двухмерном графике (он же номограмма). По одной оси — поездки на метро, на второй — поездки на наземном транспорте (ТАТ — трамвай, автобус, троллейбус).

👀 Ссылка на работающий сервис: novvember.github.io/mosmetro-tickets

Как пользоваться

Найти самый выгодный билет

  1. На горизонтальной оси отметить количество поездок на метро (в среднем за месяц),
  2. на вертикальной — количество поездок на наземном транспорте (тоже среднее за месяц).
  3. На пересечении будет точка с информацией об оптимальном билете.

Смотреть и изучать

  • В целом видны характерные области использования тех или иных билетов
  • Видно общую картину билетов (например, некоторые билеты ни в каких ситуациях не выгодны)

Как это работает

Написано на HTML / TypeScript / React.js / Redux и поэтому полностью работает в браузере на стороне пользователя.

Исходные параметры билетов — в файле ./src/data/ticketsData

Параметры расчета — в файле ./src/data/appConfig. По умолчанию:

  • в месяце 30 дней,
  • рассчитывается график размером до 50 поездок по каждой оси.
  1. Для каждого билета сриптом создается поле с его стоимостью использования

  2. Такие же поля создаются для сочетаний билетов. Сочетания нужно дополнительно вносить в файл параметров билетов как отдельные билеты.

  3. Создается общее поле, в котором для каждой ячейки указаны значения по всем билетам, а также рассчитаны наиболее выгодный билет и другие значения.

  4. На странице генерируются график (шкалы на осях, сами ячейки), элементы управления (форма).

  5. В ячейки графика на страницу переносится информация из рассчитанного поля.

Стек технологий

  • HTML5 / CSS3 / BEM
  • TypeScript
  • React.js
  • Redux Toolkit

Сейчас это уже 3-я версия сервиса. Первая версия была на кустарном JS, а вторая — на чистом JS + ООП.

Предыдущие версии

Доступны в тегах проекта.

План развития, чеклист

Сейчас релизовывается минимальная работа сервиса, а также внутренняя реалзиация Redux-хранилища.

Также выполненные, запланированные и далекие задачи можно увидеть на Github Issues. Отдельно отмечены те, что будут выполнены в первую очередь.

Контакты, сообщить об ошибке

Если вы нашли ошибку в расчетах, создайте баг на Github Issues или просто напишите на n.demitsuri@gmail.com.