OTMS HelpDesk



OTMS — система управления объектами и задачами. Используется уже несколько лет в небольшой компании.



Чтобы дать новую жизнь проекту, был произведён рефакторинг кода и перенос оного на github. Некоторые функции пока не реализованы, такие как статистика по выполненным задачам, просмотр истории задач и подобное. HelpDesk создавался для конкретных нужд конкретной техподдержки, поэтому чего-то в реализации может не оказаться.

Возможности, преимущества и т.д.:

— система полностью бесплатна.

— система значительно проще существующих аналогов.

— используется объектная система. Это значит, что задачу можно создавать практически для чего угодно, будь то: клиенты, сервера, сотрудники, любые предметы (к примеру, кофе или печеньки).

— задача может попадать в HelpDesk из внешнего мира, к примеру: клиентами с сайта компании, от серверов по расписанию или в случае какой-либо неполадки.

— помимо основной информации объекту можно задать дополнительную информацию. Например, объект — клиент хостинга. Дополнительной информацией могут быть: предыдущие версии сайта (например, в виде файлов), скриншоты консоли с выводом команды «ps aux» или любая текстовая информация.

— удобный календарь с выводом задач на каждый день с разделением на периодические задачи, задачи выполняемые определённое время (к примеру, 3 часа) или задачи без временных условий.

— задачи могут быть «скрытыми» от посторонних. Такие задачи видит только тот, кто её создал и тот, кому она адресована(или группа лиц).

— уведомление по почте о новой задаче, изменениях в задаче, смене статуса или новом комментарии. Также на любую задачу можно подписаться, чтобы получать уведомления о ходе её выполнения.

— выделение цветом:
оранжевая рамка для объектов;
зелёная рамка для открытой задачи;
красная рамка для закрытой задачи;

— для создания задачи или дополнительной информации объекта используется jHtmlArea + файловый менеджер, если нужно добавить файл в текст.

Демо: http://otms.tushkan.com

Страница GitHub: https://github.com/Zazza/otms

Инструкции по установке там же.

Скриншоты:



+80
16 апреля 2011, 19:56
235
Zazza 21,2

комментарии (46)

+4
baboon #
С рынком таких систем не очень знаком, но выглядит очень даже достойно.
0
Zazza #
когда я первоначально создавал данный HelpDesk хорошего и бесплатного аналого попросту не было. Что сейчас происходит, тоже не очень знаю.
+1
kabachok #
Сейчас их тоже нету.
Недавно искал и не нашел.
Попробую ваш
+1
baboon #
Пока не нужен, но в закладки)
+2
alekciy #
0
Zazza #
да есть такое, на самом деле название выдумать для меня занятие не реальное. otms — object&task management system всего на всего
0
shoguevara #
Ага, любопытная штука. Причем даже есть модули для поддержки ITSM — повзрослее, конечно, система, чем сабж.
0
BonySoft #
Trellis — тоже бесплатный HelpDesk, правда попроще, без календаря и объектов
0
mcconfig #
Спасибо, завтра поставлю, потестирую, может быть заменю свой ooz.
0
jack7277 #
Как раз ищу себе в отдел хороший хелпдеск, спасибо попробую.
0
JackRowsen #
Весьма интересный получился проект…
Сами последние 2 года пишем что-то подобное — но с немного другими задачами.
+3
geshido #
У нас используется FengOffice — отличная вещь.
0
la_stik #
Тоже его используем, но время отдачи информации желает лучшего. У Вас моментально показывает нужную Вам информацию?
+1
geshido #
В интранете — да )
+1
corpix #
Использую FengOffice на VDS, вполне устраивают все параметры.
0
giner #
Какая лицензия на код?
0
Zazza #
GPL
0
giner #
Отлично. Добавьте, пожалуйста, COPYING в исходники.
0
Zazza #
спасибо за совет, добавил
0
Denisio #
А redmine bitnami то чем плох?
+5
Zazza #
это странный вопрос, зачем нужны другие графические редакторы если есть photoshop? Очень утрированно, но смысл ясен.
+1
whybenormal #
Не поверите. Искал подобную систему неделю, а тут ваш пост. Спасибо, то, что нужно.
+2
gl00k #
Кстати, в довесок к инструментам саппорта, могу предложить небольшую программку tdlite.ru/it/usernameservice/

