Skip to content

ramazanov-rv/kingsman-bot

Repository files navigation

Mr.Kingsman Logo

Mr.Kingsman Telegram Bot - это инновационный Telegram бот для премиального бренда мужской одежды Mr.Kingsman, который переносит роскошный опыт выбора элегантных костюмов в цифровое пространство. Бот предоставляет уникальную возможность виртуальной примерки костюмов и других элементов гардероба из коллекций Mr.Kingsman с помощью технологий искусственного интеллекта.

✨ Основные возможности

  • 🤖 AI Виртуальная примерка - Революционная технология для примерки костюмов Mr.Kingsman
  • 🎩 Премиальный каталог - Полный ассортимент костюмов, пиджаков и аксессуаров Mr.Kingsman
  • 📱 Telegram интеграция - Seamless веб-приложение внутри Telegram
  • 💳 Безопасная оплата - Интеграция с платежной системой ЮKassa
  • 📦 Умные уведомления - Автоматические сообщения о статусе заказа
  • 👔 Персонализация - Индивидуальный подход к каждому клиенту

Python Telegram Flask Status

🎯 О Mr.Kingsman

Mr.Kingsman - это премиальный бренд мужской одежды, специализирующийся на создании элегантных костюмов и классической мужской одежды высочайшего качества. Наш Telegram бот создан для того, чтобы сделать процесс выбора и покупки одежды Mr.Kingsman максимально удобным и технологичным, объединив традиции высокого портновского мастерства с инновационными AI технологиями.

🚀 Быстрый старт

Для пользователей

  1. Найдите бота: @KingsmanTryOnBot в Telegram
  2. Запустите: /start
  3. Перейдите в каталог: Нажмите кнопку "👔 Перейти в каталог"
  4. Выберите товар и используйте AI примерку
  5. Оформите заказ и получите уведомление в боте

Для разработчиков

# Клонирование репозитория
git clone <repo-url>
cd tgbot-backend

# Установка зависимостей
pip install -r requirements.txt

# Настройка переменных окружения
export BOT_TOKEN="your_bot_token"
export USER_ID="admin_telegram_id"

# Запуск в development режиме
python3 app.py

# Запуск в production с webhook
python3 run_webhook.py

🏗 Архитектура системы

graph TB
    A[Telegram User] --> B[Telegram Bot API]
    B --> C[HTTPS Webhook]
    C --> D[Flask Application]
    D --> E[Bot Logic]
    D --> F[Payment System]
    
    G[Web Frontend] --> H[Strapi CMS]
    H --> I[Product Database]
    
    E --> J[Order Creation]
    F --> K[ЮKassa API]
    J --> L[Notifications]
    
    subgraph "Server Infrastructure"
        C
        D
        H
    end
    
    subgraph "External Services"
        B
        K
    end
Loading

Компоненты

