Как попасть из Ижевска в Москву с CatchYourTicket (блиц-интервью с разработчиками)

avatar Павел
Овчинников
30.09.2014, 18:01
комментировать

nini_Small

Максим Мезенцев («Пиксель») и Иван Кондратьев (ivan-kondratyev.ru) запустили проект CatchYourTicket. Этот сервис поможет вам найти и купить нужный билет на поезд когда, такого билета нет в продаже. Кто-то  сдаст свой билет, или же в продаже окажутся билеты с которых сняли бронь — и CatchYourTicket позволит вам поймать момент.

Сейчас для поиска билетов по типу мест доступны все возможные поезда между городами Москва, Ижевск и Санкт-Петербург, а также поезда из Москвы в Екатеринбург и Нижний Новгород и обратно. В перспективе список таких направлений будет расширяться.

001

Разумеется, мы задали вопросы разработчикам. Максим Мезенцев честно ответил на все:

Ижайти: CatchYourTicket — это же не просто «еще один» билетный сервис? Как вы к нему пришли? Заложен ли в его создание какой-то ваш личный опыт?

Максим: Да, еще один билетный сервис. Вообще, не думал что их много. А их много? Когда приступили к разработке, мы думали только о том, как бы решить проблему с поиском билетов.

Я думаю у каждого была ситуация что нужно срочно съездить в Москву на выходные, а билетов уже нет в продаже. В таких ситуациях начинаешь искать другие варианты, например, через Агрыз или Балезино. Хотя иногда достаточно просто подождать и билет найдется, кто-то может сдать свой билет, или же в продаже окажутся билеты с которых сняли бронь.

Ижайти: Вы делали его только вдвоем? Кто за что отвечал? Привлекали ли еще кого-то? Чем пользовались при создании.

Максим: Процесс такой:

1) Реверс-инжиниринг сайта РЖД;
2) Создание web-api для проксирования запросов к нему;
3) Добавление возможности делать периодические запросы для отслеживания нужных билетов;
4) создание демонстратора интерфейса для работы с web-api;
5) понимание того что надо кэшировать данные о билетах;
6) создание расширения для хрома

Над проектом работали «Пиксель» (это не один человек, а целая команда) и Иван Кондратьев (друг и первый программист «Пикселя»). «Пиксель» — дизайн, вверстка, проектирование (частично), тестирование. Иван — все остальное и самое главное, душа проекта.

Чем пользовались при создании: бэкенд сделан на tornadoweb.org
Для кэширования билетов используется couchdb.apache.org
Расширение для хрома сделано на angularjs.org

Ижайти: Какие планы у вас на CatchYourTicket. Как будете развивать, будете ли на нем как-то зарабатывать?

Максим: В планах: отправка отчетов на почту и более точные запросы в перспективе (поиск конкретных мест, или например только нижние или места с розеткой).  А про монетизацию даже не думали, сделали проект для людей, для себя.

***

Установить расширение для Chrome и инструкция.

Можете пользоваться