С помощью нее можно быстро отыскать компьютер на котором работает пользователь и соответственно подключится к нему, к примеру через DameWare.

P.S. Можете считать это самопиаром.
0
Tremor #
Мне во многих аналогичных системах очень не хватает функционала, который есть в FogBugz.
Смысл прост: при заведении тикета можно оценить примерное время работы. Затем перед началом работы над тикетом вы нажимаете кнопку «Working On», и система сама подсчитывает количество часов, затраченных на данный тикет.
Эти результаты (ожидаемое время и реальное время работы) потом очень удобно анализировать и делать правильные выводы. :)

Есть и чисто психологический момент: зная, что ведется учет времени, намного меньше желание отвлекаться на посторонние вещи.

В этой системе случайно нет такого функционала?
+2
Zazza #
нет ничего подобного, да и если честно я немного против подобного контроля. В предыдущей версии данного тикета(тот что пока ещё используется в компании) есть статистика, в ней можно поглядеть, кто и сколько затратил времени за определённый промежуток времени, а также сколько задач решил. Мне кажется, что такая вещь абсолютно не показывает загруженность человека. А ещё я не люблю, модные во многих компаниях системы учёта времени, ведь приходится придумывать чем ты занимался весь день чтобы тебе таки дали больше зарплаты потом. Убил бы за такое )))
0
Tremor #
Я рассматриваю это не с точки зрения компании, а с точки зрения фрилансера: мне очень не хватает системы для удобного учета времени, затраченного на тот или иной проект.

Мне кажется, ни в одной нормальной компании не будут следить за каждым сотрудником. Это глупо и непрактично. А вот для общей оценки проектов этот функционал, на мой взгляд, очень нужен.
Ну и за неуспевающими сотрудниками можно проследить и понять в чем именно возникают проблемы.
+1
Zazza #
Я, наверное, подумаю о таком. В принципе доля истины тут есть, да и реализовать не сложно. Мне бы хотелось оставить otms таким как он есть, простым, но с множеством удобных штук. Тем более лезть туда, где есть куча более функциональных систем, думаю, не стоит.
0
Tremor #
Подумайте :)

Это действительно несложно реализуется (с точки зрения интерфейса — 1 лишняя кнопка, страницу со статистикой можно запихнуть подальше :), а польза — огромная.

Я был бы безмерно рад такому функционалу! :)
0
assoly #
У нас в компании как раз используется подобная система.
К сожалению, с закрытым кодом.
И система учёта времени сотрудников там тоже есть.
Мне нравится как она работает.
Есть, конечно, некоторые минусы, но плюсы перевешивают.
ЗП выдаётся в зависимости от процента отработанного времени, вот как это работает:
  • Как только приходим на работу, нажимаем галочку «В работе», уходим — нажимаем «Ушёл»
  • Когда приходит задача от заказчика, менеджер меняет у неё статус на Новая и переадресовывает исполнителю.
  • Изначально менеджер сам или совместно с исполнителем (или ведущим программистом) оценивают длительность задачи и ставят эту цифру в Планируемое время.
  • Когда исполнитель начинает работу по задаче, он нажимает кнопку «В работе», когда приостанавливает — «Пауза», когда заканчивает — «Готова!».
  • После этого заказчик может подтвердить или отклонить задачу.
  • В конце месяца мы все печатаем отчёты, в которых видно кто сколько задач сделал и какой процент времени, отработанного по задачам от общего.

Стандартно время по задачам от 70-ти до 75-ти%.
Общее время обычно у штатных сотрудников колеблется около 100%, у студентов (кто ходит неполный день) — около 60%.
За занятостью сотрудников(чтобы у всех были задачи) следят менеджеры.
Если по задаче превышается оценочное время, об этом сотруднику приходит уведомление по джабберу.
О готовности задачи заказчик уведомляется по почте.
0
odiszapc #
А если забыл нажать кнопочку? Ну сделал все, хороший кодер, но забыл нажать. Что будет?
Опасный шаблон.
0
assoly #
Нажимает, когда вспомнил «В работе» и сразу же «Готово» и заполняет супер-поле «фактическое время». В него можно писать действительное время, потраченное на задачу (но при этом автоматически подсчитанное время не меняется).
Данное поле заполняется только если «Забыл запустить» или «Забыл остановить» (такое тоже бывает).
0
k0ldbl00d #
Ух… неплохо, конечно, но сразу же появилось множество замечаний и пожеланий:

