Перейти к основному содержимому

DM Shop — обзор проекта

DM Shop — интернет-магазин электроники с полноценной админ-панелью. Система построена на микросервисной архитектуре: отдельный Spring Boot бэкенд, Next.js фронтенд и Python-мок внешнего поставщика.

Витрина DigitalMsk

Компоненты системы

КомпонентСтекНазначение
back/Spring Boot 4 / Java 21REST API, бизнес-логика, работа с БД
front/Next.js 16 / React 19 / TypeScriptКлиентская витрина и админ-панель
mock-api/Python FastAPIМок API склада mphone для разработки
PostgreSQL 15DockerОсновная реляционная база данных
SeaweedFSDockerS3-совместимое хранилище файлов/изображений

Схема взаимодействия

Браузер (Next.js)
↕ REST / JSON (порт 3000 → 8080)
Spring Boot API
↕ JDBC/JPA
PostgreSQL (порт 45432)
↕ S3 API (порт 8333)
SeaweedFS
↕ HTTP (порт 8010)
mock-api / mphone API

Ключевые возможности

  • Каталог товаров с категориями, брендами и атрибутами
  • Корзина, избранное, недавно просмотренные и оформление заказов
  • JWT-аутентификация с пятью ролями: USER, EDITOR, MANAGER, ADMIN, SUPER_ADMIN
  • Загрузка и хранение изображений через S3 (медиатека)
  • Синхронизация каталога из внешней системы mphone (по расписанию, каждые 5 минут)
  • Загрузка атрибутов и изображений из XML-фида (Яндекс.Маркет YML) через многоэтапный пайплайн
  • Автоматический парсинг изображений товаров с сайта поставщика (очередь + лог загрузок)
  • Управление баннерами, преимуществами, отзывами, конфигурацией сайта
  • Обработка заказов с передачей во внешнюю систему mphone и расчётом доставки
  • Заявки с сайта (обратная связь) с защитой от спама
  • Email-уведомления о новых заказах и заявках
  • Учёт лицензии (баланс часов поддержки)

:::tip Часто задаваемые вопросы Если вы только знакомитесь с системой — загляните в раздел FAQ: там собраны ответы на типичные вопросы администраторов и разработчиков. :::

Раздел технической документации

ДокументСодержание
АрхитектураСлои, паттерны, поток данных, фоновые задачи
БэкендSpring Boot: контроллеры, сервисы, репозитории
База данныхСхема таблиц, миграции Liquibase
БезопасностьJWT, Spring Security, пять ролей и правила доступа
Синхронизация с mphoneИнтеграция с mphone API, расписание, фоновые задачи
XML-пайплайнЭтапы загрузки фида, снепшоты, история запусков, переопределения картинок
Атрибуты из XML-фидаStaging-таблица и правила переименования атрибутов
Парсинг изображенийОчередь скрейпинга картинок с сайта поставщика, лог загрузок
ФронтендNext.js: страницы, Redux, API-клиент
ИнфраструктураDocker Compose, SeaweedFS, окружения