Skip to content

Реестр модулей

Статус: черновик по данным инвентаризации. Составлен по разбору 8 Laravel-проектов студии (каталог laravel/ — на текущем Linux-сервере это /home/aleksey/projects/laravel/). Для каждого модуля указан лучший донор — проект, где реализация наиболее зрелая и откуда портировать код в модуль CMS.

Отличие от каталога подсистем: тот — исчерпывающий каталог всего, что нужно полноценной CMS (ориентир — Битрикс). Этот реестр — что уже есть у студии и откуда портировать. Каталог задаёт цель, реестр — стартовый капитал.

Как читать

  • Донор — проект с самой зрелой реализацией (откуда брать код).
  • Зрелость: ★★★ готово к портированию · ★★ есть рабочая реализация · ★ прототип/идея.
  • Слой: ядро (нужно всем) / модуль (нужно некоторым).

Правило для ТЗ модуля: спека каждого модуля (его docs/module.md при реализации) обязана ссылаться на донорский код конкретным путём относительно корня laravel/ (/home/aleksey/projects/laravel/) — Claude Code при разработке читает образец, а не изобретает заново. Ключевые пути зафиксированы ниже и в тематических разборах (SEO, услуги artel).

Пути к донорскому коду (проверено по файловой системе)

Пути — относительно /home/aleksey/projects/laravel/. Все проверены на текущем Linux-сервере, кроме catalog — этот проект ещё не перенесён со старого Windows-сервера (192.168.1.2) и на диске пока отсутствует.

⚠️ universal вобрал artel-стек (сверено по коду, июль 2026). Весь домен услуг artel-23ru (модели Service*, Brand*, Location, ObjectType, CaseStudy, Calculator*, Estimate*, Dictionary*, SeoBlock/SeoMeta/SeoTemplate, сервисы SeoService/DeclensionService/SitemapService/EstimateCalculator, трейты HasDeclensions/BelongsToCity) перенесён в universal в обобщённом виде: setting() из БД вместо хардкода config('artel.*'), SeoBlock расширен entity-scope (привязка к category/product). Версии в universal свежее (июнь–июль 2026 против марта–апреля в artel). При портировании начинать с universal-версии, artel-23ru — первоисточник и эталон предметной модели.

