Files
cm-over/01-system-overview.md
2026-02-22 19:30:40 +03:00

2.6 KiB
Raw Permalink Blame History

System Overview

Назначение проекта

DuExpBot — это платформа VK-бота и miniapp-панели для управления чатами и расширениями (аддонами).

Основные направления:

  1. чат-менеджмент (модерация, роли, события, таймеры, статистика, правила);
  2. модульные команды и утилиты;
  3. каталог аддонов с модерацией и установкой в чаты;
  4. интеграции с внешними сервисами (whois/ip/minecraft-query/callback).

Технологический стек

  1. Backend: Go.
  2. База данных: PostgreSQL.
  3. ORM/миграции: GORM + AutoMigrate.
  4. VK API: vksdk.
  5. Miniapp frontend: React + TypeScript + Vite.
  6. Router HTTP: gorilla/mux.

Высокоуровневая архитектура

  1. internal/bootstrap/*
    Сборка и запуск приложения, wiring зависимостей.
  2. internal/modules/*
    Бизнес-модули (chatmanager, addons, manager API, callbacks и т.д.).
  3. internal/modules/cmd/*
    Командные модули бота.
  4. internal/domain/*
    Модели данных (ORM-сущности).
  5. internal/db/*
    Инициализация БД и миграции совместимости.
  6. miniapp/*
    UI-панель для управления.

Ключевые подсистемы

  1. chatmanager
    Управление поведением бота в чатах, RBAC, санкции, аудит, автоматизация.
  2. addons
    Чатовые аддоны, рантайм исполнения, каталогные установки.
  3. manager
    API для miniapp (чаты, группы, настройки, каталог, модерация).
  4. callbacks
    Webhook/callback-инфраструктура.
  5. query
    Запросы к игровым серверам (Minecraft), обновление статуса.
  6. whois + whois-service
    WHOIS/RDAP lookup контур.

Модель расширяемости

  1. Ботовые команды регистрируются модульно.
  2. Аддоны могут исполняться в sandbox/изолированном runtime.
  3. Каталог аддонов имеет этапы: draft -> pending -> approved/rejected/archived.
  4. Уровни аккаунта (account_type) применяются для глобальных прав (например, модерация каталога).