feat: vendor-product-category matrix with infra/ib modes and docker setup

This commit is contained in:
2026-04-14 20:57:26 +00:00
commit 0b3cc949c3
10 changed files with 1761 additions and 0 deletions

8
.dockerignore Normal file
View File

@@ -0,0 +1,8 @@
.git
.venv
__pycache__
*.pyc
*.pyo
*.pyd
*.db-shm
*.db-wal

15
Dockerfile Normal file
View File

@@ -0,0 +1,15 @@
FROM python:3.12-slim
WORKDIR /app
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "main.py"]

49
README.md Normal file
View File

@@ -0,0 +1,49 @@
# MONT Vendor Maps
Flask-приложение для визуализации и редактирования матрицы:
- вендор -> продукты -> категории
- в двух режимах: Инфраструктура и ИБ
## Возможности
- фильтрация по вендорам и категориям
- отображение продуктов по выбранным фильтрам
- переключение контуров `Инфраструктура / ИБ`
- отдельный визуальный стиль для ИБ
- админ-панель с редактированием:
- вендоров
- категорий
- продуктов
- матрицы `продукт × категория`
## API
`GET /api/data?scope=infra|ib`
Возвращает JSON:
- `vendors`
- `categories`
- `products`
- `product_links`
- `links` (агрегированные vendor-category, для совместимости)
## Локальный запуск
```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-сессии.
## База данных
SQLite: `matrix.db`.
Содержит данные по двум контурам (`infra` и `ib`), включая продукты и связи категорий.

BIN
Z-card_РФ.xlsx Normal file

Binary file not shown.

Binary file not shown.

11
docker-compose.yml Normal file
View File

@@ -0,0 +1,11 @@
services:
zkart:
build: .
container_name: zkart-app
ports:
- "5000:5000"
environment:
SECRET_KEY: ${SECRET_KEY:-change-me-please}
volumes:
- ./matrix.db:/app/matrix.db
restart: unless-stopped

1676
main.py Normal file

File diff suppressed because it is too large Load Diff

BIN
matrix.db Normal file

Binary file not shown.

BIN
mont_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

2
requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
Flask>=3.0.0
openpyxl>=3.1.0