Расскажите о себе и сути проекта?
Всем привет!
Представляю вам Записки каршеровода — телеграмм-бот, где можно оставить/прочитать отзывы на каршеринговые автомобили, добавлять их в избранное, смотреть фотографии. Все это доступно после ввода номера автомобиля, который вы хотите взять в аренду.
Карточка автомобиля может выглядеть примерно вот так:
Как появилась идея? Что вдохновило?
Каршеринг добрался даже до нашей глубинки —до Новосибирска) Оказалось, что это чертовски удобно, когда ты можешь спокойно взять машину на 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, может там было бы так же просто все сделать, стоит и в эту сторону посмотреть.
у вас как будто рядом с плохой тачкой будет очень рядом еще одна похожая стоять, чтоб после бота выбирать на чем ехать.
в моем сценарии (в Москве) до ближайшей тачки часто топать надо, и берешь просто ту, которая ближе
А разве комментарии про тех состояние авто не перестанут быть актуальными после ТО через N дней?
особенно если речь идёт о спущенном колесе и пустом баке омывайки.
😱 Комментарий удален его автором...
Хех, глянул - классно! :)
Только вопрос: а подразумеваются пока только российские авто? :)
Привет, Артём! Неделькой назад попробовал бота, есть предложения уменьшить количество кнопок и подтверждений. Щас надо много действий сделать, чтоб добавить фотку-комментарий, потом ещё подтверждать конец фоток.. В идеале видел бы чисто отправку номера, фотку и коммент, а бот бы просто это всё добавил. То есть happy path минимумом действий, а если что пошло не так – то да, кнопки в помощь. А так – прикольно, конечно)
Интересно, насколько в Новосибе все плохо с каршером, что понадобился такой бот. В Питере у Я.Драйва и кашкаев Сити(You)драйва 9/10 машин в хорошем состоянии, они их постоянно обслуживают, а Делимобиль и остальные модели Сити бывают похуже. А вот например в Москве у Я.Драйва куча обтесанных машин, они их не ремонтируют, если не критично.
Так что для меня (хоть я и активно каршерю) сценарий использования бота выглядит совершенно излишним.
Пока что вижу (со своей колокольни) что проект создан без исследования спроса, ЦА, сценариев использования, понимания модели монетизации и масштабирования. Это конечно не оч хорошо, особенно если спрос на сервис будет расти (а вместе с ним вырастет нагрузка на поддержку сервиса и хз как её оплачивать, если монетизации нет). (Но может оно где-то скрыто под капотом, просто не видно тут этого).
Вижу, что модель тут или на донатах жить, или с кем-то договориться из операторов о чём-то. Типа если там вообще пиздос с машиной, то быстро давать оператору об этом фидбэк, чтобы они быстро чинили тачку, а она не стояла мёртвым грузом на месте, дожидаясь плановой проверки.
Например, зимой этой, в Москве была жопа со снегом и очень много тачек оказалось под снегом или заблокировано сугробами нахрен. По карте этого не видно было, конечно. И ты как лох бегал по тачкам пытаясь не нарваться на "снежок", в котором ещё и щёток нет. Операторам бы такая инфа пригодилась точно, так как тачка стоит = оборота по ней нету. Чем быстрее её починят, тем быстрее она продолжит приносить бабки компании снова. То же с заблокированными тачками: если она вдруг оказалась заперта другими машинами, за забором, или внезапно в таком месте, откуда её можно только вытащить тросом. Ну и как выше писал, если там жопа и на ней никто не поедет, а оператор догадается о проблеме только после 5 броней и отказов на одной и той же тачке. Типа колесо сдуто, разбито в щи стекло, в машине не работает что-то критическое (типа фар ночью - у меня такое было).
Ещё, может быть, подумать над историей с паркингом, когда тачки ставят на инвалидные места и это усложняет жизнь не только людям, кто туда их поставил, но и компаниям каршеринга. Но это всё мои гипотезы, так что лучше это верифицировать на бОльшем количестве людей.
Тут можно потолковать с операторами про монетизацию (сколько они готовы платить за оперативность такой инфы)...
Но если подумать шире, то в идеале, лучше бы пойти запартнёрится с продактом хорошей каршеринг-компании и вместе придумать какое-то решение на базе того что есть (правда, может быть такое, что придётся "к хуям" перепилить в итоге то что есть), чтобы оно было и полезно и денежку приносило.
ПыСы из хз нужной ли фичи: я бы точно добавил распознавалку номеров и внесение их в базу по фоткам (если этого нет), чтобы сразу можно было инфу вносить в базу себе и отправлять её оператору.
Коротко про свой опыт использования каршеринга: Москва, 4 компании каршера, в Питере брал пару раз каршер местный, езжу активно на каршере 1,5 года.