Сообщество - ИТ-проекты пикабушников

ИТ-проекты пикабушников

508 постов 3 394 подписчика

Популярные теги в сообществе:

Прошёл год: что изменилось в моём Telegram-боте для записи в поликлиники Москвы в ЕМИАС?

Прошёл год с момента запуска Telegram-бота, который помогает находить свободные места для записи в поликлиники Москвы (ЕМИАС). За это время он значительно вырос, обзавёлся новыми функциями и стал ещё удобнее для пользователей.

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

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

Цифры говорят сами за себя: как бот помог тысячам людей?

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

·  2 800 — пользователей активно пользуются ботом прямо сейчас.

·  6 000 — уникальных пользователей за всё время существования.

·  240 — среднее количество пользователей в день.

·  450 — максимальное число уникальных пользователей за сутки.

·  5 — максимальное количество полисов, которые использует один человек.

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

·  1 000 — уведомлений о свободных местах бот отправляет ежедневно.

·  80 — записей на приём к врачу оформляется через бота каждый день.

Эти цифры показывают, что бот действительно упрощает процесс записи в поликлиники Москвы (ЕМИАС). Однако на пути к этим результатам пришлось столкнуться с рядом сложностей, о которых расскажу в следующем разделе.

С какими трудностями я столкнулся за год работы?

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

Проблемы с интеграцией с ЕМИАС
Что случилось?
Интеграция с ЕМИАС за последний год стала гораздо сложнее, чем я ожидал, и это связано с постоянными изменениями и обновлениями в самой системе. До начала 2024 года существовала первая версия API, которая работала достаточно стабильно. Однако с начала 2024 года и до текущего момента система ЕМИАС активно обновлялась, и теперь используется версия API 8, что значительно изменило принципы работы системы. Эти изменения затронули не только сам функционал, но и обратную совместимость, что вызвало сбои и проблемы в старых приложениях.

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

Какие изменения привнесло обновление API?
Одним из значительных изменений, введённых в новом API, стал дополнительный уровень защиты для пользователей. Например, теперь для того чтобы записаться на приём или отменить запись, требуется пройти авторизацию через Госуслуги. С одной стороны, это повышает безопасность, но с другой — усложняет процесс записи для пользователей, которые не могут или не хотят пользоваться Госуслугами.

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

Что делал для решения?
Для решения этого вопроса я думал о внедрении дополнительной функции в бота, которая могла бы защищать записи от постороннего вмешательства. Например, добавление функции, которая уведомляла бы пользователя, если кто-то попытался отменить его запись без ведома. Хотя эта функция ещё не реализована, в будущем я планирую её добавить, чтобы улучшить защиту записей и минимизировать неудобства для пользователей.

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

Результаты
Из-за ограничений API и частых изменений в системе, только мой бот продолжает работать корректно среди четырёх аналогичных сервисов, которые были запущены ранее. Остальные боты либо прекратили свою работу, либо столкнулись с проблемами совместимости, которые не были решены.

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

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

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

Прошёл год: что изменилось в моём Telegram-боте для записи в поликлиники Москвы в ЕМИАС? ЕМИАС, Поликлиника, Программирование, Бот, Telegram, Москва, Медицина, Врачи, Длиннопост, Без рейтинга

Как мы улучшили бота: новые функции и возможности

Основной функционал и возможности бота для записи к врачу:

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

Точная настройка поиска
Бот позволяет точно настроить поиск свободных мест, указав диапазон дат и времени. Это позволяет найти запись на приём в удобное время. Примеры форматов поиска:

  • 21.01.2024 - 12.03.2024

  • 21.01.2024 13:15 - 12.03.2024 16:18

  • Можно также указать время приёма:
    21.01.2024 - 12.03.2024 (12:05 - 15:30)
    21.01.2024 13:15 - 12.03.2024 16:18 (12:05 - 15:30)

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

Автоматический перенос записей
Пользователи могут легко перенести свою существующую запись на более удобное время, без необходимости её отмены заранее. Бот автоматически подберёт подходящий слот для переноса.

