Skip to content

GrimStack-Education/stackScout

Repository files navigation

StackScout

Интеллектуальная платформа для анализа Open Source библиотек

Next.js Spring Boot Docker CI


Содержание


О проекте

Проблема: Dependency Hell

Современная разработка программного обеспечения во многом зависит от сторонних библиотек. Однако выбор правильной зависимости представляет серьёзную проблему: уязвимости, конфликты лицензий и риски поддержки.

Решение: StackScout

StackScout — это комплексная платформа для управления программными активами (Software Asset Management). Она автоматизирует сбор, анализ и мониторинг open-source библиотек, предоставляя оценку их «здоровья» и юридической чистоты.


Технологический стек

Категория Технологии Версия / Детали
Backend Java, Spring Boot, Spring Security, Spring Data JPA Java 21, Spring Boot 3.5
База данных PostgreSQL, Redis, RabbitMQ PostgreSQL 16, Redis 7+
Frontend Next.js, React, Material UI, TypeScript Next.js 16, React 19, MUI 7
Инфраструктура Docker, Docker Compose, GitHub Actions
Мониторинг Prometheus, Grafana

Архитектура

flowchart LR
    subgraph Client["Клиент"]
        User["Пользователь /\nАдминистратор"]
    end

    subgraph FE["Frontend (Next.js)"]
        App["Next.js App"]
    end

    subgraph BE["Backend (Spring Boot)"]
        API["REST API v1"]
        Services["Services /\nBusiness Logic"]
        Queries["Selectors /\nQueries"]
        API --> Services
        API --> Queries
    end

    subgraph Storage["Storage"]
        DB[("PostgreSQL")]
        Cache[("Redis")]
        Queue["RabbitMQ"]
    end

    subgraph DS["Источники данных"]
        PyPI["PyPI API"]
        Docker["Docker Hub"]
        Npm["npm Registry"]
        Maven["Maven Central"]
        NuGet["NuGet"]
        GitHub["GitHub API"]
        GitLab["GitLab API"]
    end

    User --> App
    App --> API
    Services --> DB
    Queries --> DB
    Services <--> Cache
    Services <--> Queue
    DS --> Services
Loading

Быстрый старт

Требования

Компонент Минимум Рекомендуется
Java 21+ 21
Node.js 18.18+ 20+
pnpm 8+ Latest
Docker 24+ Latest
Docker Compose 2.20+ Latest

Клонирование репозитория

git clone https://github.com/Zero-Logic-Education/StackScout.git

cd stackscout

Настройки по умолчанию:

  • PostgreSQL: localhost:5433 / postgres / postgres
  • Redis: localhost:6379
  • RabbitMQ: localhost:5672 / guest / guest
  • Backend API: http://localhost:8081

3. Запуск инфраструктуры

# Сборка и запуск
docker compose up -d --build

# Статус
docker compose ps

Команды

Backend (Gradle)

# Сборка проекта
cd backend && ./gradlew build

# Запуск в режиме разработки
cd backend && ./gradlew bootRun

# Запуск тестов
cd backend && ./gradlew test

# Сборка без тестов
cd backend && ./gradlew build -x test

# Очистка артефактов сборки
cd backend && ./gradlew clean

Frontend (pnpm)

# Установка зависимостей
cd frontend && pnpm install

# Запуск dev-сервера (http://localhost:3000)
cd frontend && pnpm dev

# Сборка для production
cd frontend && pnpm build

# Запуск production-сборки
cd frontend && pnpm start

# Линтинг
cd frontend && pnpm lint

Docker

# Запустить все сервисы инфраструктуры
docker compose up -d

# Остановить все сервисы
docker compose down

# Пересобрать образы и запустить
docker compose up -d --build

# Логи конкретного сервиса
docker compose logs -f postgres
docker compose logs -f redis

# Полная очистка (включая volumes)
docker compose down -v

Docker через pnpm (из корня проекта)

# Сборка docker-образов
pnpm docker:build

# Запуск контейнеров
pnpm docker:up

# Пересобрать и запустить
pnpm docker:up:build

# Остановить контейнеры
pnpm docker:down

# Логи (передайте имя сервиса после --)
pnpm docker:logs -- frontend
pnpm docker:logs -- app

Статус проекта

StackScout находится в рабочем состоянии и включает:

  • CI/CD через GitHub Actions;
  • backend и frontend тесты;
  • нагрузочное тестирование через k6;
  • мониторинг через Prometheus и Grafana;
  • Docker Compose для локального запуска;
  • русскоязычный отчет по нагрузочному тестированию в load-tests/report.md.

Полезные команды

# Нагрузочный тест API
npm run load:api

# Нагрузочный тест поиска
npm run load:search

# Нагрузочный тест admin/scraper endpoint'ов
npm run load:scraper

Мониторинг

StackScout включает полноценную систему мониторинга на базе Prometheus и Grafana:

Что мониторится

  • Backend API (request rate, response time, errors)
  • JVM (memory, GC, threads)
  • PostgreSQL (connections, transactions, performance)
  • Redis (clients, operations, cache hit rate)
  • RabbitMQ (queues, messages, consumers)

Дашборды

После входа в Grafana перейдите в Dashboards → StackScout → StackScout System Overview

Подробная документация: infrastructure/monitoring/README.md

About

Интеллектуальная платформа для анализа и мониторинга Open Source библиотек на Java Spring Boot

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Contributors