Проект: Записки каршеровода  Публичный пост
6 июня 2021     531   
Записки каршеровода

Расскажите о себе и сути проекта?

Всем привет!

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

Карточка автомобиля может выглядеть примерно вот так:

Карточка автомобиля
Карточка автомобиля

Как появилась идея? Что вдохновило?

Каршеринг добрался даже до нашей глубинки —до Новосибирска) Оказалось, что это чертовски удобно, когда ты можешь спокойно взять машину на 1 час, съездить куда тебе нужно и припарковать машину, где тебе удобно. После про нее уже можно просто забыть.

Все началось с желания не попадаться на плохие машины в каршеринге. Завели список в Google keep, чтобы можно было его совместно с женой пополнять. Это выглядело как-то так:

Домашняя база машин
Домашняя база машин

У такого подхода сразу несколько минусов:

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

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

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

Но в первую очередь я решал именно свою задачу: мне и моей жене хотелось ездить на хороших машинах в каршере.

Что вошло в прототип и сколько времени на него было потрачено?

Конечно же первой мыслей было — хочу супер-дупер веб-апку, чтобы PWA, чтобы крутая авторизация, чтобы много еще всякого «чтобы». Я что, не инженер?)

Все же здравый смысл возобладал над инженерным безумством у меня в голове. В итоге я принял решение: сделаю только какой-то базовый API, а в качестве UI — Telegram-бот. Про стек уже подробнее ниже.

Всю работу я разделил на 4 этапа:

  • Задачи до первого закрытого релиза, который я покажу нескольким хорошим знакомым, кто пользуется каршерингом.
  • Правки после первых отзывов о боте, доработки по фичам до публичного релиза.
  • Публичный релиз.
  • Реализация всего того, что не успел сделать ранее.

Начал я работу с того, что нарисовал все сценарии работы с ботом в Excalidraw. Получилось примерно так:

Сценарии работы с ботом (лучше не всматриваться в текст)
Сценарии работы с ботом (лучше не всматриваться в текст)

Такая схема здорово облегчила дальнейшую разработку. Рекомендую!

Какой технологический стек вы использовали? Почему?

Как я уже отметил ранее, в качестве UI был выбран Telegram. Это оказалось отличным решением, так как решалось сразу несколько задач:

  • Понятно как делать интерфейс взаимодействия с пользователем, понятны ограничения. Не надо рисовать/придумывать/искать дизайн.
  • Авторизация из коробки.
  • Работа с любыми файлами из коробки. Нет нужды в S3 или еще в чем-то подобном.
  • Там уже есть пользователи, которым будет достаточно легко начать пользоваться ботом.

Использовать чистый API телеграмма я не хотел. Еще не было понимания, как лучше структурировать проект. Что же выбрать для написания своего бота?

«С этим вопросом я вышел в интернет». Тут все оказалось достаточно просто. Google → «nodejs telegram framework» → открываем первую ссылку. На первом месте был telegraf.

В качестве хранилища данных выбрал PostgreSQL, так как ранее работал с этой БД + она мультипарадигменная: хочешь — клади JSON, хочешь — строй реляционную модель.

Ну и все это писалось на TypeScript. Люблю, когда есть типы)

Сразу назову NPM-пакеты, которые вам точно пригодятся:

  • telegraf-throttler Пакет наобходим, так как имеются лимиты по отправке сообщений ботом. Либо можно сделать свой сервер для бота, но это уже не совсем простая история.
  • telegraf-session-local Must have, если у вас есть какие-либо сценарии с контекстом. Например, добавляет пользователь отзыв. Добавление состоит из нескольких шагов: кол-во звезд и текст отзыва. Вот пользователь дал оценку в звездах, а вы в этот момент перезапустили бота. Бот уже не будет знать, что пользователь находится в стадии принятия текстового отзыва. Чтобы этого избежать, текущий контекст можно сохранить с помощью telegraf-session-local.

Уверен, подобные же штуки есть и для других языков программирования.

Как вы запускались и искали первых пользователей?

Запуск был в два этапа. Сначала я показал бота своим знакомым, кто активно использует каршеринг. Ребята сразу предложили упростить некоторые вещи, например, сделать добавление отзыва всего в 3 шага (звездочки, текст и фото), вместо 7 шагов. Провели вычитку текстов) У меня даже была отдельная задача, вычитать весь текст перед публичным релизом. Но ребята справились сами.

Собственно они и были первыми пользователями. Пока ребята тыкали бота, добавляли отзывы/фотки выяснилось несколько проблем с ботом. Например, из особенно интересного: если вы захотите отобразить несколько фотографий в одном альбоме, то придется разбивать эти альбомы на пачки по 12 фотографий в каждом. Я вот плохо прочитал об этом в доке к API телеграмма, и бот сломался после добавления 13 фотографий).

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

С какими самыми неожиданными трудностями пришлось столкнуться?

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