Запись на приём к врачам, по направлениям и на сдачу анализов
Бот позволяет записываться не только к конкретным врачам, но и по направлениям или назначениям, а также на сдачу анализов.  

Запись на приём к дермовенерологу
Недавно в бот была добавлена возможность записываться на приём к дермовенерологу, что стало значимым улучшением. Это необычно тем, что такая возможность появилась в нашем боте раньше, чем на официальном сайте ЕМИАС.  

Что дальше? Планы по развитию проекта

Переход на интерфейс mini-app в Telegram
Я планирую перейти на новый интерфейс в виде mini-app в Telegram, который уже почти готов. Пример такого интерфейса можно увидеть на моем канале. Он будет более удобным и понятным для пользователей, так как будет схож с интерфейсом мобильного приложения ЕМИАС.

Улучшение защиты записей
В будущем я планирую добавить дополнительную защиту для записей, чтобы предотвратить их отмену или изменение времени без участия владельца записи. Это решение будет направлено на защиту пользователей от постороннего вмешательства, несмотря на ограниченные возможности API ЕМИАС.

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

Возможная остановка бота из-за новых ограничений ЕМИАС
В связи с активной работой над ЕМИАС и введением новых механизмов защиты, вполне возможна ситуация, когда мой бот перестанет работать. Если для использования бота будет обязательна авторизация через Госуслуги, то мне будет сложно реализовать этот процесс. У меня нет лицензий для обработки персональных данных, а также соглашений с ДИТ Москвы для использования их авторизации в моем боте. Это создает юридические и технические проблемы, и скорее всего, для авторизации пользователи будут вынуждены передавать свои логины и пароли, что не всем может понравиться, особенно контролирующим органам. В связи с этим я рассматриваю вариант выложить бота в открытый доступ, чтобы пользователи могли самостоятельно поднять его у себя на сервере, с подробной инструкцией. Присоединяйтесь к моему каналу для получения последних новостей и обновлений!"

Итого

За год работы бот значительно улучшился: добавлены автоматическая запись, уведомления, переносы и новые врачи, включая дермовенеролога. Несмотря на успехи, проблемы с API ЕМИАС и новыми защитными механизмами требуют постоянных обновлений.

В будущем планирую улучшить защиту записей и внедрить интерфейс mini-app в Telegram. Но с учетом возможных изменений в ЕМИАС есть риск, что бот может быть заблокирован. В таком случае я выложу его в открытый доступ с инструкцией для пользователей.

Спасибо всем за поддержку! 😊 Ваши отзывы и положительная обратная связь мотивируют меня развивать проект дальше! Поделитесь своими впечатлениями на канале.

Показать полностью 1

Как сделать WP сайт на 1000 статей за 1 день

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

Вот мои результаты на 2х сайтах через 3 месяца:

Пример 1, ниша программирование

Пример 2, ниша рецепты

Презентация

Поделитесь мыслями, как еще можно применить программу?

Есть идея по описаниям карточек товаров для ИМ, как считаете?

Показать полностью 10 1
10

Глобальное обновление на SQLTest.online: новый дизайн, лайки и многое другое!

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

Глобальное обновление на SQLTest.online: новый дизайн, лайки и многое другое! Обучение, IT, SQL

Новый дизайн

Что изменилось?

  • Новый дизайн: Как вы уже заметили, сайт полностью преобразился! Георгий Григорчук создал для SQLTest.online современный, интуитивно понятный и, конечно же, приятный глазу интерфейс. Уверен, что теперь учиться и практиковаться в SQL станет еще комфортнее.

  • Обмен решениями: Теперь вы можете не только решать задачи, но и видеть решения других пользователей! Эта функция позволит нам создать настоящее сообщество, где каждый сможет учиться друг у друга. Вы сможете увидеть, как другие решили ту же задачу, оценить их решения лайками и оставить свой комментарий (в ближайшей перспективе). Уверен, что это станет отличным способом обмениваться знаниями и опытом.

  • Избранное: Я добавил возможность добавлять понравившиеся задачи в избранное. Теперь вы сможете легко вернуться к интересным или сложным задачам, чтобы повторить их позже или использовать в качестве примера.

