# MONT Vendor Maps Flask-приложение для визуализации и редактирования матрицы: - `вендор -> продукты -> категории` - два контура: `Инфраструктура` и `ИБ` ## Возможности - фильтрация по вендорам и категориям на главной - отображение продуктов по выбранным фильтрам - переключение контура `Инфраструктура / ИБ` - админ-панель: - добавление/удаление вендоров - добавление/удаление категорий - добавление/удаление продуктов - редактирование матрицы `продукт × категория` (автосохранение по чекбоксам) - удобная прокрутка матрицы (вертикальная + горизонтальная) ## Текущая структура проекта - `main.py` - минимальный entrypoint - `zkart_app/__init__.py` - `create_app`, регистрация роутов, `init_db` - `zkart_app/config.py` - конфиг/константы (`ADMIN_PATH`, env, пути) - `zkart_app/routes.py` - HTTP-роуты - `zkart_app/db.py` - работа с SQLite, импорт и bootstrap - `templates/` - HTML-шаблоны (`index.html`, `admin.html`, `login.html`) - `static/css/` - CSS - `static/js/` - JS - `matrix.db` - рабочая SQLite БД ## Роуты - `/` - главная страница - `/api/data?scope=infra|ib` - API данных матрицы - `/health` - healthcheck - `/assets/mont-logo` - логотип - `/{ADMIN_PATH}` - админка (секретный путь в `zkart_app/config.py`) ## API `GET /api/data?scope=infra|ib` Возвращает: - `vendors` - `categories` - `products` - `product_links` - `links` ## Запуск локально ```bash python3 -m venv .venv .venv/bin/python -m ensurepip --upgrade .venv/bin/python -m pip install -r requirements.txt .venv/bin/python main.py ``` ## Docker ```bash docker compose up -d --build ``` Порт: `5000`. ## Переменные окружения - `SECRET_KEY` - секрет Flask-сессии - `ENABLE_BOOTSTRAP`: - `0` (по умолчанию) - не выполнять автосидинг/автоимпорт - `1` - разрешить bootstrap (seed + импорт) - `WEB_CONCURRENCY` - число gunicorn worker-процессов (по умолчанию `4`) - `GUNICORN_THREADS` - число потоков на worker (по умолчанию `5`) По умолчанию Gunicorn дает минимум `20` параллельных обработок (`4 x 5`). ## Данные - Инфраструктурные пакеты импорта: `infra1..infra4` - ИБ-пакеты импорта: `иб1..иб4` (используются для массового заполнения `ib_*` таблиц) - Бэкапы БД: директория `backups/`