Skip to content

Карта репозиториев

Этот раздел нужен как техническая карта ownership по всей экосистеме NPPWEB.

Основные репозитории

РепозиторийТехнологииНазначение
infraDocker Compose, Makeлокальный и deploy-контур
contractsJSON Schema, GraphQL SDLобщие схемы и контракты
npp-backendNestJS, GraphQL, PrismaAPI, auth, ingest, отчёты и аналитика
npp-webNuxt 3, Tailwind, Apollofrontend кабинета и аналитических экранов
processing-workerNode.js workerнормализация и ingest
scrape-helperNode.js workerсбор данных, source runs, артефакты

Как читать экосистему

Технический контур

  • infra собирает локальную среду;
  • contracts задаёт формы данных;
  • scrape-helper и processing-worker обеспечивают путь raw → normalized → ingest;
  • npp-backend держит бизнес-состояние;
  • npp-web визуализирует контракт.

Аналитический контур

  • агрегаты и отчётные сценарии живут в npp-backend;
  • дашборд, аналитика и отчёты отображаются в npp-web;
  • источники и качество контура читаются одновременно как технический и бизнес-сигнал.

Зависимости между репозиториями

РепозиторийОт чего зависитЧто даёт другим
infraenv-конфигурация и Dockerfiles всех сервисовединый способ запуска и деплоя
contractsсогласование схем между сервисамиsource of truth по API и событиям
scrape-helperRabbitMQ, MinIO, proxy, contractsraw-события и артефакты
processing-workerRabbitMQ, backend ingest, contractsнормализованный поток
npp-backendPostgres, Redis, Prisma, ingest и source runsGraphQL API, отчёты, аналитика
npp-webGraphQL API и клиентский runtime Nuxtинтерфейс для чтения и управления

Ownership по изменениям

ИзменениеКуда идти первым
новый внешний источникscrape-helper
изменение схемы raw/normalizedcontracts, затем worker/backend
новая бизнес-метрикаnpp-backend
новая карточка/таблица/экранnpp-web
новый runtime-сервис или envinfra
изменение GraphQL APIcontracts + npp-backend + npp-web

Рекомендуемый порядок изучения

  1. Быстрый старт
  2. Архитектура
  3. Аналитический контур
  4. infra
  5. npp-backend
  6. npp-web
  7. processing-worker
  8. scrape-helper

Что особенно важно новым участникам

  • не путать источник данных и аналитический срез;
  • не менять GraphQL-схему только на frontend или только на backend;
  • помнить, что отчёты могут жить snapshot-ом и быть воспроизводимыми;
  • понимать: 0 публикаций — это не всегда “нет данных”, иногда это “проблема в сборе или фильтрации”.

Техническая и аналитическая документация платформы NPPWEB.