проектspecs/qadam-platform/design.md
Qadam Platform — продуктовый и архитектурный контур
Обновлён 1 апр. 2026 г., 12:41 · 0 комментариев
Qadam Platform — продуктовый и архитектурный контур
Паспорт документа
- Статус документа: working spec
- Актуально на: 28 марта 2026 года
- Владелец: backend/platform-команда
- Пересмотр: при изменении платформенной архитектуры, roadmap или статуса реализации
- Область применения: канонические платформенные spec-документы для текущего ядра Qadam
- Связанные документы:
1. Назначение платформы
Qadam — маркетплейс и операционная платформа для дополнительного образования в Узбекистане. Базовая задача продукта — быстро и качественно соединять родителей и учеников с учебными центрами, онлайн-школами и частными преподавателями.
Ключевой базовый путь:
- Пользователь находит курс или учебный центр.
- Изучает карточку айтема.
- Оставляет лид.
- Продавец получает лид и обрабатывает его.
- Платформа фиксирует это как бизнес-событие и основу для будущей монетизации.
2. Аудитории и роли
Buyer
- Родитель или ученик.
- Ищет курсы, оставляет заявки, пишет отзывы, ведёт персональный кабинет.
Seller
- Офлайн-школа.
- Онлайн-школа.
- Частный репетитор или индивидуальный эксперт.
Seller Staff
- Сотрудник организации продавца.
- Нужен для дальнейшего развития CRM, управления преподавателями и операционными ролями.
Admin
- Модерация контента.
- Управление справочниками.
- Операционный контроль качества каталога и лидов.
3. Центральная доменная сущность
Главная сущность платформы — Item.
Item представляет конкретный образовательный продукт: курс, программу, услугу, занятие или предложение продавца. Именно вокруг Item строятся:
- каталог и поиск;
- карточка курса;
- лиды;
- отзывы;
- модерация;
- SEO-слой;
- будущая биллинговая логика.
4. Продуктовые блоки текущего ядра
4.1. Авторизация
- Регистрация и логин по email/phone + password.
- Работа через
httpOnlycookies. - Refresh-flow с ротацией refresh token.
4.2. Каталог
- Публичная выдача айтемов.
- Фильтрация и поиск.
- Детальная страница айтема.
- Публичные страницы продавца.
4.3. Buyer-кабинет
- Профиль пользователя.
- Мои лиды.
- Мои отзывы.
4.4. Seller-кабинет
- Профиль организации.
- Управление айтемами.
- Управление лидами.
- Управление сотрудниками.
4.5. Admin-слой
- Очередь модерации.
- Базовые дашборды и сводки.
- Управление справочниками.
4.6. Внутренняя документация
- Отдельный домен
qadam-roadmap.2fab.app. - Просмотр канонических markdown-документов из
qadam-core/docsс переходами в связанныеspecsиdocs/Agents. - Комментарии к документам.
- Загрузка и удаление файлов.
5. Архитектурная модель
Репозиторий
- Два канонических репозитория:
qadam-coreиqadam-web. - Внутри каждого репозитория используется
pnpmworkspace. - Общие пакеты покрывают Prisma, shared-схемы и build/config слой; отдельный UI workspace-пакет не является частью текущего production-контура.
Backend
- NestJS + Fastify.
- Глобальный API prefix:
/api/v1. - Prisma как ORM для operational database.
- Redis для token-логики, кэша и инфраструктурных задач.
Frontend
- Next.js App Router.
- React Server Components по умолчанию для публичных страниц.
- TanStack Query для hydration и client-side серверного состояния.
next-intlдля i18n.
Инфраструктура
- Текущий production работает как host deployment.
systemdдля запуска API, product web и roadmap-service.nginxкак reverse proxy.- PostgreSQL и Redis на хосте.
- TLS через Let’s Encrypt.
6. Модель данных верхнего уровня
На платформе существуют следующие доменные блоки:
Accountи связанная auth-модель.Buyerс профилями родителя или ученика.Sellerс профилем организации или индивидуального преподавателя.SellerStaffи будущие performer/CRM-сущности.Itemкак центральная продаваемая сущность.Leadкак заявка пользователя.Reviewкак отзыв на айтем.Subject,Locationи другие справочники.Tracking/Eventдля аналитики и наблюдаемости поведения пользователей.
7. Ключевые продуктовые правила
- Публиковаться в каталоге должны только валидные и допущенные к публикации айтемы.
- Buyer и Seller не должны получать доступ к чужим кабинетным данным.
- Весь frontend получает данные только через backend API, а не напрямую из базы.
- Каноническая валидация и transport-контракт определяются backend-схемами в
packages/sharedи публикуются во frontend через OpenAPI artifact. - Публичные страницы должны быть совместимы с SSR и SEO.
8. Ограничения текущего этапа
- Платформа ещё не является завершённым коммерческим продуктом.
- CRM, платежи и продвинутая аналитика находятся за пределами текущего ядра.
- Часть buyer/seller/admin-потоков присутствует в коде, но ещё требует доводки до production-grade качества.
9. Канонический следующий фокус
Ближайший приоритет — не расширение количества направлений, а завершение уже реализованного ядра:
- Стабилизация и quality gates.
- Доведение buyer/seller/admin сценариев.
- Подготовка к GTM и PMF validation.