Отступления
Отступление 1
Изначально данная публикация плановалась к выпуску в виде короткого очерка, но поискав в сети хоть некоторые подобия развернутых учебников по мантису я был удивлен их почти полным отсутствием и решил отложить дела в сторону и сделать свой учебник для сообщества. Пишу по свежей памяти, пока еще помню разные моменты и пока есть немного времени в новогодние каникулы 2021 года. Да, время на полезное дело есть, я ведь воздерживаюсь употреблять алкоголь (русский - значит трезвый), а если отложу на "потом", то оно быстро превратится в "никогда" и забудется.
Отступление 2
Все снимки процесса установки и настройки буду делать по мордам своего поставщика веб-размещения.
В основном почти все поставщики размещения предоставляют схожий набор услуг и вы должны смочь найти в вашем кабинете вашей учетки вашего поставщика размещения схожий функционал.
Отступление 3
Для работы мантис использует php язык и базу данных mysql. Это значит, что ваш тариф веб-размещения должен включать в себя эти возможности. Перед началом установки важно быть в этом уверенным.
Отступление 4
Скачать сборку, по которой дальше будет выполнено описание, вы можете с приложенных файлов. Весь текст и экроснимки будут писаться исходя из предположения, что читатель устанавливает сборку из приложенных файлов.
Итак, поехали :)
Шаги в беспроводное облако
Моей первой задачницей, в которой я начал серьезно работать, была жира на 10 работников за 10 сшашных рублей с установкой на свой сервер много лет назад. Я установил и настроил ее на подстольном довольно мощном компьютере в виртуалке. В то время я пользовался проводным интернетом и для внешнего доступа мне нужно было только купить ip адрес за 100 руб/мес. Установив жиру также научился базовому администрированию: подключение работников, создание проектов, настройка прав, дополнительные поля, потоки работ и тому подобное.
Прошло время, изменились существующие технологии и придумались новые. В один момент я решил провести эксперимент и поработать в интернете только через мобильный интернет через раздачу с умнофона. У меня безграничный тариф, который позволяет раздавать интернет на все домашние приборы и устройства без ограничений. Таким образом поработав почти несколько месяцев я решил оставить только мобильный интернет.
Побочные эффекты отказа от проводного интернета для меня были следующие:
*) Отказ от привязки к ip адресу конкретного поставщика интернета;
*) Отказ от подстольного сервера, который занимает место и кушает электричество;
*) Нет нужности постоянно наблюдать за сервером => возможность в любой момент собрать вещи, купить билет и уехать на месяц на солнце без мыслей, что у тебя дома постоянно включен компьютер;
Конечно, у нас в России ситуация с электричеством гораздо лучше чем в сшашке, но всякое бывает и кто его пойдет включать.
*) Экономия почти в тысячу рублей каждый месяц => стоимость оплаты довольно хорошего веб-размещения и еще останется.
Отказавшись от проводного интернета я остался без внешнего доступа. Соответственно, подстольный сервер с установленной жирой тоже стал бесполезен с точки зрения задачницы для внешних работников.
Альтернативой были варианты:
1) Продолжать работать в жире и арендовать ее у разработчика бесплатно до 10 работников и за 7 сшашных рублей каждый месяц за работника сверху (на январь 2021 года);
2) Подобрать вариант бесплатной облачной открытоисходной задачницы;
Платить всегда успею, подумал я, и начал подбирать открытоисходные варианты. Перебрав несколько задачниц я остановился на мантисе. Мне понравилось, что тыловая часть полностью на php, фронтовая это типовой набор html, css и js. Фронтовым каркасом является bootstrap 3 на jquery библиотеке.
Я достаточно хорошо знаю эти веб-технологии, ведь я зарабатываю тем, что профессионально делаю красивые и функциональные веб-морды для 1С конфигураций и мои знания дали мне возможность разобраться и понять устройство этой задачницы.
Полученными знаниями о мантисе и хочу поделиться с теми, кто хочет себе облачную задачницу, но не знает с чего начать. Плюс цель данной публикации это частично снять страх перед неизвестной задачницей для новых работников.
Показать ее дружелюбность и некоторые приемы работы.
Ошибница или задачница
Ошибница или задачница ?
По моему мнению, системы работы с обращениями можно укрупненно разделить на две категории.
Программы категории "Ошибница" предназначены для записи ошибок для их последующего исправления и выпуска заплатки.
Простой учет ошибок и исправлений.
Программы категории "Задачница" предназначены для более полного учета работ по проекту разработки и должны включать в себя более полный функционал для возможности ведения проектов.
Например: журнал техдолга, планирование этапов работ, версии, учет времени и тому подобное.
Думаю, что с небольшими допущениями мантис вполне подходит для полноценного ведения проектов разработки.
Его можно использовать как для продуктовой разработки, так и для долговременного сопровождения существующего корпоративного ПО.
Поверхностное сравнение мантиса с жирой
Так как у меня есть немного опыта работы с жирой, то сделаю короткую сравнительную таблицу мантиса и жиры.
Краткое сравнение буду выполнять с версией жиры 7.5. Последующие версии жиры сильно переделываются и возможно сравнение перестанет быть насущным.
Функционал | Комментарий | Мантис | Жира |
Стоимость | |||
Облако до 10 работников | 0 | 0 | |
После 10 за каждого | 0 | 7 сшашных рублей в месяц. 11 работников = 77 в месяц. И далее по нарастающей. |
|
Учетки и доступы | |||
Анонимный доступ для просмотра задач без опознавания | Есть | Только в платных планах для от 10 работников | |
Создание учетки админом с отправкой приглашения | Есть | Есть | |
Установка пароля учетки админом | Нет | Есть | |
Аватарки работников | Заявлено что есть, не проверял | Есть | |
Самосоздание учеток гостями | Есть с возможностью отключения | Есть с возможностью отключения | |
Группы работников | Групп нет, только роли | Группы и роли | |
Временное отключение учетки | Есть | Есть | |
Отметка времени последнего входа | Есть | Есть | |
Напоминание пароля | Есть | Есть | |
Смена имени, пароля, почты работника | Есть | Есть | |
Подключение учетки к разным проектам с разными доступами | Есть | Есть | |
Журнал действий работника | Есть | Есть | |
Возможность просмотра карточки работника другими работниками | Есть | Есть | |
Доступ в админскую зону | |||
Ввод пароля админа при входе в админский раздел | Есть Можно отключить |
Всегда Без отключения (это очень напрягает каждые 10 минут вводить пароль) |
|
Проекты | |||
Смена названия и прочих полей уже созданного проекта | Есть | Есть | |
Сортировка проектов в списке проектов | По первым символам имени | По первым символам имени | |
Создание проектов по образцу другого проекта | Нет | Есть | |
Способ отключения проекта из видимых | Одной галочной "Активен" | Отключение всех подключенных учеток | |
Подпроекты | Любая глубина иерархии | Нет | |
Подключение работников | Работники | Группы и работники | |
Настройка внутренних проектов, скрытых от внешних пользователей | Есть, просто | Можно, сложно | |
Задачи | |||
Создание дополнительных полей | Есть | Есть | |
Настройка прав доступа для чтения или правки доп. поля | Есть, просто | Можно, сложно | |
Привязка доп. полей к конкретным проектам | Есть, просто | Можно, сложно | |
Настройка внутренних задач, скрытых от внешних пользователей | Есть, просто | Можно, сложно | |
Типы связей между задачами | Есть | Есть | |
Добавление и изменение типов связей между задачами | Можно, сложно | Есть, просто | |
Подзадачи | Нет Только связями между задачами |
Есть | |
Настройка отображаемых типовых и дополнительных полей на форме задачи | Есть, просто | Можно, сложно | |
Просмотр истории изменения задачи | Есть | Есть | |
Правка полей прямо в форме задачи | Частичная | Есть | |
Создание типов задач (ошибка, задача и тому подобное) | Можно, сложно | Есть, просто | |
Механизм меток | Есть | Есть | |
Синтаксис разметки для форматирования текста | markdown или html | markdown | |
Гиперссылки на другие задачи | Через символ # и номер задачи | Только номер задачи | |
Комментирование | |||
Добавление файлов вложений тяни-бросай | Есть | Есть | |
Добавление картинок вложений копи-вставкой из буфера | Есть | Есть | |
Создание скрытых комментариев | Есть | Сомневаюсь | |
Потоки работ и экраны перехода | |||
Состояния задач | Есть встроенный набор | Есть возможность добавления | |
Добавление состояния задачи | Можно, сложно | Есть, просто | |
Экраны перехода | Есть встроенный набор | Все надо настраивать | |
Добавление экранов перехода | Обошелся типовыми экранами, не уточнял | Можно, сложно | |
Настройка потока работ (схема переходов состояний задачи) | Только галочками в форме матрицы | Графическое рисование с соединителями | |
Сложность создания потока работ | Просто | Сложно | |
Доски | |||
Работа с задачами через доски | Подключение функционала досок через добавки | Доски "из коробки" | |
Этапы работ | |||
Собрание задач в этапы работ | Есть | Есть | |
Дорожная карта с процентным показателем выполнения всего работ по этапу | Есть | Есть | |
Планирование нескольких последовательных этапов работ | Есть | Есть | |
Учет времени | |||
Способ включения | Через файл настроек | В морде нажатием кнопки плюс настройка прав в схеме разрешений | |
Указание рабочих и выходных часов, длительность рабочего дня | Нет | Есть | |
Способ отметки времени | Дополнительное поле в комментарии | Отдельная закладка для отметки времени | |
Итоговое время на форме задачи как сумма всех времен | Есть | Есть | |
Возможность выгрузки в excel задач со строками комментариев, автором комментария и временем | Есть | Предполагаю что должна быть, не знаю | |
Оповещения | |||
Гибкий механизм настроек оповещения по почте на разные события | Есть | Есть | |
Скорость работы | |||
Время от нажатия кнопки до получения результата с возможностью дальнейшего взаимодействия (построение списка задач, переход между страницами и т.п.) | 5 из 5 (в облаке) |
3.5 из 5 (в мощной виртуалке в местной сети) |
|
Универмаг добавок | |||
Количество | Скромное | Очень большое | |
Стоимость добавок | Мне известны только бесплатные | Почти все платные | |
Разработка добавок на заказ | Если сможете обратиться к авторам уже готовых или заказать php шабашнику на основе готовых примеров | Есть компании, которые именно этим и зарабатывают | |
Открытоисходность | |||
Возможность изучения и любой доработки исходного кода | Есть | Нет |
Позволю себе замечание, что при всей кажущейся простоте работе в морде, из-за обилия возможностей настройка жиры совсем не интуитивно понятна.
Очень большое количество связанных объектов с иногда пересекающимися наименованиями.
Если постоянно этим занимаешься, то да, а если иногда, то проще в мантисе что-то изменить в файле настроек, чем пробираться сквозь дебри настроечных форм жиры.
Установка мантиса в облако на веб-размещении
Длительность установки мантиса должна занимать до получаса простых действий, но время сильно зависит от уровня ваших навыков.
Создание поддомена с веб-размещением для файлов задачницы
Создавать задачницу из мантиса будем по адресу zadachnica.kuzkov.info. Конечно, у вас будет свое доменное имя и вы можете назвать свой поддомен для задачницы тоже как захотите.
Для создания поддомена опознаемся в личном кабинете поставщика веб-размещения и перейдем в раздел создания поддоменов.
Далее перейдем в панель управления веб-размещением и выберем раздел "Сайты".
Нажмем на кнопку "Создать сайт".
В поле ввода имени напишем zadachnica.kuzkov.info и нажмем кнопку "Продолжить".
На экране второго шага укажем, что сайт будет без СУС (системы управления содержимым) нажатием соответствующей кнопки и на открывшейся вкладке:
*) Включим переключатель "Создать базу";
*) Укажем название базы дописываем слова "zadac" после символа "_";
*) Аналогично укажем имя пользователя;
*) Укажем пароль;
*) Выпишем введенные данные себе на бумажку и нажмем кнопку "Продолжить";
Если создание базы выполнено успешно, то должен отобразиться экран третьего шага.
Для проверки, нажмем среднюю кнопку мыши на кнопке "Перейти на сайт" и новой вкладке мы должны увидеть заглушку пустого сайта.
Если все работает, то можно двигаться дальше.
А дальше нам надо получить и выписать путь к серверу базы данных. Для этого переходим в раздел "Базы данных" и щелкаем на нашу базу.
Открывшееся окно должно нам показать сервер базы данных.
Создание ftp учетки и настройка total commander файлового приказчика
Дальше мы будем плотно работать с файлами и папками на веб-размещении и учетка для ftp доступа нужна нам для для возможности быстрого и удобного доступа к файлам и папкам веб-размещения.
Переходим в раздел "FTP и SSH" и нажимаем кнопку "Создать пользователя".
Во всплывающем окне:
*) Дописываем _zadac в строку с именем пользователя;
*) Заполняем поле пароль,
*) Выписываем все данные на бумажку;
*) Нажимаем кнопку "Создать";
В следующем окошке будут отображены все свойства созданной ftp учетки. Из этих данных выписываем адрес сервера.
Открываем (скачиваем и открываем) файловый приказчик Total Commander.
Если этого приказчика файлов у вас нет, то скачать Total Commander вы можете на сайте http://www.ghisler.com.
Запустите Total Commander, после чего в верхнем меню нажмите пункт Сеть, в открывшемся меню выберите пункт Соединиться с FTP-сервером.
В открывшемся окне нажмите на кнопку Добавить.
В открывшемся окне заполните поля ввода:
*) Имя соединения — придумайте название, например, «Задачница мантис»;
*) Сервер — адрес FTP-сервера.
*) Учетная запись — имя пользователя.
*) Пароль — пароль пользователя.
Установите флаг Пассивный режим обмена (как обозреватель).
Нажатием кнопки "Ага" сохраняем нашу настройку. Для подключения выбираем команду "Сеть" главного меню => Соединиться с ftp-сервером => Задачница Мантис => Соединиться.
Если при подключении к ftp-серверу показываются пустые списки файлов, то надо нажать кнопку "Обновить содержимое панели" для обновления.
Если все сделано правильно, то total покажет состав папок на вашем веб-размещении и настройка ftp-учетки выполнена.
Создание почты для оповещений
Почта нужна для:
*) Получения оповещений о событиях с задачами;
*) Возможности напоминания и изменения пароля работнику;
*) Отправки приглашения работнику при создании новой учетки;
*) Отправки напоминаний о задачах по кнопке "Напомнить";
Почтовые оповещения являются важным механизмом и для его работы надо создать почтовую учетку. Если у нас есть свой домен, то почта на нем должна входить в базовый пакет услуг, чем мы и воспользуемся.
Перейдем в раздел "Почта" и нажмем кнопку "Создать новую почту".
Во всплывающем окне заполним имя ящика, выберем корневой домен и укажем пароль. Все введенные данные также выпишем на бумажку к остальным данным.
После нажатия на кнопку "Создать" должна появиться форма управления созданным почтовым ящиком.
Для перехода в морду чтения и создания писем можно нажать среднюю кнопку мыши на гиперссылке "Перейти в почту".
Заполнив данные доступа, должна открыться веб-морда почтового клиента.
Рекомендации по подключению настольного клиента почты вы можете найти самостоятельно в учебниках вашего поставщика веб-размещения.
Загрузка файлов установщика задачницы на веб-размещение
После скачивания сборки мантиса с github, его надо разархивировать. Это можно сделать через контекстное меню "Извлечь в текущую папку" проводника.
Аналогично можно извлечь файлы из архива в файловом приказчике.
Полученные файлы из архива надо загрузить на ftp-сервер. Для этого в файловом приказчике подключаемся к ftp-серверу через ранее созданное ftp-соединение "Задачница Мантис".
Заходим в папку zadachnica.kuzkov.info => папка docs. Удаляем там файлик index.html.
Копируем содержимое архива в zadachnica.kuzkov.info/docs.
После копирования можно считать что все подготовительные действия выполнены и можем переходить непосредственно к установке.
Установка задачницы
Выполнение установки мы будем выполнять уже в обозревателе. Все, теперь дальнейшие действия уже в облаке :)
Запускаем обозреватель и переходим по адресу zadachnica.kuzkov.info/admin/install.php. Нас сразу должна встретить примерно такая страничка установки.
Если такой странички у вас нет, а вы все шаги делали правильно, то вам надо обратиться к профессионалам за помощью и советами.
Если страничка отображается, то двигаемся дальше.
После заполнения всех полей и нажатия кнопки "Установить", должна отобразиться следующая страничка.
Установка успешно выполнена. Задачница готова к работе.
Нажатием на гиперссылку "Опознаться" переходим на страничку опознавания. По умолчанию имя входа "administrator" и пароль "root".
После нажатия кнопки "Войти" мы попадаем на страничку "Моя учетка". Здесь указываем в поле root в поле "Текущий пароль" и придумываем новый пароль.
Также указываем почтовый адрес. Для целей простой демонстрации я указал ранее созданный почтовый адрес "zadac @kuzkov.info".
В поле "Имя" указываем настоящее имя работника.
Нажатием кнопки "Изменить пользователя" сохраняем изменения.
Удаление установочного кода
Следующим важным действием должно быть удаление установочного кода в папке "admin". Для этого запускаем файловый приказчик, переходим по ftp на веб-размещение удаляем или переименовываем папку "admin".
Теперь при входе в задачницу должно отсутствовать требование удаления этой папки на страничке опознавания.
Подключение почтового сервера
Настройка доступа к почтовому серверу для отправки писем должна выполняться в настроечном файле "config_defaults_inc.php". Сначала мы скопируем его себе на местный диск для возможности правки.
В вашем текстовом правщике открываем файл "config_defaults_inc.php" и по номерам строк зрительно ищем нужные строки и устанавливаем значения почтового сервера вашего поставщика веб-размещения.
После правки сохраняем файл и загружаем обратно на веб-размещение с заменой файла.
Для проверки успешной работы почти попробуем отправить себе письмо. Для этого переходим в свою учетку по адресу Раздел "Управление" => Закладка "Управление пользователями" => выбираем свою учетку.
В поле "Имя" добавляем "1" и нажимаем "Изменить пользователя".
Переходим в веб-клиента почты, нажимаем "Получить почту" и мы должны увидеть новое письмо-оповещение со следующим содержанием.
На этом установку мантиса в облако можно считать завершенной.
Теперь у вас есть своя бесплатная облачная задачница !
Нумерация сборок
За исходную сборку взята сборка 2.24.3 в январе 2021 года.
Нумерация всех дальнейших сборок будет просто увеличиваться на 1.
Всю историю файлов сборок постараюсь сохранять в приложенных файлах.
Послесловие
Изначально плановалось написать все одной публикацией, но написав только раздел "Установка" стало понятно, что здесь минимум пяток публикаций. Много места занимают снимки, да и по смыслу можно вполне логично разбить весь объем материала на разные публикации. Оборачивать все в свертки можно, но не нужно.
Примерное содержание следующей публикации
Проекты:
*) Путь к страничке создания проектов;
*) Создание и настройка проекта "Тестовый";
*) Путь для загружаемых файлов (смотри раздел Хранение файлов проекта);
*) Флажок "Наследовать глобальные типы";
*) Флажок "Видимость";
Типы задач:
*) Описание типов задач;
*) Создание глобальных типов задач;
*) Подключение картинки к типу задачи для формы и списка задач;
*) Обязательность заполнения типа задачи;
Задачи:
*) Кнопка "Создать задачу";
*) Множественное создание задач;
*) Снимок карточки создания задачи;
*) Заполнение обязательных полей "Тема" и "Описание";
*) Правка задачи по кнопке "Изменить";
*) Добавление комментария с текстом, картинкой, svg картинкой или приложенным файлом;
*) Возможности правки комментария;
*) Работа со временем задачи в мантисе;
*) Просмотр истории изменения задачи;
Взаимосвязи задач:
*) Описание механизма;
*) Привязка задач друг к другу;
*) Добавление и изменение типов связей;
*.*) constant_inc.php (строка 215) => создаем новую взаимосвязь
*.*) relationship_api.php (строка 184) => описываем свойства взаимосвязи
*.*) strings_russian.txt (строка 150) => указываем представление на русском языке
*) Ссылки на задачи через #;
*) Ссылки на комментарии в других задачах через ~;
Написание текста задачи:
*) Написание простых неформатированных текстов;
*) Оформление текстов html тегами;
*) Добавление разрешенных html тегов;
*) Включение добавки для маркдаун формата;
*) Написание форматированных маркдаун текстов с картинками, гиперссылками и табличками;
*) Описание маркдаун формата.