Зачем я это сделал?

Я работаю над SQLTest.online один, и для меня очень важно ваше мнение. Я стремлюсь создать идеальную платформу для изучения SQL, где каждый сможет найти для себя полезные материалы и получить поддержку от сообщества. Эти обновления – большой шаг в этом направлении. Я уверен, что они сделают обучение более интерактивным и эффективным.

Что дальше?

Я продолжаю работать над SQLTest.online и планирую добавлять еще больше интересных функций и контента. У меня много идей, и я надеюсь, что вы поддержите меня в этом начинании. Следите за обновлениями!

Присоединяйтесь!

Приглашаю вас оценить обновления на сайте SQLTest.online и поделиться своим мнением в нашем чате. Для меня это очень важно! Вместе мы сделаем SQLTest.online еще лучше!

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

SQLTest.online – ваш помощник в мире SQL!

P.S. Буду очень благодарен, если вы поделитесь этой новостью с друзьями и коллегами, которые изучают SQL! Для меня это лучшая поддержка. Спасибо!

Показать полностью
1

Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 4

Всем привет!

Тут я подумал... а почему бы не рассказать о сервере? Предупреждаю сразу: будет много сложного и непонятного текста!

Немного о сервере

Сервер — это Maven-проект (кто понял, тот понял). Maven — это не просто фреймворк, а целая экосистема, которая включает в себя огромное количество инструментов. Он также выполняет роль сборщика.

Главный конфигурационный файл проекта — pom.xml. В него добавляются библиотеки, фреймворки и прочие зависимости. Помимо Spring Boot и его компонентов, я добавил:

  • PostgreSQL — база данных, в которой хранится огромное количество таблиц.

  • Firebase — гугловая библиотека для отправки сообщений.

  • OkHttp3 — для выполнения HTTP-запросов на сторонние сервисы, такие как Firebase и Яндекс.

  • Quartz Scheduler — для работы с таймерами. Раньше использовался для отслеживания времени жизни SMS.

  • Lombok — значительно упрощает код, убирая необходимость вручную писать геттеры и сеттеры.

  • Flyway — для управления миграциями базы данных. Например, при переносе на другой сервер или создании новой таблицы можно не писать SQL-запросы вручную, а просто выполнить команду, и Flyway сам всё сделает.

  • Hibernate — облегчает работу с базой данных, избавляя от необходимости писать SQL-запросы вручную и разбираться, почему что-то не работает из-за новой колонки или неправильного запроса.

Миграции

На данный момент у меня 36 миграций. Они включают в себя создание новых таблиц и обновление старых.

Первый блок — init: здесь просто инициализируется схема базы данных. Затем добавляются таблицы.

Структура проекта

В проекте есть несколько пакетов (или папок, кому как удобнее):

  • secure — всё, что связано с защитой: конфигурация, токены и прочее.

  • controllers — здесь находятся Java-классы-контроллеры. Каждому классу даю название по принципу функционал + Controller, например:

    • FileController — отвечает за работу с файлами.

    • MessageController — управляет обработкой сообщений.

Это основные моменты, остальные параметры можно считать стандартными.

Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 4 Программирование, Интернет, IT, Длиннопост

DTO (Data Transfer Object) — объект передачи данных между клиентом и сервером.

По сути, у меня там всего один enum, который содержит две подкатегории:

  • Request — запрос

  • Response — ответ

Думаю, логика понятна: Request используется для отправки данных на сервер, а Response — для получения ответа.

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

Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 4 Программирование, Интернет, IT, Длиннопост

Entity — таблицы для Hibernate

В проекте есть несколько Entity-классов, которые описывают структуру таблиц в базе данных.

Есть две абстрактные сущности:

  1. AbstractEntity — содержит стандартные параметры, которые есть в каждой таблице:

    • id — первичный ключ

    • Переопределённые методы, такие как equals() и hashCode()

  2. DatedEntity — расширяет AbstractEntity и добавляет два поля:

    • createdAt — время создания записи (например, когда был создан пользователь)

    • updatedAt — время последнего обновления записи (например, когда сообщение было прочитано)

