Django-приложение для импорта, мониторинга и анализа печати из JSON/CSV источников.
Print Advisor объединяет веб-интерфейс для операторов и фоновый watcher, который автоматически подхватывает файлы, загружает события печати в БД и раскладывает обработанные/ошибочные данные по отдельным каталогам.
Если печатные события приходят в виде файлов из разных источников, команда быстро упирается в ручной импорт, разрозненные данные и слабый операционный контроль.
Этот проект нужен, чтобы:
- автоматически забирать JSON/CSV из watch-каталога;
- загружать события в БД без ручной рутины;
- отделять успешно обработанные файлы от проблемных;
- давать операторам web-интерфейс и health-сигналы для контроля системы.
- устойчивый импортный pipeline для печатных данных;
- прозрачное разделение
watch,processed,quarantine; - веб-дашборды и health endpoint для повседневной эксплуатации;
- Docker-based запуск для локальной среды и production/LAN сценариев.
JSON/CSV file
-> data/watch/
-> watcher
-> printing/services.py
-> PostgreSQL
-> data/processed/ on success
-> data/quarantine/ on error
- Runtime разделен на
web,watcher,dbи опциональныйnginx. - Первый импорт через watcher уже задокументирован: файл кладется в
data/watch/, затем проверяютсяdata/processed/иdata/quarantine/. - Для эксплуатации есть health endpoint, smoke script и watcher runbook-команды.
- Для качества уже описаны локальные тесты, coverage threshold, lint checks и Docker smoke-проверки.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env || true
python manage.py migrate
python manage.py runserver 0.0.0.0:8000Откройте http://127.0.0.1:8000 (админка: http://127.0.0.1:8000/admin).
- Автоматический импорт печатных событий и пользователей из
JSON/CSV - Разделение файлов на
watch,processed,quarantineдля устойчивой обработки - Веб-дашборды и health endpoint для операционного контроля
- Запуск в Docker (
web,watcher,db) с поддержкой reverse proxy
# 1) Поднять стек
docker compose up --build -d
# 2) Применить миграции
docker compose exec web python manage.py migrate
# 3) Проверить health
curl http://localhost/health
# 4) Положить файл для watcher
cp ./tests/fixtures/events_valid.json ./data/watch/
docker compose logs watcher --tail=50Если импорт успешен, файл переместится в data/processed/.
| Guide | Description |
|---|---|
| Getting Started | Установка, запуск и первый импорт |
| Configuration | Переменные окружения и профили |
| Architecture | Структура проекта и поток данных |
| Deployment | Docker/Production и запуск в ЛВС |
| Operations | Runbook, watcher и операционные задачи |
| Testing | Тесты, покрытие и smoke-проверки |
| Troubleshooting | Частые проблемы и быстрые фиксы |
Дополнительно:
- Подробный чеклист деплоя:
docs/DEPLOYMENT_CHECKLIST.md - Readiness для нового сервера:
docs/DEPLOYMENT_READINESS.md - Nginx/HTTPS детали:
docs/NGINX_REVERSE_PROXY_IMPLEMENTATION.md,docs/WINDOWS_CA_CERTIFICATES.md - Статус проекта и риски:
docs/STATUS.md
Внутренний проект команды. Правила использования определяются владельцем репозитория.