85 строки
6.3 KiB
Markdown
85 строки
6.3 KiB
Markdown
# 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 нет.
|