TASKFLOW CRM API

PHP Version
Yii Framework
License: Script Agency

TASKFLOW CRM - это мощная и гибкая CRM-система для управления задачами, личными проектами, а так же проектами в креативных агентствах.
Построена на принципах Domain-Driven Design (DDD) и Clean Architecture, что обеспечивает высокую масштабируемость и поддерживаемость кодовой базы.

API предоставляет полный набор инструментов для автоматизации бизнес-процессов агентства, включая канбан-доски, файловое хранилище и аналитику.


О системе

TASKFLOW CRM разработана с учётом специфики работы креативных агентств и студий для автоматизации бизнес-процессов компании и личного использования всех желающих.

Система позволяет:

  • Управлять проектами и задачами - от постановки до сдачи
  • Организовывать работу по канбан-методологии - гибкие доски для любых процессов
  • Хранить и обмениваться файлами - встроенное файловое хранилище
  • Анализировать эффективность - детальная аналитика

Архитектура системы построена вокруг предметных областей (bounded contexts), каждая из которых изолирована в отдельном модуле. Это позволяет независимо развивать функциональность и легко добавлять новые возможности.


Команда разработчиков


Используемые технологии

Бэкенд

ТехнологияВерсияНазначение
PHP8.1+Основной язык разработки
Yii22.0.54Фреймворк
MySQL8.0Основная база данных
Redis7.0Кэширование, очереди, сессии
JWT-Аутентификация API
Passport1.0.0UserService компании

Инфраструктура и DevOps

ТехнологияНазначение
DockerКонтейнеризация приложения
Nginx, ApacheВеб-сервер(а)
GitHub ActionsCI/CD пайплайны
ComposerУправление зависимостями

Процесс развёртывания (Deploy)

Требования к окружению

  • PHP 8.1 или выше
  • MySQL 8.0
  • Redis 7.0
  • Composer 2.x
  • Nginx / Apache

Локальный запуск (development)

# 1. Клонировать репозиторий
git clone https://github.com/Factum-studio/taskflow.thescript.backend.git
cd taskflow.thescript.backend

# 2. Переключиться на рабочую ветку
git checkout <branch>

# 3. Установить зависимости
composer install

# 4. Настроить окружение
cp .env.example .env
# Отредактировать .env (указать данные БД, Redis и т.д.)

# 5. Применить миграции
php yii migrate --interactive=0

# 6. Запустить встроенный сервер
php yii serve --docroot=web

Развёртывание на продакшн (production)

⚠️ Важно:

Производится только настроенными CI/CD пайплайнами

Процесс тестирования

Запуск тестов

# Запуск всех тестов
composer test

# Запуск только модульных тестов
composer test:unit

# Запуск только API-тестов
composer test:api

# Запуск конкретного тестового класса
vendor/bin/codecept run <test_type> tests/api/ClientsCest

Статический анализ

CI/CD (GitHub Actions)

Проект использует GitHub Actions для автоматического запуска тестов и анализа кода при каждом push и pull request. Конфигурация находится в .github/workflows/:

  • ci_cd.yml - dev конфигурация пайплайна (временно)
  • tests.yml - запуск всех тестов
  • static-analysis.yml - PHPStan и PHP_CodeSniffer
  • deploy.yml - автоматический деплой на staging

Ведение Git-репозитория

Подробные правила работы с Git, включая:

  • Соглашение о коммитах (Conventional Commits)
  • Процесс code review
  • Правила именования веток
  • Работу с pull request'ами

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

Лицензия

Исходный код Script Agency для TASKFLOW CRM (контроллеры, модели, представления, бизнес-логика) распространяется под лицензией Script Agency Public License 1.0 (см. файл LICENSE).

Данный продукт использует Yii Framework, который распространяется под лицензией BSD 3-Clause (см. пункт стороннее ПО).


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

Подробное описание архитектуры доступно в архитектурная документация

Ключевые диаграммы