- PVSM.RU - https://www.pvsm.ru -

Бомбила бот для Telegram или как родился LibreTaxi

Я второй год жил в Сан-Франциско. Денег хватало ровно на то, чтобы оплатить квартиру, что-то поесть и доехать до работы. Все мои заявки на стартапы были отклонены в YCombinator и других стартап-инкубаторах. В ближайшее время мне не светила ни лучшая чем у меня есть работа, ни свой стартап. Мне позарез нужна была какая-то идея.

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

И тут как гром в чистом небе появился он… Да, дорогие друзья, как вы, наверное догадались это был…

Паша Дуров с его конкурсом. Нет, я не встретился с ним лично, а всего лишь увидел о конкурсе для разработчиков Телеграм ботов. Это было в Апреле 2016 и по условиям надо было сделать своего бота до конца года. Предлагаемые деньги для Долины были не такими уж и большими, но тут совпало сразу несколько факторов.

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

Во-вторых, у меня было большое желание что-то, наконец, сделать. Я давно ничего не делал для себя и всего лишь работал на дядю составляя программы для ЭВМ на ЯВУ ruby и javascript.

В-третьих, конкурс. Шанс есть шанс, а вдруг получится? Однажды я уже использовал шанс — выиграл грин-карту в лотерею. Играл пять лет, но все-таки получилось. Может быть и в этот раз получится?

Ну и самое главное — я всегда хотел сделать приложение, которое бы работало под все платформы. И на десктопе, и на андроиде, и на айфонах, и в вебе. Что-то более или менее серьезное можно было сделать только потратив колоссальное количество ресурсов, которых у меня не было. Поэтому до каких-то пор это было лишь далекой мечтой. Но с появлением платформы для разработки ботов в Телеграме все поменялось.

Game changer

Да, Telegram стал game changer'ом. Посудите сами:

1. Пишешь 1 раз, работает сразу на всех устройствах. Это относится и к «сложной» функциональности: кнопки, меню, карты, картинки и т.д.

2. Встроенная система регистрации, если юзер обратился к боту, значит он уже зарегистрирован, его номер телефона подтвержден, анти-спам проверка пройдена

3. Готовый профиль: аватарки, возможность блокировки

4. Готовая и мощная система общения, которая является основой Телеграма. По сути пользователи могут общаться между собой. Если бы ее не было, в приложении бы пришлось реализовывать свою систему сообщений (которая бы наверняка не включала такие фишки как аудио-заметки).

Плюс кое-что еще. Другими словами, появился шанс без особых усилий и лишних трат и так скудных ресурсов создать MVP какого-либо продукта. Теперь нужна была идея!

На пути к MVP

Что же такого сделать? Где взять идею? Обстоятельства сложились сами, удача приплыла мне в руки и я за нее ухватился.

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

Кому нужен еще один Убер? Кому под силу конкурировать с 1000 программистами, которые сидят в одном здании на 555 Market street? Какие конкурентные преимущества должны быть у продукта, чтобы им пользовались люди? Откуда возьмутся деньги на маркетинг?

Я думал и размышлял, одновременно получая вести с Родины. А на Родине было все по-прежнему. Безработица увеличивалась, люди шли в такси. Один хороший друг, бывший трейдер, стал бомбилой в Питере, накопил за сезон немного денег и зимой уехал в Гоа. И у меня родилась идея и даже название для проекта!

Бомбила бот!

Почитывая новости в США про Убер я думал — регуляции, регуляции, опять эти регуляции. Там Убер запретили, тут хотят запретить, тут забастовки. А кто запретит бомбил? Никто, они как были, так и останутся всегда. Им нужно решение, недорого, без регистрации и смс.

Но находясь в Америке моя рука не поднялась назвать проект «Бомбила», и имя @bombila_bot на момент написания этого поста еще доступно в Телеграме. Я назвал его кодовым именем CheapTaxi, дешевое такси, и начал думать над реализацией, попутно советуясь со своим другом, настоящим бомбилой из Питера.

Терни реализации

Телеграм, как платформа, дает многое. Но взамен многое забирает. Хорошо это или плохо? С одной стороны плохо. Ты не можешь сделать такой вещи как, например, постоянное отслеживание локации. С другой стороны, это стимулирует тебя не нагружать интерфейс, делать вещи проще.

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

* Бот должен быть мультиязычным. Я люблю русский язык, но я уже наполовину американец — через пару лет получу заветный паспорт. Мультиязычность для меня очень важна.

* Бот должен быть бесплатным. Я не могу конкурировать с Убером, т.к. моих ресурсов хватает только на поддержание собственного существования в пространстве и времени. Лишних денег нет, взять их негде, вера в инвесторов была подпорчена неудачным опытом в прошлом. Поэтому только бесплатно, заодно и меньше программировать.

