Техническое задание: Telegram-бот для публикации объявлений

Основная цель

Создание Telegram-бота, который выступает в качестве посредника между пользователями, желающими разместить объявление, и публичным каналом. Бот обеспечивает сбор данных, модерацию контента и контролируемую публикацию.

Функционал для пользователей

Главное меню (команда /start)

  • Подать объявление
  • Реклама на канале
  • Правила размещения

Процесс подачи объявления (пошаговый)

  • Текст: Ввод основного текста объявления.
  • Медиа: Возможность прикрепить до 10 фотографий или видео.
  • Город: Указание города.
  • Цена: Указание стоимости товара или услуги.
  • Контакт: Ввод контактных данных (никнейм в Telegram или номер телефона). Должна быть реализована кнопка "Отправить контакт" для удобства.

Ответ пользователю после отправки

  • Подать ещё одно объявление
  • Перейти на канал
  • Мы в социальной сети ВКонтакте

Функционал для модерации

Рабочее пространство

Все объявления от пользователей должны поступать в отдельную группу (модерационную), работающую в режиме "Forum Mode". Каждое объявление создается в отдельном топике.

Инструменты модератора

Под каждым объявлением в группе модерации должны быть кнопки:

  • Опубликовать: Немедленная отправка в канал, если позволяет лимит времени.
  • Отклонить: Отказ в публикации с уведомлением пользователя.
  • Поставить в очередь: Для отложенной публикации.

Система публикации

Ограничения

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

Логика работы

  • Если модератор нажимает "Опубликовать", но с момента последней публикации прошло менее 15 минут, бот предлагает автоматически "Поставить в очередь".
  • Если время вышло - объявление публикуется сразу.

Очередь публикаций

  • Для хранения очереди необходимо использовать Redis.
  • Реализовать механизм автоматической проверки и публикации следующего объявления из очереди, как только истекает временной интервал.

Технические требования и данные от заказчика

  • Токен для Telegram-бота.
  • ID модерационной группы (с включенным режимом топиков).
  • ID канала для публикации объявлений.
  • Текст правил размещения.
  • Контактные данные администратора для связи.

Ожидания от исполнителя

Исполнитель должен предоставить:

  • Рабочий, отлаженный код бота.
  • Краткую инструкцию по развертыванию и настройке.
  • Поддержку на этапе запуска.

Разработка веб-карты с наложением нескольких слоев данных

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