# 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`, в репозитории отсутствует. Работает только создание схемы БД: ```bash 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 нет.