Стартап
December 1

Бот для публикации анонсов и постов в Telegram-группе. Техническое задание (ТЗ)

Бот для публикации анонсов и постов в Telegram-группе


Цель проекта:

Создать Telegram-бота, который:

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

Функциональные требования:

1. Приветствие новых участников:

  • Отправлять сообщение приветствия каждому новому участнику.
    • Сообщение должно включать:
      • Имя/ник пользователя.
      • Ссылку на правила группы (указанная администратором).
      • Уведомление о праве на 1 бесплатную публикацию в месяц и предложении платных услуг.
  • Пример сообщения:Привет, [@username]! Добро пожаловать в нашу группу! Ознакомьтесь с правилами: [ссылка на закрепленное сообщение]. Вы можете разместить 1 бесплатный пост в месяц. Для дополнительных публикаций напишите мне, я помогу вам! 🚀

2. Контроль публикаций:

  • Ограничение бесплатных постов:
    • Проверять, публиковал ли пользователь посты в текущем месяце.
    • Если это первый пост месяца — публиковать.
    • Если это второй или более пост:
      • Удалять сообщение.
      • Уведомлять пользователя о причине удаления (см. раздел «Сообщения»).
  • Уведомление пользователю:Ваш пост удалён, так как у вас уже есть 1 бесплатная публикация в этом месяце. Подождите до [дата] или напишите мне для размещения поста за отдельную плату.

3. Платные публикации:

  • Интеграция с платёжной системой (например, через Telegram Payments или сторонние API).
  • Возможность оплаты через бота для размещения дополнительных постов.

4. Управление ссылками в постах:

  • Разрешить ссылки только на соцсети, каналы или проекты.
  • При публикации бот должен проверять:
    • Соответствие ссылок тематике группы.
    • Наличие полезного описания в посте (например, минимальная длина текста).

5. Настройки администратора:

  • Панель управления (через команды):
    • Установка и изменение правил группы.
    • Настройка лимита бесплатных публикаций.
    • Просмотр списка пользователей и их публикаций.
    • Управление стоимостью платных постов.

6. Логирование:

  • Ведение логов:
    • Дата и время публикаций.
    • Удалённые посты.
    • Оплаченные посты.

Технические требования:

  • Платформа: Telegram Bot API.
  • Язык разработки: Python (предпочтительно).
  • Хостинг: Поддержка серверной части для работы бота.
  • База данных: Для хранения информации о пользователях, публикациях и оплатах (например, PostgreSQL или SQLite).
  • Интеграция с платёжной системой: ЮKassa или другая по договорённости.

Пользовательские сценарии:

Сценарий 1: Новый участник вступает в группу

  1. Участник присоединяется к группе.
  2. Бот отправляет приветственное сообщение с именем/ником, ссылкой на правила и описанием условий публикации.

Сценарий 2: Пользователь публикует первый пост в месяц

  1. Пользователь отправляет сообщение.
  2. Бот проверяет, что это первая публикация за месяц.
  3. Бот публикует сообщение.

Сценарий 3: Пользователь публикует второй пост в месяц

  1. Пользователь отправляет сообщение.
  2. Бот проверяет, что у пользователя уже есть одна публикация в текущем месяце.
  3. Бот удаляет сообщение и уведомляет пользователя.

Сценарий 4: Пользователь хочет опубликовать дополнительный пост

  1. Пользователь пишет боту с просьбой опубликовать второй пост.
  2. Бот предоставляет ссылку для оплаты.
  3. После оплаты бот публикует сообщение.

Дизайн сообщений бота:

  • Сообщения должны быть лаконичными, с эмодзи для выделения ключевых моментов.
  • Примеры сообщений включены в разделы выше.

Сроки и этапы разработки:

  1. Согласование ТЗ и проектирования: 1-3 дня.
  2. Разработка MVP: 2-3 дня.
    • Основные функции: приветствие, проверка публикаций, удаление лишних постов.
  3. Интеграция платёжной системы: 1-2 дня.
  4. Тестирование и доработка: 1 неделя.

Дополнительно:

  1. Документация по установке и настройке бота.
  2. Поддержка в течение 1 месяца после запуска.

Контакты для обсуждения: @fx0010