Skip to content

direct808/tds5

Repository files navigation

📊 TDS5 - система для управления трафиком и сбором статистики

Это pet-проект, реализующий backend-систему для управления трафиком, сбора статистики и настройки гибких правил маршрутизации. Проект разработан на NestJS с использованием PostgreSQL и TypeORM. Основная цель — продемонстрировать навыки построения масштабируемого, модульного и расширяемого решения с акцентом на чистую архитектуру, SOLID-принципы и паттерны проектирования.

Стек технологий

  • Node.js / TypeScript
  • NestJS — масштабируемый backend-фреймворк
  • TypeORM — ORM для PostgreSQL
  • PostgreSQL — основная реляционная СУБД
  • Docker / Docker Compose — для локального запуска
  • Jest — для unit и е2е тестов

Архитектура и подходы

Проект построен с фокусом на чистую архитектуру и масштабируемость:

  • SOLID:

    • Каждый класс отвечает за одну зону ответственности
    • Логика расширяема через абстракции и интерфейсы
    • Все зависимости внедряются через DI
  • Применяемые паттерны:

    • Repository Pattern — изоляция бизнес-логики от доступа к данным
    • Service Layer — логика вынесена из контроллеров
    • Factory — для динамического создания объектов
    • Strategy — для динамического изменения бизнес логики
  • Модульность:

    • Каждый функциональный блок — отдельный Nest-модуль
    • Легко масштабировать и заменять компоненты

Основной функционал

  • Создание и настройка кампаний
  • Управление потоками (streams)
  • Настройка условий маршрутизации на основе гео, устройств, IP и других параметров
  • Поддержка множественных оферов и сплит-тестирования
  • Подсчёт и хранение статистики по визитам/кликам
  • Интеграция с внешними источниками через постбэки

Тестирование

  • Unit-тесты для сервисов
  • e2e-тесты для тестирования бизнес логики
  • Запуск тестов с помощью Jest
  • Использование testcontainers для запуска окружения для e2e тестов

Установка и запуск

git clone https://github.com/direct808/tds5.git
cd tds5
cp .env.example .env

# Установка зависимостей
yarn install

# Запуск окружения
docker-compose up 

# Запуск проекта
yarn run start:dev

Почему этот проект важен

  • Показывает моё понимание backend-архитектуры и модульного подхода
  • Используется реальный кейс с нетривиальной бизнес-логикой
  • Основан на production-подходах, которые можно применять в реальной работе

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

src/
├── affiliate-network/  # Партнерские сети
├── auth/               # Аутентификация пользователя
├── campaign/           # Управление кампаниями
├── config]/            # Конфигурация приложения
├── offer/              # Управление оферами
├── source/             # Источники траффика
├── user/               # Управление пользователями
├── utils -             # общий модуль
├── main.ts             # Точка входа
├── app.module.ts       # Корневой модуль
test                    # e2e тесты

📬 Связь

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages