vkmgr — StackWorks VK Hub

Заготовка VK Mini App для владельцев групп ВКонтакте. Замысел: дать группе мини-кабинет, где не теряются заявки — каталог услуг, форма заявки, статусы, роли (owner / manager / client), админский список и уведомление в Telegram о новой заявке.

Фактически в репозитории от этого замысла есть только схема базы SQLite, манифест зависимостей backend и пример файла окружения. Кода приложения — ни серверного, ни клиентского — нет.

Стек

По тому, что есть в коде:

  • Node.js, ES-модули ("type": "module").
  • Express 4, helmet, cors, morgan, zod — заявлены в зависимостях.
  • SQLite через better-sqlite3, режим WAL, включённые внешние ключи.
  • dotenv, node-fetch.

По исходному README (в репозитории не реализовано): React + VKUI + VK Bridge на фронтенде, Vite, VK Mini Apps API, Telegram Bot API, nginx и docker-compose.

Структура

Путь Назначение
backend/src/db.js Единственный файл с кодом. Подключение к SQLite, создание каталога БД, migrate() с полной DDL-схемой, запуск миграции при импорте и режим --migrate
backend/package.json Зависимости и скрипты dev / start / migrate
backend/.env.example Пример переменных окружения
VERSION 0.1.0
.gitignore Игнор node_modules, .env, data/, dist/, файлов SQLite
README.upstream.md Исходное описание замысла и планов от автора

Таблицы в схеме: users, groups, group_members, services, clients, leads, lead_comments, faq_items, audit_logs.

Каталоги frontend/, docs/, infra/ и скрипт install.sh, описанные в исходном README, в репозитории отсутствуют.

Как запустить

Приложение запустить нельзя: backend/src/server.js, на который ссылаются скрипты dev и start, в репозитории отсутствует.

Работает только создание схемы БД:

cd backend
cp .env.example .env
npm install
npm run migrate

После этого в DATABASE_PATH появится файл SQLite со всеми таблицами.

Команды из исходного README (npm run dev в backend, весь блок про frontend, install.sh, настройка VK Mini App и certbot) относятся к ненаписанному коду и сейчас не выполняются.

Конфигурация

Всё из backend/.env.example. В коде реально читается только DATABASE_PATH, остальные переменные заготовлены под ненаписанный сервер.

Имя Назначение Пример
APP_PORT Порт HTTP-сервера 8080
APP_ORIGIN Разрешённый источник для CORS (адрес фронтенда) http://localhost:5173
DATABASE_PATH Путь к файлу SQLite ./data/vk_hub.sqlite
VK_APP_ID ID приложения VK Mini App см. .env
VK_APP_SECRET Секрет приложения VK для проверки подписи launch params см. .env
TELEGRAM_BOT_TOKEN Токен бота для уведомлений о заявках см. .env
TELEGRAM_ADMIN_CHAT_ID Чат, куда шлются уведомления см. .env

Переменная VITE_API_URL для фронтенда упоминается в исходном README, но файла frontend/.env.example в репозитории нет.

Состояние

Заброшено на стадии заготовки. 6 коммитов, все за один день — 19.05.2026, последний коммит той же датой. Версия 0.1.0.

По сути это спроектированная схема данных плюс описание планов. Ни одного HTTP-обработчика, ни одной строки фронтенда.

Что не доделано

  • Нет backend/src/server.js — сервер не написан. Скрипты npm run dev и npm start падают.
  • Нет ни одного маршрута API: инициализация пользователя, подключение группы, каталог услуг, создание заявки, список заявок, смена статуса — всё только в планах.
  • Нет фронтенда: каталог frontend/ отсутствует целиком.
  • Нет проверки подписи VK launch params, хотя VK_APP_SECRET заготовлен.
  • Нет отправки уведомлений в Telegram, хотя node-fetch и токен заготовлены.
  • Заявленные зависимости express, helmet, cors, morgan, zod, node-fetch нигде не импортируются.
  • Нет install.sh, docker-compose, конфигурации nginx и каталога docs/, упомянутых в исходном README.
  • Миграции одноразовые: migrate() выполняется как побочный эффект импорта db.js, версионирования схемы нет. Изменение схемы потребует ручных ALTER.
  • Таблица audit_logs создана, но писать в неё некому.
  • Проверка прав администратора группы через VK API, тарифы и оплата, rate-limit — сам автор в исходном README отметил их как обязательные перед боевым запуском.
  • Тестов нет, CI нет.
S
Описание
No description provided
Readme
39 KiB
Languages
JavaScript 100%