Random Vinchik Bot - Telegram-бот для регулярных "рандом-винчиков": собирает желающих из нескольких чатов и формирует честные команды по 4–5 человек, минимизируя повторы встреч. Что умеет: • Панель администратора (/vinchik): статус раунда, запуск рассылки опросов по выбранным чатам, закрытие раунда, просмотр истории. • Опросы в чатах: "Да, локально" (только свой чат) и "Да, глобально" (межчатовые группы). Учитываются только пользователи с публичным @username. • Распределение команд: отдельно по каждому чату + "фруктовые" межчатовые группы; учёт пар предыдущих встреч. • Публикация результатов: локальные - в соответствующие чаты, глобальные - во все. • Логи и устойчивость: неблокирующая запись апдейтов/сущностей в БД, отправка трассировок ошибок в служебный чат. • История: список всех раундов с деталями и пагинацией. Технологии: • Python 3.13+, aiogram 3 (polling/webhook), asyncio. • MongoDB с автоматической инициализацией коллекций/индексов (mongojet/mongospec), модели на msgspec. • Конфигурация через YAML, строгая валидация. • Собственный FSM-storage на MongoDB. • Алгоритм подбора групп с 10 000 итераций и "умным" финальным распределением (без одиночек, опциональное заполнение до 5). • Трекер членства бота в чатах и прав админа. Результат: готовое решение для комьюнити-менеджмента и нетворкинга - админ запускает раунд, участники голосуют, бот считает "честные" команды и публикует их по чатам. Гибкая конфигурация, безопасный деплой, подробные логи и удобная поддержка.