Андрей Храмов KHRAMOVANDREW Сбер ID
Рейтинг
1 696
№ 640 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Опыт работы
4 года
На сайте с
2026 года
Юридический статус
Самозанятый

Telegram-бот для тенниc-клуба: подбор соперников, расписание игр и уведомления

Используемые навыки CI/CD Linux Python SQLite Telegram API

Описание

Клиент — теннисный клуб — обратился с задачей автоматизировать поиск партнёров для игры среди участников закрытого Telegram-сообщества.

До этого игроки договаривались о матчах вручную в общем чате, что создавало хаос: сообщения терялись, было сложно найти соперника своего уровня и пола, а администраторам приходилось вручную модерировать переписку.

Клиент поставил задачи:

Разделить участников по уровню игры (NTRP) и полу для корректного подбора соперников
Автоматизировать процесс создания и подтверждения игр
Организовать структуру в Telegram-группе через темы (топики) для разных уровней
Настроить автоматические напоминания о предстоящих играх
Добавить панель администратора для управления клубом
Обеспечить стабильную работу бота 24/7 с возможностью быстрого обновления функционала

Решение

1. Разработка ядра бота

Построил бота на Python с использованием библиотеки python-telegram-bot и асинхронной базой данных SQLite (aiosqlite). Реализовал:

Систему регистрации с указанием пола, уровня игры (Masters/Tour/Challenger/Satellite/Women) и контактных данных
Создание игровых заявок с указанием даты, времени и места — с упрощённым форматом ввода (ДД.ММ ЧЧ:ММ) и автоматическим определением года
Логику подбора соперников строго по совпадению пола и уровня, чтобы исключить некорректные пары
Публикацию заявок в соответствующие темы группы в зависимости от уровня игрока

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

Настроил систему автоматических напоминаний через JobQueue: за сутки и за 2 часа до игры участникам приходит персональное сообщение в личку с деталями матча и именем соперника. Отдельно решил проблему с временными зонами — все даты обрабатываются как timezone-aware объекты (Europe/Moscow), что исключило расхождение во времени между сервером и часовым поясом пользователей.

3. Административная панель

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

4. Обработка нестандартных ситуаций

Устранил ряд технических проблем в процессе эксплуатации:

Конфликты обработчиков кнопок при одновременных действиях нескольких пользователей
Некорректный сброс данных при редактировании профиля
Ошибки при работе с играми без назначенного партнёра
Таймауты соединения с Telegram API при нестабильной сети

5. Инфраструктура и деплой

Настроил процесс поставки изменений:

Развернул проект в GitLab с раздельными ветками develop (разработка) и main (защищённая, только через Merge Request)
Написал .gitlab-ci.yml для автоматической проверки синтаксиса и линтинга кода при каждом пуше
Настроил ручной деплой на продакшн-сервер по SSH с автоматическим бэкапом базы данных перед каждым обновлением
Перевёл бота на управление через systemd (автозапуск, автоперезапуск при сбоях, логирование через journalctl) вместо ручного запуска процесса

Результат

Клиент получил полностью автоматизированную систему организации игр, которая работает в фоновом режиме без участия администратора:

Участники клуба самостоятельно находят соперников подходящего уровня и пола, договариваются о времени и месте, получают напоминания и могут перенести или отменить игру в пару кликов
Администратор избавлен от ручной модерации — все заявки автоматически распределяются по нужным темам группы, а панель администратора даёт полный контроль над сообществом
Стабильность — бот работает как системный сервис с автоперезапуском, что исключает простои
Скорость обновлений — благодаря CI/CD пайплайну новые функции и исправления доставляются на сервер за несколько минут, а защищённая ветка main исключает случайные поломки продакшн-версии

Бот находится в активной эксплуатации, регулярно дорабатывается по запросам клиента и участников клуба.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Telegram-бот для доставки домашней еды: заказы, онлайн-оплата, программа лояльности и инструменты для повара
Telegram-бот для доставки домашней еды: заказы, онлайн-оплата, программа лояльности и инструменты для повара
7
Веб-разработка и IT Telegram-бот для 14-дневного марафона по метаболизму: автоматизация анкет,  напоминаний, достижений и оплаты для онлайн-школы
Telegram-бот для 14-дневного марафона по метаболизму: автоматизация анкет, напоминаний, достижений и оплаты для онлайн-школы
7
Веб-разработка и IT Telegram-бот модерации теннисного сообщества с анкетированием и деплоем на VPS
Telegram-бот модерации теннисного сообщества с анкетированием и деплоем на VPS
8
Веб-разработка и IT Telegram-бот с ИИ по фармакологии для студентов медвуза на базе RAG и Groq Llama
Telegram-бот с ИИ по фармакологии для студентов медвуза на базе RAG и Groq Llama
10