— Было бы неплохо выделять просроченные задачи, еще лучше — оповещать об оставшихся сроках;
— Создавать объект, чтобы потом создать задачу — не очень удобно. Будет лучше, если появится возможность выбрать как существующий объект, так и заполнить шаблон для создания нового объекта;
— Было бы хорошо добавлять несколько объектов к одной задаче (например, если по одной причине проблемы сразу у нескольких клиентов) — для учёта обращений.

Спасибо.
0
excoder #
А есть ли экспорт календаря в ics-совместимом формате / WebDAV / CalDAV? В iCal яблочникам накатывать?
0
drakmail #
Ура, HelpDesk, на исходники которого не страшно посмотреть. Надо будет ознакомиться поподробнее, а то сейчас используется projectPeer, но он очень не идеальный.
0
HidX #
Интересно. Когда то, делал нечто похожее, только попроще — it-republic.ru
Обязательно ознакомлюсь с вашим проектом )
+1
gl00k #
Очень понравилось, как раз подошла бы к моим задачам.
Не планируете опубликовать проект в свободный доступ?
+2
HidX #
Планирую, скоро.
0
BonySoft #
Скажите, почему ограничение «PHP5.3 Only» (в смысле, какие из нововведений 5.3 используются)?
0
Zazza #
никаких, строчка осталась от другого проекта. Вначале след недели в новом коммите, поправлю, а так можете стереть эту строку в файле /public/index.php
0
MetaQuotes #
Посмотрите на систему сервисдеска в системе групповой работы TeamWox.
0
kurbik #
Спасибо, в избранное. Возможно пригодиться )

ps. на странице объектов, при клике по кнопке «выбрать дату», я лично ожидал, что календарь откроется не с текущей датой, а с датой, которая уже выбрана и прописана слева от кнопки.
0
Zazza #
а вот я даже и не заметил этого )) попробую исправить
0
PingMe #
public function addAdvanced($oid, $text) {
if ($text != "") {
$sql = «INSERT INTO objects_advanced (oid, val, who) VALUES (:oid, :val, :who)»;

$res = $this->registry['db']->prepare($sql);
$param = array(":oid" => $oid, ":val" => $text, ":who" =>$this->registry[«ui»][«id»]);
$res->execute($param);

$sql = «SELECT id FROM objects_advanced ORDER BY id DESC LIMIT 1»;

$res = $this->registry['db']->prepare($sql);
$res->execute();
$oaid = $res->fetchAll(PDO::FETCH_ASSOC);

return $oaid[0][«id»];
}
}
Это шутка? Или last_id по-другому получать не получается? О_о
0
Zazza #
Этот запрос ничем по логике не отличается от «SELECT LAST_INSERT_ID();»
Но бывает, необходимость, взять не просто последний id, а найти его по каким-то критериям, например, последнюю вставленную запись определенного пользователя. Поэтому данный запрос больше привычка, минусов в нём нет.
Так что тон вашего вопроса считаю вообще неуместным.
0
PingMe #
Я не знаю, как там в Zend, но вместо:
$sql = «SELECT id FROM objects_advanced ORDER BY id DESC LIMIT 1»;

$res = $this->registry['db']->prepare($sql);
$res->execute();
$oaid = $res->fetchAll(PDO::FETCH_ASSOC);

return $oaid[0][«id»];

Можно использовать всего одну строчку, одну функцию (mysql_last_insert_id()). Я не вижу смысла писать то, что написали Вы. Это всего лишь моя критика. Принимайте ее, раз уж выставляетесь на показ.
0
Zazza #
Это не Zend. Для доступа к бд используется PDO.
mysql_last_insert_id() функция из стандартной mysql библиотеки. В PDO её нет. Какой-то аналог, наверное, быть должен, этого не знаю.
Опять же кроме того, что кода чуть больше плюсов не вижу. Критику приму, если окажусь не прав.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.