Skip to content

Рефакторинг backend/frontend, усиление надежности и локального запуска - #3

Closed
aandrey58 wants to merge 2 commits into
sputnik-llc:mainfrom
aandrey58:feat/fullstack-hardening
Closed

aandrey58 wants to merge 2 commits into
sputnik-llc:mainfrom
aandrey58:feat/fullstack-hardening

Conversation

@aandrey58

Copy link
Copy Markdown

Что сделано

  • Выполнен рефакторинг backend и frontend без изменения целевой бизнес-логики.
  • Усилен backend API:
    • добавлена базовая защита через x-api-key для основных эндпоинтов;
    • добавлена пагинация для /files и /alerts (limit / offset);
    • улучшен upload-пайплайн: запись чанками, ограничение размера, базовая валидация расширения и MIME, проверка сигнатуры PDF.
  • Выполнена оптимизация backend:
    • уменьшено потребление памяти при загрузке и обработке файлов;
    • ограничен объем читаемых данных при извлечении метаданных в фоновых задачах.
  • Проведена декомпозиция frontend по слоям:
    • lib — API-клиент и конфигурация запросов;
    • hooks — загрузка данных дашборда и отдельная логика upload;
    • components — таблицы и модальное окно вынесены в переиспользуемые UI-компоненты;
    • types — выделены DTO-типы.
  • Исправлены инфраструктурные и DX-проблемы:
    • обновлены README (корневой и frontend),
    • добавлены .env примеры,
    • расширен .gitignore,
    • поправлены Docker/dev-конфиги.

Зачем

Цель изменений — сделать проект стабильнее, безопаснее и проще в сопровождении, а также закрыть требования тестового задания по рефакторингу backend, оптимизации и разбиению frontend-логики на слои.

Проверка

  • uv run pytest tests (backend)
  • python -m compileall src (backend)
  • npm run build (frontend)
  • Ручной smoke: загрузка файла, обработка, отображение алертов
  • Проверка x-api-key:
    • без заголовка — запрос отклоняется,
    • с валидным ключом — 200 OK

@aandrey58 aandrey58 closed this by deleting the head repository Sep 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant