Tasks and Docs tracker

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

Цели

Есть множество хороших систем документирования, как-то confluence или mediawiki. Но главная проблема в документации, поддержание её в актуальном состоянии, и когда она находится в отдельном сервисе про неё частенько забывают. Объединяя её с таск-трекером, появляется возможность обращаться к ней из задач, создавать страницы из описания задач (что хуже отдельного специального документа, но лучше полного отсутствия документации), это позволяет делать простые и быстрые кросс-линки между задачами и документами. Что позволяет, сначала по git-коммиту быстро найти задачу, а по задаче найти документацию (которую можно будет привязать к задаче, эпику, категории, тегу). Вторая причина появления этого проекта, желание собрать в одном месте все полюбившиеся фичи и особенности, которые может быть и не всегда необходимы, но без них в других такс-треккеров мне чего-то да не хватает. Например:

  • Нумерация задач в пределах проекта. Это не очень важно, но приятно видеть по номеру задачи объем работ выполненных (или запланированных) по данному проекту, а не по всем в системе
  • Возможность легко ссылаться на задачу через abc-123, что есть не везде (в прославленной Jira, например приходится вручную копировать url), т.е. полноценную wiki-систему подталкивающую к использованию и заполнению документации.
  • Возможность указать прогресс выполнения (как в Flyspray) Не самая нужная вещь в коммерческой разработки, но мне приятно отмечать прогресс сложной задачи, не по реально выполненному, а вручную указав 50 или 80%, даже если они пошли не на реализацию кода.
  • Гибкие настройки проектов. Мне хотелось бы в одном треккере иметь как програмные проекты, с версиями, приоритетами и другими свойствами задачи, и рядом бытовые (вроде работ по дому или даче)

REQUIREMENTS

  • Среда запуска контейнеризованных приложений. в репозитории описаны dockerfile и compose-файлы для запуска в классическом docker.

При желании можно развернуть сразу на хосте, в таком случае потребуются

  • nginx
  • PHP 8.2
  • MySQL like db

INSTALLATION

подробно описано в help/install/install.md

UPGRADE

dev-stage

  1. обновление php-пакетов make back_exec composer install
  2. docker-compose exec php ./bin/console doctrine:migrations:migrate
  3. обновлние фронтенд make front_build

prod-stage

  1. Посмотреть в диреткории docs/install наличие заметок по особенностям обновления на устанавливаемую версию.
  2. docker compose pull
  3. docker-compose up -d
  4. docker-compose exec php ./bin/console cache:clear
  5. docker-compose exec php ./bin/console cache:warmup
  6. docker-compose exec php ./bin/console doctrine:migrations:migrate
  7. docker-compose exec php chmod 777 -R /app/var/cache/prod

TESTING

Забили пока на тесты, будем делать ближе к версии 1.0

  1. make up env=test

Unit tests: make tests type=unit

Functional application tests: make tests type=behat