Все же у меня пользователей совсем чуть-чуть (изначально вообще для себя и друзей делал). Я решил просто честно описать, какие персональные данные используются в боте и как они используются. Кажется, это всегда правильно и уважительно по отношению к пользователям. А уж если все пойдет в гору, то тогда и юридически все оформим.

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

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Потрачено 5 дней разработки + 5$ на сервер (пока что 5, так как бот только месяц существует). Заработано 0$. Но отзывы из бота уже позволили мне один раз не взять машину с плохим кондером в жару. Если честно, этот факт греет куда больше, чем заработанная копеечка. Хотя и копеечке я был бы рад).

Идей, как заработать пока особо нет. В идеале замутить бы какую-нибудь коллаборацию с операторами каршеринга в РФ и не только.

Какие планы на будущее?

Технологически:

  • Сделать извлечение фактов из отзывов (Привет Томита-парсер).
  • Приложения для Andorid/IOS. В одном из телеграмм-каналов про каршеринг нашелся разработчик под мобильные платформы, который согласился сделать первую версию. Просто у него эта идея тоже была в голове уже. Решили объединить усилия.
  • Создание полноценного API.

Продуктово:

  • Собирать отзывы/фото машин. Привлекать аудиторию.
  • Попытаться как-то связаться с операторами каршеринга в РФ. Может что-то из этой связи выгорит полезное.

Нужны ли какие-то советы или помощь Клуба?

Еще как!

Во-первых, заходите и добавляйте отзывы/фото каршеринговых машин)

Во-вторых, что посоветуете по развитию комьюнити, как мотивировать других людей писать отзывы?

Один из первых тестеров бота сказал, что стал бы пользоваться ботом всерьез, когда он бы стал 1000'ным пользователем бота. И вот совсем не понятно, как этого достигнуть.

Какой совет вы бы сами могли дать идущим по вашим стопам?

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

Telegram-бот как UI к проекту — это дешевое решение для проверки идеи. Не пробовал еще Zero-coding, может там было бы так же просто все сделать, стоит и в эту сторону посмотреть.

28 комментариев 👇
Иван Овчинников, Системный аналитик 8 июня в 07:29

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

в моем сценарии (в Москве) до ближайшей тачки часто топать надо, и берешь просто ту, которая ближе

  Развернуть 1 комментарий

@eewahn, интересно, что в Швейцарии другая ситуация: каршеринговые тачки стоят на парковках и там их обычно больше одной, так что вполне можно выбрать лучшее из предлагаемого.

  Развернуть 1 комментарий

@zahhar, Кирилл, а есть какие-нить агрегаторы европейских каршерингов? Может стоит бота на них тоже распространить?

  Развернуть 1 комментарий

@ArtemMalko, вот про агрегаторы каршерингов ничего не знаю. Каршерингом в Европе я только в Таллинне пользуюсь, т.к. знаю родной город, а машины там нет. Телега в Эстонии тоже очень популярна, а риски попасть на убитую тачку тоже есть — так что твой проект может зайти очень даже.

А вот в Швейцарии наоборот — с одной стороны, тут (почти) нет проблем со стабильно высоким качеством машин, а во-вторых, насколько я могу судить, телега в разы менее популярна Ватсаппа и уступает даже переприске в ФБ/Инсте, то есть находится где-то на одном уровне с Сигналом.

  Развернуть 1 комментарий

@zahhar, понял, брошу свой взор на Эстонию тогда) Спасибо

  Развернуть 1 комментарий

@eewahn, ого, это весьма неожиданно) Я больше от ребят в МСК получал feedback, что наоборот машин в МСК много, типа мне не особо нужно заранее знать. Не понравится — просто другую сразу возьму.

А про какой район Москвы идет речь? Или тут в принципе так попадается, что машин мало?

А по поводу того, что рядом должна быть хорошая — это вовсе не обязательно. Увидел в отзывах, что машина прям убитая внутри, а вы в костюме едете. Сразу принимается решение — не, поеду на таксо тогда)

Вообще, сценариев может быть много.

  Развернуть 1 комментарий

@ArtemMalko, машин много для сценариев перемещения по точкам интереса. Много машин у торговых центров, крупных офисных центров. Поэтому use case релевантный.

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

Но по личному опыту использования каршеринга, мне было бы удобно заранее знать к какой идти. Еще более удобно было бы посмотреть все машины радом со мной от разных операторов. Потому что пока смотришь, например Яндекс, заприметил машину, идёшь в Делимобиль, ничего не находишь, а когда возвращаешься в Яндекс «ту самую» уже увели.

Не знаю много таких привередливых или нет. Но у меня было такое, что я ходил посмотреть машину, она мне не понравилась и я пошел еще 10 минут до следующей. Но я в тот раз брал машину на выходные, и ехал за город с семьёй. Если бы надо было быстро куда-то добраться, взял бы хреновую.

  Развернуть 1 комментарий

@VBodrov, согласен со всеми мыслями.

