Обзор архитектуры
Описание платформы
MLM-платформа с инвестиционным маркетплейсом, товарным маркетплейсом и административной панелью MLM.
Технологический стек
- Frontend: React + TypeScript
- Backend: Node.js + TypeScript (NestJS)
- База данных: PostgreSQL с расширением ltree
- Кэш: Redis (опционально, для сессий/ограничения частоты запросов)
- Очередь: pg-boss (нативная для PostgreSQL)
Структура проекта
iwm-platform/
├── apps/
│ ├── api/ # Backend API (NestJS)
│ │ ├── src/
│ │ │ ├── core/ # Ядро, независимое от фреймворка
│ │ │ │ ├── domain/ # Базовые классы, интерфейсы
│ │ │ │ ├── errors/ # Доменные ошибки
│ │ │ │ └── utils/ # Чистые утилитарные функции
│ │ │ │
│ │ │ ├── shared/ # Сквозные модули
│ │ │ │ ├── auth/ # JWT, 2FA, сессии
│ │ │ │ ├── users/ # Управление пользователями
│ │ │ │ ├── notifications/ # Email, SMS, in-app
│ │ │ │ └── referral/ # Отслеживание атрибуции
│ │ │ │
│ │ │ ├── modules/ # Бизнес-модули
│ │ │ │ ├── investment/ # Инвестиционный маркетплейс
│ │ │ │ ├── product/ # Модуль электронной коммерции
│ │ │ │ └── mlm/ # Ядро MLM (партнёры, комиссии, ранги)
│ │ │ │
│ │ │ ├── infrastructure/ # Внешние адаптеры
│ │ │ │ ├── database/ # Конфигурация Prisma
│ │ │ │ ├── cache/ # Redis (опционально)
│ │ │ │ ├── queue/ # Воркеры pg-boss
│ │ │ │ ├── payments/ # Адаптеры Stripe, YooKassa
│ │ │ │ ├── delivery/ # Адаптеры CDEK, DHL
│ │ │ │ └── notifications/ # Адаптеры SendGrid, Twilio
│ │ │ │
│ │ │ └── main.ts
│ │ │
│ │ ├── prisma/ # Схема базы данных
│ │ └── package.json
│ │
│ └── web/ # Frontend (React)
│ ├── src/
│ │ ├── modules/
│ │ │ ├── investment/ # UI инвестиций
│ │ │ ├── product/ # UI электронной коммерции
│ │ │ └── mlm-admin/ # UI панели управления MLM
│ │ ├── shared/ # Общие компоненты, хуки
│ │ └── App.tsx
│ └── package.json
│
├── packages/ # Общие пакеты (опционально)
│ └── shared-types/ # TypeScript типы/интерфейсы
│
└── docker-compose.yml