МеханизмПуть-образец
Блочный движок, BlockRegistry, writeruniversal/src/app/Cms/ (BlockRegistry.php, Blocks/, PageBlockWriter.php, BlockMediaResolver.php, Contracts/)
SEO-домен (шаблоны, мета, аудит, LLM-мета)gulaev-dev/src/app/Domains/Seo/
Гео/мультигород, city-оверрайдыgulaev-dev/src/app/Domains/Geo/ · er/project/src/app/Domain/Geo/
Умный SEO-фильтр целикомer/project/src/app/Domain/Seo/
Биллинг/подписки (Cashier, крипта)er/project/src/app/Domain/Billing/
Бронирование (слоты)er/project/src/app/Domain/Booking/
Настройки (стор с city-измерением)er/project/src/app/Domain/Settings/ · universal (settings-таблица)
SEO услуг: падежи, шаблоны, Schema.orgartel-23ru/src/app/Services/SeoService.php, DeclensionService.php, SitemapService.php + Traits/HasDeclensions.php, Traits/BelongsToCity.php · свежая обобщённая версия: те же файлы в universal/src/app/
Калькулятор/сметаartel-23ru/src/app/Services/EstimateCalculator.php · universal (Estimate*)
Уведомления (шина каналов)freelance/project/src/app/Domains/Communication/
Платежи/эскроу/спорыfreelance/project/src/app/Domains/{Payments,Escrow,Arbitration}/ · notal/src/app/Services/
Входящие вебхуки (подпись, идемпотентность)notal/src/app/Http/Controllers/WebhookController.php · notal/src/app/Http/Middleware/EnsureWebhookSignature.php
Репутация/антифрод-сигналыfreelance/project/src/app/Domains/Reputation/
2FA/идентификацияfreelance/project/src/app/Domains/Identity/
Склад: остатки, резервы, поставкиmasha/src/app/Domain/{Stock,Inventory,Reservations,Supply}/
Импорт каталога, Wildberries-обменmasha/src/app/Domain/{Import,Wb}/ · universal (Import/*)
CDN-инвалидация, кеш-сервис, аудитcatalog/src/app/Services/ (Cdn/, CdnPurgeService.php, CacheService.php, AuditLogger.php, Etl/) — ⚠️ проект ещё не перенесён на этот сервер
PDF/опросы/wizardreferendum/app/ (Services, Legislation)

Ядро (cms/core) — нужно любому сайту

ПодсистемаДонорЗрелостьЧто даёт
Движок страниц + блокиuniversal (app/Cms/*), gulaev-dev★★★Page + PageBlock + BlockRegistry, drag&drop-сборка
BlockRegistry (открытый)universal (переделать из жёсткого)★★реестр типов блоков — точка расширения
Настройкиuniversal, gulaev-dev★★★setting('group.key') из БД + Filament-страница
Медиатекавсе проекты (spatie/medialibrary)★★★загрузка/ресайз, пресеты конверсий
SEO (мета/шаблоны/sitemap)gulaev-dev, er★★★резолвер мета, sitemap, robots, редиректы
Формы/заявки (Leads)freelance (каналы), universal★★★заявка → очередь → шина нотификаций
Кеш-слойcatalog, universal★★★теговый page-cache + инвалидация из Filament
Менюuniversal (полу-готово)★★header/footer data-driven, привязка к Page
Админ-shellFilament + роли★★панель, роли/права, дашборд

Модули первой очереди (портируются из universal под первый заказ)

МодульДонорЗрелостьОписание
Каталог (товары/услуги)universal (товары), catalog (гео)★★★категории, карточки, фильтры, поиск — highload-уровень, фаза 2; для лёгкой корп-витрины без корзины см. cms/catalog-showcase в «Крупных модулях» ниже
Гео/мультигород + склоненияer (HasDeclensions), gulaev-dev★★★города, регионы, падежи, BelongsToCity, ResolveCity middleware
SEO-движок (расширенный)gulaev-dev, er★★★auto-linking, hreflang, аудит, orphan-детект, health-check
Блог/статьи (пресет типа контента, ревизия ТЗ предстоит — engine §16)gulaev-dev, universal★★★посты, рубрики, теги, блочный контент
AI-контентuniversal/artel (ClaudeArticleGenerator)★★регион-SEO-тексты, статьи, alt-тексты — в очереди, идемпотентно; ТЗ создано 15.07.2026 (cms/ai-content) — приоритет P2, реализация отложена (проектируется, внедрение позже)
Калькуляторы (обобщённый)universal (смета), gulaev-dev, referendum★★конструктор калькуляторов из секций/полей
Уведомления (multi-channel)freelance (BaseNotification), notal★★★email/telegram/push, resolver каналов, preferences
Sitemap/кеш-прогревer, catalog, notal★★★несколько xml, HTML-версия, пинг поисковикам

Модули по мере заказов

МодульДонорЗрелостьОписание
Поиск (Scout+Meilisearch/ES)catalog (intent), freelance★★★полнотекстовый поиск, определение намерения
Платежи/биллингnotal (YooKassa+эскроу), er (Cashier/крипто)★★★приём платежей, эскроу, споры, тарифы, PlanGate
Отзывы + антифрод (отзывы — пресет типа контента, ревизия ТЗ предстоит — engine §16; антифрод остаётся модулем)catalog, er★★★модерация, агрегат рейтинга, антифрод
FAQ (кандидат в пресет типа контента, модуль уже реализован в коде)несколько★★вопрос-ответ, группировка, Schema.org FAQPage
Галереи (пресет типа контента, ревизия ТЗ предстоит — engine §16)artel-23ru, universal★★альбомы изображений, лайтбокс; см. также «Портфолио/кейсы» ниже
Баннеры/слайдеры (пресет типа контента, ревизия ТЗ предстоит — engine §16; порог переиспользования — модулем становится только при повторном использовании слайда)несколько★★ротация промо-слайдов/баннеров
Реферальная программаnotal★★коды, бонусы, балансовые транзакции
Промокоды/сертификатыnotal★★промокоды, подарочные сертификаты
2FA / безопасностьer, freelance (google2fa)★★двухфакторка, QR
Роли/права (расширенные)freelance, referendum (spatie)★★RBAC, staff-роли
Аудит/журнал действийfreelance, referendum★★activity log, audit log
PDF-документыreferendum (dompdf)★★генерация счетов/договоров/справок
Опросы/голосованияreferendum★★опросы, голоса
Wizard/многошаговые формыreferendum★★сессия визарда, сложные анкеты
Склад/инвентарь (e-commerce)masha★★★остатки, движения, страховой запас
Глоссарий/справочник3 проекта (Dictionary)★★термины, SEO-полезно
Импорт каталога (от донора)universal (Import/*)★★импорт товаров из внешних источников
Прайс-экспорт (XLSX)universal★★выгрузка прайс-листа
CDN-инвалидацияcatalog (Bunny/CF драйверы)★★★purge при изменении контента
Magic-login (passwordless)notal★★вход по ссылке

Крупные модули (из расширенных требований)

Проявились при проработке SEO-гибкости, интеграций, кабинетов и услуг. Часть с донорами, часть — новая разработка. См. каталог подсистем, SEO, интеграции, кабинеты.

МодульДонорЗрелостьОписание
Умный SEO-фильтрer (Domain/Seo/*)★★★посадочные из комбинаций фильтров, ЧПУ, min_results, каноникал, orphan-прополка
Мультигород/региональностьgulaev-dev (city_overrides), er★★★город по гео, полевые оверрайды регион→город, склонения, региональные цены/данные
SEO-движок (аудит+краулер)gulaev-dev★★★краулер, 18+ проверок, дубли/orphan-детект, LLM-генерация мета, Вебмастер/IndexNow
Услуги (иерархия)artel-23ru (Direction→Category→Service)★★★3-уровневая иерархия услуг, цены с типом/единицей. См. разбор
SEO услуг (generic-движок)artel-23ru (SeoService, HasDeclensions)★★★падежи, шаблоны-переменные, кросс-продукт ЧПУ, двойная Schema.org — главный переносимый актив
Кросс-оси услугartel-23ru (Location/Brand/ObjectType)★★район × бренд × тип объекта, комбинаторные посадочные
Калькулятор услуг/сметartel-23ru, universal (Estimate*)★★сметы, работы, материалы, 3 tier цен; конструктор калькуляторов
Портфолио/кейсыartel-23ru (CaseStudy), universal★★кейсы работ, привязка к услугам, галереи
GraphQL API (модуль поверх REST-ядра)— (новое)Lighthouse: гибкие выборки для мобильных/партнёров; REST-слой, версии и OpenAPI — в ядре (API-контракт)
Клиентский кабинет B2Cнесколько★★профиль, заказы, бонусы, обращения (Inertia+React)
Клиентский кабинет B2B— (новое)юрлица, сотрудники, договоры, кредит-лимит, персональные цены
Мультивендор-маркетплейсnotal (эскроу)★★продавцы, витрины, комиссии, выплаты, рейтинги, сплит-заказы
UGC-публикации + модерацияcatalog, er (антифрод)★★публикации пользователей, премодерация, репутация, жалобы
Мобильный API + push(push-server)★★BFF-эндпоинты, FCM/APNs/RuStore, токен-авторизация, deep links
Шина интеграций— (новое)единый слой коннекторов: креды, ретраи, логи, очередь
Платёжные шлюзы РФnotal★★★ЮKassa/Тинькофф/Робокасса/СБП через абстрактный слой
Доставка РФ— (новое)СДЭК/Почта/Boxberry через абстрактный слой, ПВЗ
1С-обмен (CommerceML)— (новое)выгрузка каталога, загрузка заказов
Корзина + заказы (магазин)masha★★корзина, оформление, статусы — только для магазинов
Витрина товаров без корзины (cms/catalog-showcase)universal★★лёгкая корп-витрина товаров/услуг без корзины/склада/торговых предложений; suggests поиск, related-content, мультигород, галереи; НЕ commerce-* (см. commerce-catalog выше — фаза 2); приоритет P1
Библиотека секций/паттернов (cms/section-patterns)studio-core (UX-референс, без кода)готовые наборы блоков (Gutenberg-style) поверх BlockRegistry, вставка одной кнопкой; suggests лендинги; приоритет P0
Конструктор форм (cms/form-builder)пресеты форм + конструктор кастом-полей поверх ядровых cms_forms/LeadService (готового переносимого конструктора у доноров нет — формализует ручную практику); suggests шину уведомлений, капча-интеграции, мультигород; приоритет P1
Инъекция кода в head/body (cms/head-scripts)CSP-гард для доверенных вставок стороннего кода (верификация, чаты, кастомные скрипты) через швы layout.head/layout.body_end; suggests мультигород, аудит; приоритет P1

Донор-проекты (сводка)

ПроектСпециализация как донора
universalблочный движок (прародитель ядра), каталог товаров, калькулятор сметы, импорт, Contact (лид без магазина) · с июня 2026 — обобщённый порт всего artel-стека услуг/SEO (см. врезку выше)
gulaev-devсамый зрелый SEO (auto-linking, hreflang, аудит), гео, city_overrides, DDD-структура
er (RelaxMap)умный SEO-фильтр целиком, тестовое покрытие, SEO health-check, склонения, биллинг Cashier
artel-23ruэталон SEO-услуг: 3-уровневая иерархия × 4 SEO-оси, падежи HasDeclensions, двойная Schema.org, промышленные 301. См. разбор. Первоисточник стека — свежие обобщённые версии его сервисов теперь в universal
catalogпоиск с intent, отзывы+антифрод, CDN, лиды франчайзинга
notalплатежи+эскроу+споры, уведомления, рефералка, AI-конфиг моделей
freelanceархитектура уведомлений, поиск Meilisearch, роли, аудит, 2FA
referendumPDF, QR, опросы, wizard, мультиязычность (translatable)
mashaсклад/инвентарь, Telegram-нотификации

Что предстоит решить (TBD)

  • Границы модулей: где заканчивается каталог и начинается e-commerce; отдельный ли модуль «биллинг» или часть платежей.
  • Приоритет: какой заказ станет первым потребителем — от него зависит очередь портирования.
  • Обобщение калькуляторов: паттерн повторяется в 3 проектах с разной предметной областью — вынести в конфигурируемый «конструктор калькуляторов».
  • Обобщение глоссария: Dictionary/GlossaryTerm в 3 проектах — унифицировать.
  • Унификация антифрода: два независимых решения (catalog, er) — объединить или оставить.

Внутренняя база знаний студии