Телеграм-бот для создания QR-кодов с детальной аналитикой
Обзор проекта
QRCraft Bot - это полнофункциональный бот для генерации стильных QR-кодов с интегрированной системой аналитики и отслеживания. Проект демонстрирует комплексную архитектуру с веб-сервером для отслеживания, геолокацией по IP, аналитикой устройств и автоматизированной системой очистки данных.
Ключевые возможности
- Генерация стильных QR-кодов: Три стиля оформления с поддержкой логотипов, цветовых схем и различных размеров
- Система отслеживания сканирований: Веб-эндпоинт для перехвата сканов с редиректом на оригинальный URL
- Подробная аналитика: Геолокация по IP, анализ устройств, браузеров, временных паттернов и статистика по странам
- Визуализация данных: Автоматическая генерация графиков сканирований с использованием matplotlib
- Автоматизированная система очистки: Фоновые задачи для удаления устаревших QR-кодов и оптимизации базы данных
Технический стек
Backend:
- Python - асинхронное программирование с async/await
- SQLAlchemy - асинхронный ORM для работы с базой данных
- aiogram - современный фреймворк для Telegram Bot API
- aiohttp - асинхронный HTTP сервер для отслеживания эндпоинтов
API Интеграции:
- Telegram Bot API - основной интерфейс пользователя
- ipapi.co - геолокация по IP адресам
DevOps & Tools:
- aiosqlite - асинхронный драйвер для SQLite
- PIL/Pillow - обработка изображений и генерация QR-кодов
- matplotlib - создание графиков и визуализация статистики
- user-agents - парсинг заголовков User-Agent
Система отслеживания и аналитики
- Промежуточные URL: Создание отслеживающих ссылок для перехвата сканирований перед редиректом
- Геолокация в реальном времени: Определение страны и города пользователя через IP API
- Анализ устройств: Подробный парсинг User-Agent для определения браузера, ОС и типа устройства
- Временная аналитика: Сбор статистики по часам и дням для выявления паттернов использования
Обработка изображений и персонализация
- Загрузка логотипов: Поддержка PNG/JPG до 1MB с автоматическим сжатием
- Удаление EXIF данных: Очистка метаданных для безопасности пользователей
- Цветовые схемы: Шесть предустановленных цветовых комбинаций
- Адаптивные размеры: Три варианта размеров для различных случаев использования
Основной Flow
Создание QR-кода
URL ввода -> выбор стиля -> настройки -> генерация -> отправка QR с отслеживающим URL
Просмотр статистики
Команда /stats_CODE -> извлечение данных из БД -> рендеринг графиков -> отправка подробной аналитики
Подробный процесс:
1. Ввод URL - пользователь отправляет ссылку для создания QR-кода.
2. Выбор параметров - стиль глаз, цвета, размер, логотип и срок действия.
3. Генерация QR - создание изображения с отслеживающим URL и сохранение в БД.
4. Отслеживание сканов - веб-сервер перехватывает сканы, собирает аналитику и делает редирект.
5. Аналитика - агрегация данных по странам, устройствам, времени с генерацией отчетов.
Ссылки
GitHub: [https://github.com/YouCanTrustMe/QRCraftBot}
#python #pytelegrambot #aiogram #SQLite
#webanalytics #geo #pillow #matplotlib #asyncio #tracking #telebot #qr
QRCraft Bot - это полнофункциональный бот для генерации стильных QR-кодов с интегрированной системой аналитики и отслеживания. Проект демонстрирует комплексную архитектуру с веб-сервером для отслеживания, геолокацией по IP, аналитикой устройств и автоматизированной системой очистки данных.
Ключевые возможности
- Генерация стильных QR-кодов: Три стиля оформления с поддержкой логотипов, цветовых схем и различных размеров
- Система отслеживания сканирований: Веб-эндпоинт для перехвата сканов с редиректом на оригинальный URL
- Подробная аналитика: Геолокация по IP, анализ устройств, браузеров, временных паттернов и статистика по странам
- Визуализация данных: Автоматическая генерация графиков сканирований с использованием matplotlib
- Автоматизированная система очистки: Фоновые задачи для удаления устаревших QR-кодов и оптимизации базы данных
Технический стек
Backend:
- Python - асинхронное программирование с async/await
- SQLAlchemy - асинхронный ORM для работы с базой данных
- aiogram - современный фреймворк для Telegram Bot API
- aiohttp - асинхронный HTTP сервер для отслеживания эндпоинтов
API Интеграции:
- Telegram Bot API - основной интерфейс пользователя
- ipapi.co - геолокация по IP адресам
DevOps & Tools:
- aiosqlite - асинхронный драйвер для SQLite
- PIL/Pillow - обработка изображений и генерация QR-кодов
- matplotlib - создание графиков и визуализация статистики
- user-agents - парсинг заголовков User-Agent
Система отслеживания и аналитики
- Промежуточные URL: Создание отслеживающих ссылок для перехвата сканирований перед редиректом
- Геолокация в реальном времени: Определение страны и города пользователя через IP API
- Анализ устройств: Подробный парсинг User-Agent для определения браузера, ОС и типа устройства
- Временная аналитика: Сбор статистики по часам и дням для выявления паттернов использования
Обработка изображений и персонализация
- Загрузка логотипов: Поддержка PNG/JPG до 1MB с автоматическим сжатием
- Удаление EXIF данных: Очистка метаданных для безопасности пользователей
- Цветовые схемы: Шесть предустановленных цветовых комбинаций
- Адаптивные размеры: Три варианта размеров для различных случаев использования
Основной Flow
Создание QR-кода
URL ввода -> выбор стиля -> настройки -> генерация -> отправка QR с отслеживающим URL
Просмотр статистики
Команда /stats_CODE -> извлечение данных из БД -> рендеринг графиков -> отправка подробной аналитики
Подробный процесс:
1. Ввод URL - пользователь отправляет ссылку для создания QR-кода.
2. Выбор параметров - стиль глаз, цвета, размер, логотип и срок действия.
3. Генерация QR - создание изображения с отслеживающим URL и сохранение в БД.
4. Отслеживание сканов - веб-сервер перехватывает сканы, собирает аналитику и делает редирект.
5. Аналитика - агрегация данных по странам, устройствам, времени с генерацией отчетов.
Ссылки
GitHub: [https://github.com/YouCanTrustMe/QRCraftBot}
#python #pytelegrambot #aiogram #SQLite
#webanalytics #geo #pillow #matplotlib #asyncio #tracking #telebot #qr