Необходимо написать бота для телеграм со следующими функционалом:
Общее описание
Необходимо разработать Telegram-бота на языке программирования Python с использованием фреймворков aiogram или pyTelegramBotAPI. Бот будет предоставлять пользователям возможность искать автозапчасти одновременно на трёх ресурсах: Exist.ru, Avtoto.ru, Autodoc.ru. Для доступа к функционалу будет предусмотрена система платных подписок, тестовый бесплатный период, а также возможность использования реферальной программы. В боте также будет предусмотрено администраторское управление пользователями и рассылками.
---
Функциональные требования
1. Основные функции
1. Поиск запчастей:
Возможность искать автозапчасти по:
Марке и модели автомобиля с указанием года выпуска.
VIN-номеру автомобиля.
Серийному номеру искомой запчасти.
Для каждого запроса предоставлять:
Точные ссылки на найденные запчасти.
Стоимость запчастей.
Краткую информацию о запчасти.
Отзывы и общую оценку по данным ресурса.
Используемые ресурсы для парсинга:
Exist.ru
Avtoto.ru
Autodoc.ru
2. Система подписок:
Тестовый бесплатный период.
Ограничение функционала после окончания бесплатного периода.
Платная подписка с возможностью рекуррентных платежей через Робокассу.
Возможность администратору вручную назначать подписку пользователям.
3. Реферальная система:
Пользователь может приглашать друзей через реферальную ссылку.
Приобретение платной подписки приглашённым другом добавляет рефереру бесплатный период использования.
4. История запросов:
Хранение истории поисковых запросов каждого пользователя.
Возможность просмотра и повторного использования запросов.
5. Профиль пользователя:
Хранение контактной информации пользователя: номер телефона, имя, фамилия и никнейм.
Возможность просматривать текущий статус подписки.
6. Поддержка:
Кнопка для обращения в службу поддержки (в виде отправки сообщения администратору).
7. Рассылка администратора:
Возможность массовой рассылки сообщений всем активным пользователям бота.
2. Меню бота
Кнопки основного меню:
Поиск запчасти.
Мой профиль.
История запросов.
Поддержка.
---
Технические требования
1. Архитектура бота
Использовать aiogram или pyTelegramBotAPI для обработки запросов.
Использовать многопоточность для обработки параллельных запросов.
Парсинг данных с сайтов реализовать через BeautifulSoup или Scrapy.
2. Хранение данных
Использовать PostgreSQL для хранения:
Истории запросов.
Пользовательской информации.
Статусов подписки.
Реферальных данных.
3. Администрирование
Панель для администратора в боте с функциями:
Просмотр списка пользователей.
Назначение подписки.
Создание и отправка рассылок.
4. Интеграция с платежной системой
Использовать Робокассу для оплаты подписки:
Настроить рекуррентные платежи.
Хранить статусы транзакций в базе данных.
5. Логи и мониторинг
Логирование всех запросов и ошибок.
Настройка мониторинга сервера через Prometheus или аналогичный инструмент.
---
Нефункциональные требования
1. Производительность:
Поддержка одновременной работы до 500 активных пользователей.
2. Масштабируемость:
Возможность расширения функционала и добавления новых ресурсов для парсинга.
3. Надежность:
Гарантированное обновление информации при запросах с минимальной задержкой.
---
Итог
На основе описанного функционала и требований, бот будет предоставлять пользователям удобный инструмент для поиска запчастей, обеспечивать доступ к платным функциям через подписки, а также обладать реферальной программой и возможностью администрирования.