Компонент Описание Порт URL
Flask Bot Telegram webhook + API 5000 /webhook, /api/*
Strapi CMS Контент и продукты 1337 /admin, /api/clothes
Nginx Reverse proxy + SSL 443 https://kingsman-tryon.ru
ЮKassa Платежная система - External API

📱 Функциональность бота

Команды

Команда Описание Пример
/start Главное меню и приветствие Показывает кнопку перехода в каталог
/help Справка и инструкции Подробное описание возможностей
/check_payment Проверка статуса платежа Статус оплаты по ID заказа

API Endpoints

POST /webhook
Content-Type: application/json
# Прием сообщений от Telegram

POST /api/create-order
Content-Type: application/json
{
  "user_id": 123456789,
  "amount": 15000,
  "product_name": "Куртка-рубашка",
  "size": "M"
}

GET /api/health
# Проверка работоспособности

POST /set_webhook
# Установка webhook URL

GET /webhook_info
# Информация о настроенном webhook

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

1. Знакомство с ботом

Пользователь → /start → Приветствие + кнопка "👔 Перейти в каталог"

2. Выбор и примерка

Каталог → Выбор товара → Загрузка фото → AI примерка → Результат

3. Оформление заказа

Добавить в корзину → Контакты → Способ доставки → Подтверждение

4. Уведомления в боте

📦 Новый заказ создан!

Заказ: #ORD20250825141234
Товар: Куртка-рубашка (M)
Сумма: 15,000 ₽

💳 Оплатить: [Ссылка на ЮKassa]

5. Платеж и подтверждение

ЮKassa → Оплата → Уведомление об успешной оплате → Обработка заказа

⚙️ Установка и настройка

Системные требования

  • OS: Ubuntu 20.04+ / CentOS 7+
  • Python: 3.12+
  • Node.js: 18+ (для Strapi)
  • Nginx: 1.18+
  • SSL: Let's Encrypt

Зависимости

Flask==2.3.3
Flask-CORS==4.0.0
gunicorn==21.2.0
python-telegram-bot==20.7
requests==2.31.0
yookassa

Переменные окружения

# Bot Configuration
BOT_TOKEN=8346020608:AAH8pJra8M_A6DiIFh7FF36o_g8fc5CUEzs
USER_ID=334372128
WEBHOOK_URL=https://kingsman-tryon.ru/webhook

# Payment Configuration
YOOKASSA_ACCOUNT_ID=1151305
YOOKASSA_SECRET_KEY=test_V5OrB1MwwKjVJnLp-xwATpKVdhaCKYRFyYyaLJibEJI

# Server Configuration
FLASK_ENV=production
SERVER_IP=109.196.98.31

Nginx конфигурация

server {
    listen 443 ssl http2;
    server_name kingsman-tryon.ru;
    
    ssl_certificate /etc/letsencrypt/live/kingsman-tryon.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/kingsman-tryon.ru/privkey.pem;
    
    # Telegram Bot Webhook
    location = /webhook {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # Bot API endpoints
    location ~ ^/api/(health|create-order)$ {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # Strapi CMS (все остальное)
    location / {
        proxy_pass http://127.0.0.1:1337;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
        proxy_read_timeout 86400;
    }
    
    client_max_body_size 50M;
}

# HTTP to HTTPS redirect
server {
    listen 80;
    server_name kingsman-tryon.ru;
    return 301 https://$server_name$request_uri;
}

🚀 Развертывание

Production запуск

# 1. Установка зависимостей
pip install -r requirements.txt --break-system-packages

# 2. Запуск в фоновом режиме
nohup python3 run_webhook.py > webhook.log 2>&1 &

# 3. Установка webhook
curl -X POST https://kingsman-tryon.ru/set_webhook

# 4. Проверка статуса
curl https://kingsman-tryon.ru/webhook_info
curl https://kingsman-tryon.ru/api/health

Автозапуск (systemd)

# /etc/systemd/system/kingsman-bot.service
[Unit]
Description=Kingsman Telegram Bot
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/tgbot-backend
ExecStart=/usr/bin/python3 run_webhook.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl enable kingsman-bot
sudo systemctl start kingsman-bot
sudo systemctl status kingsman-bot

📊 Мониторинг

Логирование

# Логи бота
tail -f /root/tgbot-backend/webhook.log

# Системные логи
journalctl -u kingsman-bot -f

# Nginx логи
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

Проверка здоровья системы

# Статус процессов
ps aux | grep -E "(python3|node|nginx)"

# Использование ресурсов
htop

# Проверка портов
netstat -tlnp | grep -E "(5000|1337|80|443)"

# Тест API
curl -I https://kingsman-tryon.ru/api/health
curl -I https://kingsman-tryon.ru/api/clothes
curl https://kingsman-tryon.ru/webhook_info

Ключевые метрики

  • Время отклика: < 500ms для API
  • Uptime: > 99.9%
  • Конверсия: визиты → заказы → оплаты
  • Активные пользователи: дневные/недельные
  • Популярные товары: по количеству примерок

🚨 Troubleshooting

Частые проблемы

1. Бот не отвечает

# Проверить процесс
ps aux | grep run_webhook.py

# Проверить логи
tail -20 webhook.log

# Перезапустить
pkill -f run_webhook.py
nohup python3 run_webhook.py > webhook.log 2>&1 &

2. 404 ошибки API

# Проверить Nginx конфигурацию
nginx -t
systemctl reload nginx

# Проверить маршрутизацию
curl -I https://kingsman-tryon.ru/api/clothes  # → Strapi
curl -I https://kingsman-tryon.ru/api/health   # → Flask Bot

3. Webhook не работает

# Проверить webhook
curl https://kingsman-tryon.ru/webhook_info

# Переустановить webhook
curl -X POST https://kingsman-tryon.ru/set_webhook

# Проверить SSL сертификат
openssl s_client -connect kingsman-tryon.ru:443

4. Проблемы с платежами

# Проверить ЮKassa настройки
grep "yookassa" webhook.log

# Проверить создание платежей
grep "create_payment" webhook.log

# Тест API ЮKassa
curl -H "Authorization: Basic <base64(account_id:secret_key)>" \
     https://api.yookassa.ru/v3/payments

🔒 Безопасность

Реализованные меры

  • HTTPS Only: Все соединения через SSL
  • Webhook Validation: Проверка подписи Telegram
  • Input Sanitization: Валидация всех входящих данных
  • Rate Limiting: Защита от спама и DDoS
  • Secure Headers: CSP, HSTS, X-Frame-Options

Рекомендации

  • 🔐 Регулярно обновляйте SSL сертификаты
  • 🔑 Храните API ключи в переменных окружения
  • 📝 Логируйте все действия для аудита
  • 🚨 Мониторьте подозрительную активность
  • 🔄 Регулярно обновляйте зависимости

📚 API Документация

Webhook API

# Telegram Update Processing
@app.route('/webhook', methods=['POST'])
def webhook():
    """
    Обработчик webhook для сообщений Telegram
    
    Returns:
        200: Success
        500: Error
    """

Order API

# Order Creation
@app.route('/api/create-order', methods=['POST'])
def create_order():
    """
    Создание нового заказа из веб-приложения
    
    Request Body:
        {
            "user_id": int,
            "amount": float,
            "product_name": str,
            "size": str,
            "color": str,
            "quantity": int
        }
        
    Returns:
        200: Order created successfully
        400: Validation error
        500: Server error
    """

Bot Commands

# Основные команды бота
commands = [
    ("start", "Запуск бота и главное меню"),
    ("help", "Справка и инструкции"),
    ("check_payment", "Проверка статуса платежа")
]

🤝 Участие в разработке

Структура проекта

tgbot-backend/
├── app.py              # Flask приложение и API
├── bot.py              # Логика Telegram бота
├── run_webhook.py      # Запуск в webhook режиме
├── run_both.py         # Запуск polling + Flask (dev)
├── requirements.txt    # Python зависимости
├── webhook.log         # Логи приложения
└── README.md          # Документация

Стиль кода

  • Python: PEP 8
  • Logging: Structured logging с timestamps
  • Error Handling: Try-catch с логированием
  • Comments: Русские комментарии для бизнес-логики

Git Workflow

# Создание feature branch
git checkout -b feature/new-feature

# Commit с описательным сообщением
git commit -m "feat: добавить новую функцию примерки"

# Push и создание PR
git push origin feature/new-feature

📞 Поддержка

  • Техническая поддержка: Через GitHub Issues
  • Документация: README.md + код комментарии
  • Логи: /root/tgbot-backend/webhook.log
  • Мониторинг: https://kingsman-tryon.ru/api/health

🎭 AI Примерка

Наша система виртуальной примерки использует передовые технологии компьютерного зрения и искусственного интеллекта для создания реалистичной визуализации костюмов Mr.Kingsman на фотографии клиента.

Процесс работы:

  1. Загрузка фотографии пользователя через веб-приложение
  2. AI анализ пропорций и размеров тела
  3. Наложение выбранной модели костюма из коллекции Mr.Kingsman
  4. Корректировка посадки и драпировки ткани
  5. Визуализация результата с учетом освещения и перспективы

👥 Команда

  • Рамазанов Рамазан - FullStack Developer & Project Lead
  • Гаджиев Важид - ML-Engineer & AI Specialist
  • Юнусов Омар - Backend Developer & DevOps

📞 Контакты

Для вопросов и предложений по Mr.Kingsman Telegram Bot:

  • Telegram: @G0lem
  • Техподдержка: Через GitHub Issues

📄 Лицензия

Проект разработан эксклюзивно для бренда Mr.Kingsman. Все права защищены.


🏆 Статус проекта

  • Production Ready: Работает на https://kingsman-tryon.ru
  • HTTPS Webhook: Настроен и активен
  • Payment Integration: ЮKassa интегрирована
  • AI Try-On: Работает через веб-интерфейс
  • Monitoring: Логирование и health checks

Версия: 1.0
Дата обновления: 25.08.2025
Статус: 🟢 Активен


Разработано с ❤️ для Mr.Kingsman

About

AI-powered Telegram bot for Mr.Kingsman premium menswear with virtual try-on technology

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages