Telegram бот
Цель: Создать Telegram-бота, который собирает данные пользователей, Контакт пользователя (Номер телефона, имя, фамилия, пол, дата рождения) через участие в конкурсах. Бот должен предоставлять администратору возможность управления конкурсами и экспорта данных в Excel.
Основные функции:
Сбор данных участников.
Создание и управление конкурсами.
Генерация Excel-файла с собранными данными.
Целевая аудитория:
Администраторы (создание конкурсов, управление данными).
Пользователи Telegram (участие в конкурсах).
1. Функционал бота
Для администратора:
Создание конкурса:
Команда
/create_contest
для запуска мастера создания.Поля для заполнения:
Название конкурса.
Описание.
Дата начала/окончания.
После создания — автоматическая генерация кнопки «Участвовать» в чате бота.
Управление конкурсами:
Просмотр списка активных/завершенных конкурсов (команда
/contests
).Возможность закрыть конкурс досрочно.
Экспорт данных:
Команда
/export_data
для выгрузки данных в Excel.Формат Excel-файла:
Столбцы: ID пользователя, Имя, Фамилия, Пол, Дата рождения, Название конкурса, Дата участия.
Данные сортируются по дате участия.
Для пользователя:
Участие в конкурсе:
Кнопка «Участвовать» в описании конкурса.
После нажатия — запрос данных:
Имя и фамилия (текстовый ввод).
Пол (кнопки «Мужской», «Женский», «Другое»).
Дата рождения (календарь или ввод в формате ДД.ММ.ГГГГ).
Подтверждение данных:
Пользователь видит сводку введенных данных.
Кнопка «Подтвердить» для завершения регистрации.
Уведомления:
Сообщение об успешном участии в конкурсе.
2. Технические требования
Язык программирования: Python (рекомендуется с библиотекой
aiogram
).База данных: SQLite/PostgreSQL для хранения данных участников и конкурсов.
Excel-экспорт: Использование библиотеки
openpyxl
илиpandas
.Хостинг: Развертывание на VPS (например, Heroku, AWS) или сервере с поддержкой Python.
Безопасность:
Ограничение доступа к админ-командам (проверка по ID администратора).
Защита от спама (лимит запросов).
3. Этапы разработки
Прототип интерфейса:
Настройка команд бота.
Реализация кнопки «Участвовать» и формы ввода данных.
База данных:
Создание таблиц:
Users
(user_id, first_name, last_name, gender, birthdate).Contests
(contest_id, title, description, start_date, end_date).Participants
(user_id, contest_id, participation_date).
Админ-панель:
Реализация команд
/create_contest
,/contests
,/export_data
.
Тестирование:
Проверка валидации данных (например, корректность даты).
Тест экспорта в Excel.
Документация:
Инструкция по установке и настройке бота.
Руководство для администратора.
4. Сроки и бюджет
Срок выполнения: 1-14 дней
Бюджет: Договорной
Заявки фрилансеров

