Прижало, а туалета рядом нет? Разработчик сделал Telegram-бот с картой общественных туалетов
Мне давно хотелось создать собственный проект, который действительно приносил бы людям пользу. Не очередной AI-powered-стартап, который по сути оказывается лишь прослойкой между API ChatGPT и пользователем.
Однажды я возвращался в Минск из автобусного тура в Санкт-Петербург. Было около 7 утра, и после долгой поездки без остановок мне очень захотелось в туалет. На вокзале я быстро нашёл нужную точку в Яндекс Картах, но на месте выяснилось, что туалет закрыт.
Тогда я подумал: почему до сих пор нет простого и удобного сервиса, который помогает быстро находить именно открытые общественные туалеты, а не просто точки на карте без актуальной информации?
Решил для самого себя написать Telegram-бота, который ищет публичные туалеты.
Мне давно хотелось создать собственный проект, который действительно приносил бы людям пользу. Не очередной AI-powered-стартап, который по сути оказывается лишь прослойкой между API ChatGPT и пользователем.
Однажды я возвращался в Минск из автобусного тура в Санкт-Петербург. Было около 7 утра, и после долгой поездки без остановок мне очень захотелось в туалет. На вокзале я быстро нашёл нужную точку в Яндекс Картах, но на месте выяснилось, что туалет закрыт.
Тогда я подумал: почему до сих пор нет простого и удобного сервиса, который помогает быстро находить именно открытые общественные туалеты, а не просто точки на карте без актуальной информации?
Решил для самого себя написать Telegram-бота, который ищет публичные туалеты.
Идея сервиса максимально простая: дать человеку быстрый и понятный способ найти ближайший общественный туалет без лишних действий.
Достаточно перейти по ссылке, открыть Telegram-бот и отправить геолокацию. После этого бот сразу покажет список ближайших туалетов. Остаётся только выбрать подходящий вариант и открыть карточку с описанием и маршрутом в Яндекс Картах, 2ГИС, Google Maps или Apple Maps.
Как отправить геолокацию вручную
Переходите в бот и нажимаете кнопку «Старт». Дальше:
Нажмите на значок скрепки внизу слева.
Выберите раздел «Геопозиция».
Нажмите «Отправить геопозицию».
Если нужно указать конкретное место, а не текущую геопозицию, то нажмите на значок поиска вверху справа и введите нужный адрес, например: Минск.
Так работает бот
На текущем этапе бот доступен только для Минска. В дальнейшем я планирую добавить поддержку и других городов Беларуси.
Зачем это нужно
Сама идея не уникальна, подобные решения уже существуют в разных странах. Особенно их много в Японии, где инфраструктуре общественных туалетов уделяют большое внимание. Там такие сервисы могут показывать не только расположение туалетов, но и их состояние. Например, уровень занятости или чистоты кабинок.
Да, туалеты уже обозначены есть на обычных картах. Но у этих приложений другая задача: они просто показывают точку на местности. А я хочу сделать сервис, где можно отразить, что действительно важно пользователю. Фильтровать типы туалета, чистоту, доступность для людей с инвалидностью, наличию пеленального столика и другие параметры.
В моем сервисе предусмотрена такая возможность, но данный функционал еще не доступен для пользователей.
Также я хочу, чтобы пользователи могли сами добавлять туалеты в сервис. Пока что создал группу, куда люди присылают нужные точки. Когда наберётся база пользователей, то сделаю отдельный бот. Там можно будет добавлять туалеты и получать за это вознаграждение.
Почему я всё равно решил попробовать
Когда я работал на проектом, то не раз раз слышал, что идея вряд ли нужна. Мол, таких сервисов уже достаточно, а сама проблема не выглядит настолько значимой. Кто-то считал проект просто бесполезным.
Но меня это только мотивировало. Я понял, что не стоит общаться с теми, кто постоянно выливает негатив. Даже если сервисом воспользуется всего один человек и ему поможет — всё было не зря.
После работы в корпоративной среде я всё чаще задумываюсь о том, что ценность измеряется не только деньгами. Не менее важно ощущение, что ты делаешь что-то по-настоящему полезное. Мне всегда хотелось приносить в мир что-то хорошее. Поэтому мне хочется делать вещи, которые приносят реальную пользу, без кричащих названий и пафоса.
Для меня это важный этап еще и по личной причине: это первый проект, который я действительно довел до рабочего состояния, а не забросил на половине пути. Он пока не идеален, но уже работает, и выполняет свою базовую функцию.
Техническая составляющая
Технически проект состоит из двух частей: бэкенда и Telegram-бота.
Бэкенд — это основа всей системы. Он обрабатывает запросы, работает с базой данных PostgreSQL и хранит информацию о туалетах. Бот выступает интерфейсом для пользователя: принимает сообщения, отправляет запросы на сервер и возвращает найденные результаты. Для разработки я использовал Java, Spring и TelegramBots на стороне бота, а серверную часть написал на Kotlin, Ktor и jOOQ.
В основе хранения данных — PostgreSQL с расширением PostGIS для геопространственных запросов. Благодаря этому поиск ближайших туалетов можно выполнять быстро и без лишней нагрузки, что особенно важно для сервиса, завязанного на геолокации.
После изучения различных вариантов я остановился на провайдере Google Cloud. Сервер находится в США и работает на бесплатном тарифе: e2-micro, 1 GB RAM и 30 GB диска. База данных размещена на Neon, тоже на бесплатном тарифе, но уже в Европе.
Разработку вел один, в свободное время, иногда по вечерам или выходным. Весь процесс занял около 4 месяцев с перерывами. Поначалу было непросто: особенно много времени ушло на погружение в Ktor и решение мелких, но постоянно возникающих технических задач, с которыми сталкиваешься после перехода из мира Java.
Наверное, главная ошибка на старте была типичной для пет-проектов: мне хотелось сразу сделать как надо и предусмотреть все наперед. Я слишком много думал об архитектуре, пытался заложить запас на будущее и добавить больше возможностей, чем реально было нужно для MVP. Из-за этого разработка затянулась, а сам проект стал менее стабильным.
Куда может вырасти проект
Мне бы хотелось, чтобы со временем он стал не просто ботом для поиска ближайшей точки с туалетом, а полноценным сервисом городской инфраструктуры.
В будущем я планирую выводить проект в оффлайн. Например, установить современные биотуалеты в проходных местах. Доступ был бы по QR-коду: приложил телефон и вошёл. При этом внутри должны быть обеспечены базовые вещи, которые действительно важны: чистота, туалетная бумага, средства личной гигиены и другие необходимые мелочи.
Или строить маршруты для дальнобойщиков и водителей, которые совершают длительные поездки. Тогда человек мог бы заранее видеть туалеты по пути к конечной точке и понимал бы, где можно остановиться в экстренной ситуации.
Можно добавить функцию взаимопомощи для женщин: посетительница, которая недавно была рядом, сможет помочь в деликатной ситуации — например, если срочно нужно средство гигиены.
Скоро в сервисе могут появиться коды доступа к туалетам в KFC, McDonald’s и других сетях. Это поможет быстрее находить нужную информацию и сэкономит время на месте.
Ищу коллег!
Я изначально задумываю этот проект как полностью бесплатный. Буду рад, если со временем удастся найти финансирование, партнёрства или другие форматы поддержки.
В начале года я планировал представить проект на одном из стартап-мероприятий, где рассматривают инициативы и помогают с развитием, но ивент отменили. Поэтому сейчас мне особенно важно услышать советы, обратную связь и любую полезную информацию от людей, которые понимают, как развивать такие проекты и кому их можно показывать.
Если вам близка эта идея и вы хотите помочь, буду рад любому отклику. Сейчас особенно актуальна помощь от таких людей:
человек с опытом в развитии продуктов, стартапов или партнёрств — чтобы помочь структурировать идеи, расставить приоритеты и понять, где искать поддержку;
фронтенд-разработчик — для создания сайта с картой, поиском и фильтрацией туалетов;
дизайнер — для логотипа, визуального стиля и интерфейсов;
маркетолог или человек с опытом продвижения — чтобы помочь с развитием проекта и привлечением аудитории;
Также любые другие специалисты и просто неравнодушные люди, которым интересно поучаствовать в развитии полезного городского сервиса.
Мнение автора может не отражать позицию редакции.
Что ещё почитать про пет-проекты у комьюнити:
Беларус придумал приложение, которое поможет лучше воспринимать тексты книг. И ищет CTO и инвестора;
Дзе знаходзіцца Сянно? Беларусы стварылі бот, які дапаможа лепей вывучыць геаграфію радзімы;
Беларусы придумали аппку, которая поможет подобрать идеальный подарок.
Поддержите редакцию 1,5% налога: бесплатно и за 5 минут
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.
Такі сэрвіс павінен працаваць аффлайн.
Мапу і пошук можна зрабіць праз слой на OpenStreetMap.
Там жа можна знайсці вялікую базу прыбірален па ўсяму свету ды нават проста паказаць.
chuesh- kozhny vuhal pribiral'nya
В европах нет такой проблемы, там везде можно...
Даже помню, как зассанцы поворачивались ко мне во время процесса, и здоровались.
lagodna, yak!
Идея мёртвая, так как в РБ можно зайти в любое кафе или магазин и воспользоваться туалетом там.
Точно по той же причине в стране не развиты общественные туалеты.