Таким образом, сущности наследуются друг от друга:

DatedEntity наследует AbstractEntity
➡ Другие классы наследуются от DatedEntity

В результате при создании новой таблицы мне не нужно каждый раз вручную добавлять id, createdAt и updatedAt — они уже есть в базовом классе. Удобно и меньше дублирования кода! 🚀

Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 4 Программирование, Интернет, IT, Длиннопост

Repository — репозитории для работы с БД

Если просто, то для каждой таблицы создаётся свой репозиторий, в котором прописаны запросы к базе данных. У меня их 24, значит, и таблиц тоже 24.

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

Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 4 Программирование, Интернет, IT, Длиннопост

Service — бизнес-логика приложения

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

  • Взаимодействие с базой данных через репозитории

  • Взаимодействие между различными компонентами приложения

  • Логика обработки данных перед отправкой клиенту

  • Выполнение различных проверок и преобразований

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

Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 4 Программирование, Интернет, IT, Длиннопост

Дополнительные моменты и распределение нагрузки

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

Почему я не использую WebSocket?

Кто-то может спросить про WebSocket... но я его пока не реализовывал. Причина проста — текущее железо не потянет. Даже если в будущем будет более мощный сервер, всё равно есть ограничения на количество подключений к одному серверу.

К тому же WebSocket реально нужен только для отображения статуса "пользователь онлайн" (в моем случае). Но это излишняя нагрузка, которая мне не нужна.

Масштабирование сервера

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

Я прикинул примерную архитектуру серверов:

  • Сервер мониторинга — отслеживает состояние всех остальных серверов.

  • Сервер бэкапов — отвечает за сохранение резервных копий данных.

  • Два сервера для видеозвонков — работаю над полноценной WebRTC-реализацией, без использования сторонних сервисов.

С первого взгляда это может показаться сложным и непонятным 🤯, но на самом деле всё логично и продумано. 🚀

Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 4 Программирование, Интернет, IT, Длиннопост

Proxy и масштабируемость

Proxy будет равномерно распределять запросы между серверами. Их количество не ограничено, поскольку все они работают с одной базой данных. Таким образом, если нагрузка возрастёт, можно просто добавить новые серверы, и система продолжит работать без проблем.

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

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

Про видеозвонки расскажу подробнее позже, когда придет время и когда протестирую.

я тут подумал. оставлю свой телеграм для связи, мало ли, может какие нибудь предложения поступят. @ilyaPlotkin_vzhoohApp

Ну, как-то так. Всем спасибо за внимание! 🚀

Показать полностью 6
1

Приложение СамСервис часть 2 и Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 3

Кому интересно:

Здесь я решил объединить эти темы, так как речь пойдет об одном и том же – интеграции авторизации через Яндекс.

Почему Яндекс?

Думаю, причина очевидна: СМС-авторизация – это дорого.
Разберем цифры:

  • Регистрация "имени" у операторов – 2000–2500 рублей за каждого. Учитывая, что у нас 4 основных оператора, только за это придется платить от 8000 рублей в месяц.

  • Каждое СМС в среднем стоит 2,5 рубля. Если в месяц приходит 1000 новых пользователей, это еще +2500 рублей.

  • А если добавить возможные злоупотребления, спам и другие проблемы – сумма растет.

Итого: 10 000+ рублей в месяц только за возможность отправки СМС. Такой вариант явно не лучший.

Что тогда выбрать?

Очевидный вариант – авторизация через сервисы. Рассматривал Google, но… санкции, ограничения, возможные блокировки – не вариант.
А так как приложение ориентировано на российскую аудиторию, выбор пал на Яндекс.

Проблема с Google Play

При проверке приложения Google требует, чтобы проверяющий мог войти. Но тестового аккаунта в Яндексе не существует.

Решение: временная кнопка для проверки, которая 21 февраля 2025 года станет невидимой.

Приложение СамСервис часть 2 и Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 3 IT, Программирование, Программист, Программа, Интернет, Длиннопост

