Files
HereConnect-obsidian/Telegram-бот - Список задач для реализации функционала.md

6.1 KiB

1. Основной функционал

  1. Запуск бота

    • Реализовать команду /start с приветственным сообщением:
      Привет! Я бот сервиса "НаСвязи". Помогу вам создать QR-код (для автомобиля, питомца, входной двери и т.д.).
      
  2. Выбор объекта

    • Использовать replyKeyboardMarkup для отображения кнопок:
      • Автомобиль
      • Питомец
      • Дверь квартиры
      • Стол в ресторане
      • Другое
    • Обработать выбор пользователя и переход к следующему шагу.
  3. Ввод названия QR-кода

    • Запросить название QR-кода с валидацией (минимум 2 символа).
    • Реализовать повторный запрос при неверном вводе.
  4. Настройка действий

    • Использовать replyKeyboardMarkup для выбора действий:
      • Отправить сообщение
      • Показать номер телефона
      • Прикрепить геопозицию
    • Обработать выбор пользователя и сохранить выбранные действия.
  5. Генерация QR-кода

    • Создать функционал генерации QR-кода с указанным названием и действиями.
    • Отправить изображение QR-кода пользователю.
  6. Инструкции по размещению

    • Отправить рекомендации по размещению в зависимости от выбранного объекта.
    • Добавить кнопку с keyboardButtonUrl для перехода на страницу доната:
      Сделайте НаСвязи удобнее. Будем рады вашей поддержке: [https://hereconnect.condev.ru/donate](https://hereconnect.condev.ru/donate)
      

2. Уведомления

  1. Обработка сообщений через QR-код

    • Получать данные о сообщении, отправленном через QR-код.
    • Отправлять уведомление пользователю:
      Новое сообщение для QR-кода "Моя машина": "Ваш автомобиль мешает проезду."
      
  2. Отображение действий через QR-код

    • Обрабатывать действие "Показать номер телефона" и фиксировать запрос:
      QR-код "Моя машина": номер телефона владельца показан.
      

3. Управление QR-кодами

  1. Просмотр списка QR-кодов

    • Отправить список QR-кодов пользователя в виде кнопок:
      Вот ваши QR-коды:
      [Моя машина] [Ошейник собаки]
      
    • Реализовать выбор QR-кода для управления.
  2. Редактирование QR-кода

    • Добавить возможность изменить название QR-кода.
    • Реализовать выбор доступных действий для редактирования.
  3. Удаление QR-кода

    • Подтвердить удаление перед выполнением.
    • Удалить QR-код и уведомить пользователя:
      QR-код "Моя машина" успешно удалён.
      

4. Получение статистики

  1. Просмотр статистики
    • Реализовать команду /stats для получения статистики:
      Статистика для "Моя машина":
      - Сканирований: 12
      - Сообщений: 5
      
    • Отправить данные в текстовом формате.

5. Дополнительные возможности

  1. Запрос номера телефона

    • Использовать keyboardButtonRequestPhone для запроса номера телефона владельца.
  2. Запрос геопозиции

    • Использовать keyboardButtonRequestGeoLocation для получения геопозиции.
  3. Поддержка инлайн-кнопок

    • Добавить инлайн-кнопки к уведомлениям:
      • Ответить на сообщение.
      • Удалить сообщение.

6. Обработка ошибок

  1. Неверный ввод на каждом этапе
    • Реализовать обработку ошибок:
      • Некорректный выбор объекта.
      • Неверное название QR-кода.
      • Неправильный выбор действий.
    • Отправлять соответствующие сообщения и запрашивать повторный ввод.

7. Административный функционал

  1. Управление пользователями

    • Добавить функционал для администратора:
      • Просмотр статистики всех пользователей.
      • Удаление неактивных QR-кодов.
  2. Журнал ошибок

    • Логировать ошибки пользователей для анализа и улучшения UX.

Приоритеты

  1. Основной функционал.
  2. Уведомления.
  3. Управление QR-кодами.
  4. Получение статистики.
  5. Дополнительные возможности.
  6. Обработка ошибок.
  7. Административный функционал.