TASKFLOW CRM API
TASKFLOW CRM - это мощная и гибкая CRM-система для управления задачами, личными проектами, а так же проектами в креативных агентствах.
Построена на принципах Domain-Driven Design (DDD) и Clean Architecture, что обеспечивает высокую масштабируемость и поддерживаемость кодовой базы.
API предоставляет полный набор инструментов для автоматизации бизнес-процессов агентства, включая канбан-доски, файловое хранилище и аналитику.
О системе
TASKFLOW CRM разработана с учётом специфики работы креативных агентств и студий для автоматизации бизнес-процессов компании и личного использования всех желающих.
Система позволяет:
- Управлять проектами и задачами - от постановки до сдачи
- Организовывать работу по канбан-методологии - гибкие доски для любых процессов
- Хранить и обмениваться файлами - встроенное файловое хранилище
- Анализировать эффективность - детальная аналитика
Архитектура системы построена вокруг предметных областей (bounded contexts), каждая из которых изолирована в отдельном модуле. Это позволяет независимо развивать функциональность и легко добавлять новые возможности.
Команда разработчиков
- Кузнецов Данила - @eternity_strange_man
Используемые технологии
Бэкенд
| Технология | Версия | Назначение |
|---|---|---|
| PHP | 8.1+ | Основной язык разработки |
| Yii2 | 2.0.54 | Фреймворк |
| MySQL | 8.0 | Основная база данных |
| Redis | 7.0 | Кэширование, очереди, сессии |
| JWT | - | Аутентификация API |
| Passport | 1.0.0 | UserService компании |
Инфраструктура и DevOps
| Технология | Назначение |
|---|---|
| Docker | Контейнеризация приложения |
| Nginx, Apache | Веб-сервер(а) |
| GitHub Actions | CI/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_CodeSnifferdeploy.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 (см. пункт стороннее ПО).
Архитектура проекта
Подробное описание архитектуры доступно в архитектурная документация