Как сделать интеграцию?

  1. Зарегистрировать приложение в Яндекс.OAuth.

  2. Указать пакет приложения и отпечаток ключа (можно найти в ключе или Google Play).

  3. После авторизации Яндекс выдает токен, по которому можно получить номер телефона пользователя.

Но тут возникает проблема: если делать все в самом Android-приложении, это дыра в безопасности.

Как обойти ограничение?

Яндекс не дает получить токен через WebView, поэтому алгоритм такой:

  1. После авторизации приложение отправляет код на сервер.

  2. Сервер по коду получает токен.

  3. По токену сервер получает номер телефона.

Приложение СамСервис часть 2 и Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 3 IT, Программирование, Программист, Программа, Интернет, Длиннопост

Проблема с редиректом (ошибка 400)

После настройки сервера приложение начало выдавать ошибку 400 при редиректе.
Долго гуглил, но ответов не нашел.
Решение оказалось простым: нужно указать, что приложение – это не только Android-клиент, но и веб-сервис.

В параметре Redirect URI нужно указать URL контроллера сервера, который принимает код. После этого всё заработало!

Еще одна проблема – два токена!

После авторизации устройство получает токен. Но при попытке использовать его – ничего не работает.

  • В БД Android-приложения токен есть.

  • В БД на сервере токен другой.

Что?! Как так?

Оказалось, Яндекс отправляет два запроса с одним кодом.

  1. Первый запрос получает код, сервер генерирует токен A, отправляет его устройству.

  2. Следом Яндекс шлет второй запрос, сервер генерирует новый токен B.

  3. Устройство продолжает работать с токеном A, но в БД уже записан токен B.

Решение: добавил триггер, который блокирует повторную генерацию токена для одного кода. Теперь всё работает корректно.

Приложение СамСервис часть 2 и Аналог приложения TikTok, Vk видео и YouTube Shorts. Часть 3 IT, Программирование, Программист, Программа, Интернет, Длиннопост


Что с «Вжух»?

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

Итог

Интеграция с Яндексом удалась, проблем было много, но всё решаемо.
Спасибо за внимание! 🚀

Показать полностью 3
5

Приложение СамСервис

Всем привет!

Однажды заходит ко мне в гости один очень хороший друг и заявляет:

— Слушай, у нас тачки старые, иногда нужен мелкий ремонт — то резину поменять, то прокладку ГБЦ заменить... А во дворе — тот еще квест. В сервис поедешь — месяц ждать. А твоего (ну, в смысле моего) японца мастера как видят, так крестятся. Если не верующие — уверуют, плюют через левое плечо, стучат по дереву, читают мантры… Но за доисторического японца все равно не берутся, даже если ремонт пустяковый.

— Хм... — задумался я.

— Так вот! Есть же автосервисы самообслуживания! Звонишь (или звонишь, кому как нравится), бронируешь место в теплом гараже, если зима. Если лето — в прохладном, без солнцепека. И ковыряешься там в свое удовольствие! В некоторых даже яма есть или подъемник. И цена норм — 300–400 рублей в час! Красота!

— Хм... — снова задумался я. — То есть менять прокладку ГБЦ во дворе было ошибкой? (Кстати, это чистая правда, весь двор сбежался посмотреть.) Ну блин, впервые слышу, что такие сервисы вообще существуют...

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

— Ни слова больше! — вслух подумал я. — Соберем это все в одно приложение! Но сначала нужно найти номера, адреса, города всех таких сервисов по России.

— Та без проблем! Соберу! Нужно сайт и мобильное приложение!

— Хорошо! Только сайты я не особо люблю делать. Я могу замутить сервер, клиент под Android… Сайт, если и сделаю, то простенький. Пойдет?

— КОНЕЧНО! Главное — начать!

Ну, собственно, начал. Сделал мини-сайт (честно, не фанат веба): https://myself-service.ru/
И приложение под Android, даже выкатил в Google Play! (Да, я могу, это несложно, аккаунт завел еще до СВО.)

Приложение СамСервис Программирование, Приложение, IT, Длиннопост
Приложение СамСервис Программирование, Приложение, IT, Длиннопост

