2.6 KiB
2.6 KiB
System Overview
Назначение проекта
DuExpBot — это платформа VK-бота и miniapp-панели для управления чатами и расширениями (аддонами).
Основные направления:
- чат-менеджмент (модерация, роли, события, таймеры, статистика, правила);
- модульные команды и утилиты;
- каталог аддонов с модерацией и установкой в чаты;
- интеграции с внешними сервисами (whois/ip/minecraft-query/callback).
Технологический стек
- Backend:
Go. - База данных:
PostgreSQL. - ORM/миграции:
GORM+AutoMigrate. - VK API:
vksdk. - Miniapp frontend:
React + TypeScript + Vite. - Router HTTP:
gorilla/mux.
Высокоуровневая архитектура
internal/bootstrap/*
Сборка и запуск приложения, wiring зависимостей.internal/modules/*
Бизнес-модули (chatmanager, addons, manager API, callbacks и т.д.).internal/modules/cmd/*
Командные модули бота.internal/domain/*
Модели данных (ORM-сущности).internal/db/*
Инициализация БД и миграции совместимости.miniapp/*
UI-панель для управления.
Ключевые подсистемы
chatmanager
Управление поведением бота в чатах, RBAC, санкции, аудит, автоматизация.addons
Чатовые аддоны, рантайм исполнения, каталогные установки.manager
API для miniapp (чаты, группы, настройки, каталог, модерация).callbacks
Webhook/callback-инфраструктура.query
Запросы к игровым серверам (Minecraft), обновление статуса.whois+whois-service
WHOIS/RDAP lookup контур.
Модель расширяемости
- Ботовые команды регистрируются модульно.
- Аддоны могут исполняться в sandbox/изолированном runtime.
- Каталог аддонов имеет этапы: draft -> pending -> approved/rejected/archived.
- Уровни аккаунта (
account_type) применяются для глобальных прав (например, модерация каталога).