Не скупитесь на ретвиты ↓
  • Denis Krylov

    > 1) Реверс-инжиниринг сайта РЖД

    Я бы послушал как конкретно сделали. Мы занимаемся «Реверс-инжиниринг»-ом регулярно, причём не на одном проекте.

    • Иван Кондратьев

      Там нет ничего сложного, но полноценный ответ входит за рамки комментария, поэтому об этом мы напишем потом отдельно. Вообще любой владеющий curl-ом и firebug-ом может сделать это самостоятельно.

      • http://atarity.ru/ Mikhail Sannikov

        Полезная штука, поэтому вот что скажу:

        1. На landing page чудовищные формулировки (ещё и с опечатками), которые порождают кучу вопросов. После первого же предложения хочется спросить «Как я могу купить что-то чего нет в продаже, ведь я простой человек, а не депутат с мигалкой». Ни слова про отмены брони и сданые билеты.

        2. Если мне надоест тупить в 2048 и я пойду спать, будет ли сервис проверять доступность интересующих меня билетов, или для этого мне придётся оставить настольный комп включёным? Перефразирую: есть ли у сервиса серверная часть, или весь опрос сайта РЖД производится самим плагином для Хрома?

        • Иван Кондратьев

          1) :) Для взыскательных пользователей есть еще один текст: chrome.google.com/webstor...fkihcfhokbmelhnb. Там немного подробнее.

          2) В данном посте сказано что бэкенд есть. Запросы к сайту делает именно он. В данном релизе клиента, отслеживание для него заканчивается в момент его отключения (т.е. закрытия браузера). В разработке версия с привязкой емейла. Там этот вопрос решен. Результаты отслеживания придут на почту, в случае отключенного клиента. А при его повторном подключении, автоматически в нем отобразятся.

          • http://atarity.ru/ Mikhail Sannikov

            Про пуш на смартфоны не забудь. Это сейчас, наверное, самый быстрый способ оповестить пользователя о чём-то.

            • Иван Кондратьев

              Мы думаем над созданием мобильного приложения в перспективе. Сейчас оно представляется не таким актуальным, как расширение для браузера, из-за невозможности перейти к покупке найденного билета. У РЖД есть мобильное приложение для покупки, но насколько я понимаю, заставить его сразу перейти на финальную стадию покупки вдруг найденного билета нельзя. А в браузере такое возможно. И это вопрос не только удобства. Само по себе уведомление вовсе не гарантирует получение билета — его еще надо успеть купить.

          • Иван Кондратьев

            Up. Привязка электронной почты работает.

    • Иван Кондратьев

      Кое-что о реверс-инжиниринге: bitbucket.org/JustDelight...0%A0%D0%96%D0%94

      • http://neoasket.tel/ Alex Kalashnikov

        403, «You do not have access to the wiki.» ):

        • Иван Кондратьев

          Исправил.

      • http://extremefrost.wordpress.com/ Алексей Евдокимов

        влом регистрироваться на битбакете, поэтому напишу свой камент тут.

        > Почему нельзя вернуть данные в ответе на первый же запрос?

        >Единственная правдоподобная догадка которая у меня

        > появилась заключается в том, что это просто асинхронное

        > получение результата. Очевидно, совокупное обращение к

        > БД у бэкенда занимает достаточно большое время —

        > несколько секунд

        там идёт обращение к АСУ Экспресс-3. это такое программно-аппаратное поделие с очень богатой историей разработки (больше 20 лет), живущее внутри датацентров ржд в нескольких региональных инстансах (и ещё пара стран ближнего зарубежья его купили).

        если ты большая и толстая организация (например, какая-нибудь европейская железная дорога), тебе могут туда дать прямой доступ за немеряные деньги. собственно, сайт — это лишь шлюз в эту адскую систему, один из многих.

  • http://13f.ru/ Наталья Костицына

    Классно!

  • Дмитрий

    Крутая штука. Буду пользоваться.

    Как я понял, при малейшем изменении на сайте РЖД всё сломается, и web-api придётся переделывать?

    • Иван Кондратьев

      Верно. Хотя существенные изменения на их сайте последний раз были году в 2012-м, когда они перешли от статических страниц к получению данных через AJAX. К мелким изменениям, вроде появления списка страховых компаний, приспособитьтся несложно.

      • Denis Krylov

        Как узнаете, если «что-то пошло не так»? Я имею ввиду есть ли какая-нибудь «система предупреждения» огня изменений.

        • Иван Кондратьев

          Сейчас ее нет, но как руки дойдут думаю прикрутить. В данный момент обхожусь логами. Опять же, РЖД свой сайт меняют не очень часто, поэтому пока что в логах я встречал только последтсвия ошибок в коде, пропущенных тестами :)

          • Дмитрий Яссер

            Спасибо за труды.

  • Владислав Стерлин

    Отличный сервис и начинание!

  • Хелен

    Проехав 3 суток в поезде, захотелось увидеть приложение, которе бы «вело» по маршуруту твоего поезда — говорило бы где когда следущая станция, сколько стоим. Можно бы и гео-информацию — какую речку проезжаем и т.д. А то навигатор предлагает или пешком или по автодороге... Может уже есть такое?

Get Cloud PHP Hosting on CatN