часть кнопок, естественно, не работает, это задел на будущее.


Но, теперь само приложение:

Приложение СамСервис Программирование, Приложение, IT, Длиннопост

Когда мы открываем приложение, нас встречает раздел "Новости". Публиковать их могут только админы. Вообще, если зайти в приложение под учеткой админа, функционал будет немного другим — более расширенным. В частности, только админы могут добавлять новости.

Приложение СамСервис Программирование, Приложение, IT, Длиннопост
Приложение СамСервис Программирование, Приложение, IT, Длиннопост

Далее — каналы. По сути, это почти как каналы в Telegram. Сверху есть значок "карандаш" — кликнув по нему, можно создать свой канал. Писать в нем может только автор, а комментировать — все пользователи. Если нажать "Подписаться", то канал всегда будет отображаться вверху списка, даже если он был где-то внизу.

Приложение СамСервис Программирование, Приложение, IT, Длиннопост

Карта СамСервисов, полотно от яндекс карт, при клике на значок переходит на сервис и показывает информацию, по сервису.

Приложение СамСервис Программирование, Приложение, IT, Длиннопост

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

Приложение СамСервис Программирование, Приложение, IT, Длиннопост

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

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

Также можно отправлять картинки. Функция отправки видео временно отключена, но когда она работает, получателю сначала приходит GIF-анимация из видео. Если кликнуть, видео начинает стримиться с сервера, не занимая память телефона. Реализовал так специально — чтобы экономить место на устройстве.

Приложение СамСервис Программирование, Приложение, IT, Длиннопост

Далее — профиль пользователя. Здесь можно сменить аватар и изменить ник. Каждый ник уникален — система не позволит установить уже существующий.

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

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

Приложение СамСервис Программирование, Приложение, IT, Длиннопост

В гараже добавил несколько полей. Кстати, если есть идеи, что еще добавить — предлагайте! Пока придумал такой вариант.

Приложение СамСервис Программирование, Приложение, IT, Длиннопост

Причина сохранения данных — либо нажатие кнопки "Сохранить", либо замена аватара.

Про дизайн

Я не дизайнер, мне и слон на ухо наступил, и глаз на стиль не настроен, сделал как мог.

🚪 Про вход в приложение

Если хотите потестить — пишите мне в Telegram: @ilyaPlotkin_vzhoohApp.
СМС пока отключены, поэтому перед входом нужно указать мне свой номер. В ответ я пришлю код (но уже завтра 😉). Только после этого вводите номер в приложении и "ждите" СМС.

В будущем добавлю авторизацию через сервисы Яндекса.

🔧 Немного про сервер

Использую стандартный стек: Java Spring Boot, Hibernate, Spring Security, Firebase, Lombok.
База данных: PostgreSQL, миграции — Flyway.

📲 Ссылка на Google Play

👉 Скачать приложение

Всем спасибо за внимание! 🚀

Показать полностью 11
6

Telegram-бот для скачивания видео из VK, YouTube, *Instagram, Tiktok

Друзья, всем привет! Я решил создать telegram бота - https://t.me/DownloadSaveVideoBot для скачивания видео с VK, YouTube, Instagram и историй Instagram и TikTok.

Бот максимально просто, удобен и надёжен в использовании. Скачивание с всех ресурсов в 1 боте, без подписок на множество каналов/групп. Бот в считанные минуты отправит видео в ответ.

Как пользоваться ботом? Сейчас покажу функционал бота на каждом из сервисов. Переходим в бота - https://t.me/DownloadSaveVideoBot и нажимаем СТАРТ.

Загрузка видео с YouTube

Telegram-бот для скачивания видео из VK, YouTube, *Instagram, Tiktok Telegram, Telegram бот, Скачивание, Загрузка, Бесплатно, Vk Клипы, ВКонтакте, YouTube, Instagram, TikTok, IT, Длиннопост

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

Telegram-бот для скачивания видео из VK, YouTube, *Instagram, Tiktok Telegram, Telegram бот, Скачивание, Загрузка, Бесплатно, Vk Клипы, ВКонтакте, YouTube, Instagram, TikTok, IT, Длиннопост

