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

Базовый вариант использования

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

  • Он знает, что поезд, который ему нужен, прибывает каждые 20 минут, начиная с 15:00.
  • Ему нужно 7 минут, чтобы пройти туда.

Так что, если он хочет уйти в 17:30, то ближайшим временем отправления будет 17:40. Если ему потребуется 7 минут, чтобы пройти туда, он должен уйти в 17:33. Так что, вероятно, ему было бы полезно получить «Заканчивай то, что ты делаешь!» напоминание на 10 минут раньше, в 17:23.

Просто, верно?

Но что делать, если он занят? Вероятно, ему следует получить опцию «Следующая поездка», которая автоматически перенесет желаемое время отправления на следующую.

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

Как вы будете зарабатывать деньги?

Всегда задавайте этот вопрос.

План после создания независимой версии, подходящей для любого места, состоит в том, чтобы получить данные GTFS (Google Transit Specification Feed) и позволить людям при желании создавать напоминания о фактических расписаниях общественного транспорта. Мы планируем развернуть и поддерживать это в Сент-Луисе бесплатно, а затем, возможно, в зависимости от усилий, позволяющих другим регионам платить за местную поддержку.

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

Однако, в конечном счете, если я смогу развернуть это так, как хочу, это докажет, что я могу использовать этот технический стек для выполнения того же объема работы, который обычно выполняется командой из 5–6 человек. Таким образом, это в основном послужит доказательством концепции чистых консалтинговых контрактов.

В конце концов, я строю это в первую очередь для своего папы, так что все остальные возможности — это бонусы.

Технический стек/реализация

На момент написания этой статьи Rails 5 был выпущен только вчера. Вместе с ним выходит Turbolinks 5, который теперь включает собственные адаптеры, позволяющие запускать существующее приложение Rails на собственных платформах. При необходимости вы можете переопределить код веб-приложения и подключить полностью собственные функции.

Таким образом, общий путь развития будет таким:

  • Веб-приложение Rails 5
  • iOS-приложение
  • Android-приложение

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

Почему блог?

Это все, пока.