* Бот должен быть с открытым исходным кодом. Денег на маркетинг нет, как конкурировать на рынке? Кому нужен еще один продукт, как конкурировать с теми 1000+ разработчиков, которые сидят на 555 Market street? Надежда на open source коммьюнити. Меня вдохновило видео от создателя Rocket Chat, который рассказывал о том, как JS и фреймворк Meteor помог привлечь серьезный интерес со стороны людей со всего мира к его проекту.

* Бот должен быть на самом популярном языке — JavaScript, чтобы люди могли менять, исправлять, фиксить баги. Остановился на стандарте ES6, все равно по работе нужно его было более углубленно выучить.

* Бот должен быть с «нормальной» лицензией, которая позволяет делать все с исходным кодом. Остановился на MIT.

* Архитектура должна быть построена таким образом, чтобы при бане в Телеграме потребовались минимальные усилия для портирования его на другую платформу. Я, конечно, верю в Пашу Дурова и его принципы, надеюсь, что не придется портировать бота куда-либо еще. Но кто знает? Проекты покупаются, продаются, люди меняются. Если уж вкладывать усилия, то так, чтобы они не пропали потом. Поэтому начал разработку вообще для консоли. Первые 7 из 9 месяцев разработки Telegram API даже не трогал.

* Как еще я могу конкурировать с Убером, какие у меня сильные стороны? Мне надо двигаться быстро. Чтобы было меньше ошибок, нужны были хорошие тесты. Поэтому изначально стремился к максимальному покрытию. На практике оказалось, что инструменты для моего test runner'a (ava) все равно считают покрытие неправильно. Да и если покрытие 100%, то это лишь красивая циферка, которая на практике совсем не означает 100%. Поэтому измеритель отрубил, и стал просто покрывать тестами исходя из здравого смысла. К слову, получилось это неплохо. За все время разработки я ни разу не запускал отладчик, т.к. все равно ничего не ломалось.

Квантовый скачок времени

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

Типичный день выглядел так: подъем в 6:20, выход на работу в 7 утра. С 8 до 5 работа. В 6 вечера домой, с 6 до 9 или с 7 до 10 вечера — бот. На большее не хватало. Но иногда бывали праздники, выходные, на них я тоже программировал.

Было желание все бросить, особенно в самом начале, когда понимал СКОЛЬКО оставалось всего сделать. Но потом все-таки продолжал, разбивая задачу на мелкие подзадачи. Успокаивал себя тем, что если не успею до конца года, то не буду переживать. К слову, конкурс продлили до 2017. И я благодарен команде Телеграм за то, что они не объявили об этом в июне. Дедлайн работал на меня и подстегивал делать быстрее.

К слову, 29 декабря я засабмитил своего работающего бота на конкурс, получил своих первых 300 пользователей, протестировал в разных регионах мира, получил первый фидбек, хороший проект для добавления в свое резюме, значительную дозу эндорфина, и вообще у меня создалось ощущение, что 2016 прошел не зря.

Новое название — LibreTaxi

Я перепробовал много названий, обычно все домены были заняты. Но по аналогии с LibreOffice решил назвать его LibreTaxi — бесплатная альтернатива Уберу с исходным кодом, также как и LibreOffice был (и есть) бесплатной альтернативой Office с исходным кодом.

Что в итоге получилось

Получился телеграм-бот а-ля Uber/Яндекс.Такси, в котором:

* Бесплатная регистрация для всех водителей, сервис не берет денег в отличие от корпораций
* Можно торговаться и задавать цену
* Регистрация за 1 минуту без аппрува
* Водители могут задавать радиус для уведомления о заказах вокруг
* Люди могут создавать ботов для своих регионов на основе имеющегося исходного кода

Предлагаю вам посетить домашнюю страничку бота в Интернете, где вы сможете скопировать программу себе на НЖМД или дискету, ознакомиться с документацией и исходным кодом:

libretaxi.org/index-ru.html [1]

А можно добавить сразу в Телеграм: telegram.me/libretaxi_bot [2]

Если вам понравился проект, поставьте звездочку на гитхабе [3], напишите емайл или комментарий, расскажите знакомым бомбилам или помогите перевести бота на другие языки (сейчас очень нужен перевод на фарси, китайский, испанский).

Автор: Gangsta

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/upravlenie-razrabotkoj/228973

Ссылки в тексте:

[1] libretaxi.org/index-ru.html: http://libretaxi.org/index-ru.html

[2] telegram.me/libretaxi_bot: https://telegram.me/libretaxi_bot

[3] гитхабе: https://github.com/ro31337/libretaxi

[4] Источник: https://habrahabr.ru/post/318920/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best