И получаем в ответ видео.

Загрузка видео с VK

Telegram-бот для скачивания видео из VK, YouTube, *Instagram, Tiktok Telegram, Telegram бот, Скачивание, Загрузка, Бесплатно, Vk Клипы, ВКонтакте, YouTube, Instagram, TikTok, IT, Длиннопост

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

Telegram-бот для скачивания видео из VK, YouTube, *Instagram, Tiktok Telegram, Telegram бот, Скачивание, Загрузка, Бесплатно, Vk Клипы, ВКонтакте, YouTube, Instagram, TikTok, IT, Длиннопост

И получаем в ответ видео.

Загрузка видео с Instagram*

Telegram-бот для скачивания видео из VK, YouTube, *Instagram, Tiktok Telegram, Telegram бот, Скачивание, Загрузка, Бесплатно, Vk Клипы, ВКонтакте, YouTube, Instagram, TikTok, IT, Длиннопост

Отправляем боту любую ссылку. В ответ бот пришлет описание видео, ссылку на видео, автора, продолжительность видео.

Загрузка видео с TikTok.

Отправляем боту любую ссылку. В ответ бот пришлет описание видео, ссылку на видео, автора, продолжительность видео.

Telegram-бот для скачивания видео из VK, YouTube, *Instagram, Tiktok Telegram, Telegram бот, Скачивание, Загрузка, Бесплатно, Vk Клипы, ВКонтакте, YouTube, Instagram, TikTok, IT, Длиннопост

Планов и развития на бота - множество! Приятного пользования ботом!

Мы в социальных сетях:

Бот - https://t.me/DownloadSaveVideoBot

Обновления о боте - https://t.me/DownloadSaveVideo

*принадлежит компании Meta, признанной экстремистской и запрещённой на территории РФ

Показать полностью 6

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

Привет, Пикабу! Хочу рассказать историю о том, как, не будучи крутым сеньором и даже не имея многолетнего опыта в разработке, я смог создать WordCloud – Telegram-бота, который превращает ваши переписки в стильные открытки. Этот проект начался как обычный эксперимент, а в итоге стал чем-то, чем я действительно горжусь.

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

С чего всё началось?

Я всегда интересовался Python и разработкой ботов, но до этого писал только небольшие утилиты. Однажды мне пришла идея: а что, если можно было бы создавать красивые визуальные подарки из личных сообщений? Вдохновение пришло от wordcloud-генераторов, но мне хотелось сделать нечто большее – дать людям возможность запечатлеть в дизайне их собственные слова и эмоции.

Первый прототип

Я начал с простого – сделал скрипт на Python, который анализировал текст и генерировал облако слов. Затем добавил поддержку Telegram API, чтобы пользователь мог загружать свои переписки. На этом этапе всё было ужасно – обработка длилась долго, бот часто падал, а я не знал, как решить кучу ошибок. Но мне было интересно!

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

Первый прототип WordCloud

Улучшение бота

В процессе разработки я узнал, как:

  • Работать с многопоточностью, чтобы бот не вис при обработке больших файлов;

  • Использовать SQLite и JSON для хранения данных;

  • Оптимизировать генерацию изображений с помощью PIL и WordCloud;

  • Делать удобные inline-кнопки в Telegram для выбора макетов и цветовых схем.

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

Что делает WordCloud?

Бот позволяет: ✅ Превращать переписку в красивое облако слов; ✅ Выбирать один из нескольких макетов и цветовых схем; ✅ Получать изображение в Telegram или заказать печатную открытку.

Итог: это возможно даже для джуна

Если вы тоже только начинаете путь в программировании – не бойтесь пробовать! Даже с базовыми знаниями можно делать крутые проекты. Главное – терпение, практика и желание докопаться до сути.

📌 Попробовать WordCloud: https://t.me/wordcloudgiftbot


Спасибо, если дочитали до конца! Если вам интересны детали, спрашивайте в комментариях, буду рад поделиться опытом!

Показать полностью 2
Отличная работа, все прочитано!