С агрегаторами все сложно, операторы каршеринга не очень любят апи свое наружу выставлять(

  Развернуть 1 комментарий
alex konstantinov, Менеджер проекта 8 июня в 09:24

А разве комментарии про тех состояние авто не перестанут быть актуальными после ТО через N дней?
особенно если речь идёт о спущенном колесе и пустом баке омывайки.

  Развернуть 1 комментарий

@alexk, так ведь дата комментария известна и комменты можно скрывать по прошествии тех семых N дней. Тут придётся экспериментально установить, возможно N будет разным для разных фирм и городов, но точно комменты актуальны в течение примерно первыз 24-72 часов.

  Развернуть 1 комментарий

@alexk, Захар хорошо ответил)

В идеале было бы круто, чтобы операторы каршеринга могли в отзыве писать, что мол все починили)

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

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

Но если есть какие-то идеи — с радостью готов выслушать)

  Развернуть 1 комментарий

Бонусный функционал бота — отслеживать машины, которые дожили до своей амортизации в наилучшем техническом состоянии, чтобы выкупить и сдать в такси. :)

  Развернуть 1 комментарий

@VBodrov, хм, а это интересная мысль в целом) Так то и сами операторы каршеринга в этом заинтересованы могут быть.

  Развернуть 1 комментарий

Интересно, насколько в Новосибе все плохо с каршером, что понадобился такой бот. В Питере у Я.Драйва и кашкаев Сити(You)драйва 9/10 машин в хорошем состоянии, они их постоянно обслуживают, а Делимобиль и остальные модели Сити бывают похуже. А вот например в Москве у Я.Драйва куча обтесанных машин, они их не ремонтируют, если не критично.
Так что для меня (хоть я и активно каршерю) сценарий использования бота выглядит совершенно излишним.

  Развернуть 1 комментарий

@treboit, забавно, но вот как раз @eewahn ниже пишет про обратную ситуацию)

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

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий

@treboit, ну так да) Либо наоборот, если его машины будут в хорошем состоянии. В любом случае выигрываем мы — пользователи каршеринга.

  Развернуть 1 комментарий

@ArtemMalko, 'наоборот' вряд ли будет работать, в том-то и дело. Если я смотрю машину, значит, я уже готов ее взять (она ближайшая, например). Если инфы по состоянию нет - я ее беру в 100% случаев, а если есть, то в 90% (в 10% увижу, что что-то не так и возьму другой каршер). Выиграет каршер с лучшими машинами, только если все операторы будут показывать состояние и пользователи будут перетекать к более качественному (сейчас это и так происходит, но чуть менее системно). То есть, с точки зрения теории игр, операторам невыгодно показывать состояние машин, пока это не сделали все остальные операторы, а к этому они не могут прийти, потому что кому-то первому придется оказаться в невыгодной ситуации. Ну или если твой бот станет настолько популярен, что у всех и так будет эта инфа.

  Развернуть 1 комментарий

@treboit, полностью согласен. Тут мы только все вместе сможем повлиять на ситуацию. Поэтому бот и не аффилирован каким-либо каршеринговым оператором.

Кароч, верю в сообщество)

  Развернуть 1 комментарий

@ArtemMalko, ага. Я хоть и не буду пользоваться ботом, но вообще идея и реализация мне нравится, обожаю, когда на коленке при помощи простых инструментов делают реально работающий сервис.

  Развернуть 1 комментарий

@treboit, спасибо)

А что стоит доделать/изменить, чтобы желание воспользоваться появилось?

  Развернуть 1 комментарий

@ArtemMalko, я как раз начал с того, что в Питере с машинами обычно все ок и проверять их состояние не нужно.
Кстати, еще одно препятствие для распространения идеи - это размер города. Если у тебя почти сразу попалась машина, которая была отмечена в боте, то в Москве вероятность наткнуться на машину, на которой уже ездил, близка к нулю, поэтому для себя заполнять нет смысла, и нужна большая критическая масса других пользователей, после которой накопится достаточно данных, чтобы бот стал полезен. То есть без евангелистов бота, которые набьют первоначальные несколько тысяч машин, сервис вряд ли может взлететь.

  Развернуть 1 комментарий

@treboit, эх, согласен. Будем работать над этим)

  Развернуть 1 комментарий

@treboit, Нижний Новгород. Имеется только Делимобиль. Давеча как вчера пытался взять Поло - так у него юбка бампера оторвана и под тачку завернута. Пошел в соседний Солярис, у него пробега 160к, кондиционер не холодит (на улице +30). Вечером взял новый Солярис, с пробегом 26к. Он закипел через две минуты поездки.

  Развернуть 1 комментарий

@Floppycatman, в Питере раньше Делимобиль был таким же, еще и куча машин с пустым баком была, я его брал только если иначе никак. А потом они резко стали исправляться, но я как-то до сих пор стараюсь не брать их. Скорее всего, дело в конкуренции, Дели везде какое-то время был или есть единственным.

  Развернуть 1 комментарий

@Floppycatman, пиши отзывы в боте, чтобы на эти машины не нарваться)

  Развернуть 1 комментарий
Maximus, Электрический инженер 8 июня в 11:47

Хех, глянул - классно! :)

Только вопрос: а подразумеваются пока только российские авто? :)

  Развернуть 1 комментарий

@Maximus, как выяснилось с @zahhar, уже можно масштабироваться в Эстонию)

А есть какие-то предложения?)

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб