Friday, July 15, 2011

Task Adapter

Завелся у меня хобби-проект, над которым я работаю в свободное время.
Суть проекта: перенос данных между баг-трекинговыми системами (Atlassian Jira, Redmine, Chiliproject, ...) и Microsoft Project. Как побочный эффект - возможен перенос данных между баг-трекинговыми системами (Atlassian Jira --> Redmine и т.п.).

Сайт проекта: www.taskadapter.com

Пользователи продукта
  • ГЛАВНЫЕ: менеджеры, которые ведут план проекта в Microsoft Project и которым надо синхронизировать данные с баг/таск трекерами.
  • Второстепенные:  компании, которым надо настроить автоматическую синхронизацию данных между двумя баг-трекинговыми системами (этот режим пока не готов)
Регулярной зарплаты в проекте нет. Деньги можно получать за кастомную доработку под конкрентых клиентов.
Мелкие бонусы для участников:
  1. возможность поизучать новые технологии. я буду обучать и консультировать.
  2. решение интересных архитектурных задач
  3. завести полезные знакомства.
  4. для компаний - бесплатная лицензия на продукт.
Факты о проекте:
  • Есть платные пользователи (!), но пока мало. Много потенциальных пользователей просят различные доп. функции, но надо стараться не добавлять в продукт ерунду, которая нужна только 1-2 клиентам. Пользователи - различные компании среднего размера из разных стран мира. 
  • Потенциальный инвестор на данный момент - правительство Канады. Среди потенциальных клиентов - Военно-Морской флот США (ждут добавления пары функций в продукт).
  • Ведущий разработчик - я. Есть одна фирма-клиент из Бразилии, они иногда помогают с разработкой коннекторов Redmine и MSP. Jira их не интересует, т.к. они ее не используют.
  • Продукт написан на Java.
  • Пользовательский интерфейс (в текущей версии) сделан на платформе Eclipse.
  • Приложение модульное: есть ядро, есть модуль пользовательского интерфейса, и по 2 модуля (логика + редактор) для каждого "коннектора": Redmine, Atlassian Jira, Microsoft Project.
  • Добавить коннектор для поддержки новой баг-трекинговой системы (багзилла, ...) легко. Если у них уже есть готовый Java API - порядка 5 рабочих часов.
  • До сих пор основной упор был на полноценную поддержку Redmine, Jira была добавлена лишь для понимания, какие части будут общими у web-based bug-tracking систем, чтобы вынести их в "ядро" системы. 
  • Для поддержки Redmine я разработал Redmine Java API (сейчас сделал его бесплатным и open-source).
  • Система хранения версий - Subversion. В будущем можно Git, пока смысла не было.
  • Система Continuous Integration - Jenkins CI.
  • Есть большой набор юнит и интеграционных тестов для всех коннекторов и ядра системы, прогоняются при каждой автоматической сборке в Jenkins CI.
  • Система сборки: Maven + Tycho.
  • Серверы для поддержки инфраструктуры (кроме веб-сайта проекта)  находятся у меня дома, доступны всем через интернет (установлены несколько версий Jira, Redmine, Chiliproject). Локально участникам проекта ничего этого ставить не надо.

Задачи (в случайном порядке и без группировки):
  • понять, в какую сторону развивать продукт, разработать стратегию.
  • предложить варианты улучшения и/или улучшить дизайн веб-сайта (www.taskadapter.com), его содержание, выбрать более подходящую платформу для сайта (сейчас используется Drupal) и  т.п.
  • доработать пользовательскую документацию, создать видео-ролики с примерами использования, ...
  • тестировать продукт
  • оказывать поддержку пользователям по почте (английский язык)
  • рассказывать о продукте потенциальным пользователям на форумах и т.п.
  • предложить и/или реализовать улучшения пользовательского интерфейса и т.п.
  • доработать Jira Connector.
  • понемногу дорабатывать Redmine Java API (когда потребуется для Task Adapter или есть настроение).
  • разработать дополнительные "коннекторы" (для Bugzilla, Basecamp, Github, Pivotaltracker, Foxbugs,....) Это должно быть просто, т.к. вся общая логика коннекторов вынесена в "ядро" системы. Коннекторы подключаются как OSGI bundles.
  • перевести пользовательский интерфейс на веб (основная задача для версии 2.0)
  • добавить автоматический режим синхронизации данных без участия пользователя (по таймеру) - запланировано на версию 2.0
  • продумать механизм лицензирования с учетом радикальных изменений в версии 2.0
  • понять, надо ли оставлять в проекте OSGI после ухода с платформы Eclipse. 
  • много прочего, полный список тут: https://www.hostedredmine.com/projects/ta/issues (создайте эккаунт на том сервере, пришлите мне account name, я дам доступ).
Пишите на alskor (at) gmail.com

Сайт проекта: www.taskadapter.com

6 comments:

Anonymous said...

На сайте перенеси google analytics js block в конец страницы (перед закрывающим html) - скорость загрузки сайта увеличится.

Alex said...

Спасибо, сделаю.

Роман Кузьмин said...

Просто вспомнил похожую задачу. Может окажется полезным. Мы как-то делали коннектор к redmine для MindTouch. И придумали вот такой путь: есть в eclipse проект MyLin, который включает API для управления задачами во внешних баг трэкерах (jira, bugzilla, redmine etc). Сделано там все на OSGi, очевидно. И качество хорошее. Так вот мы его вытащили из клипса и заставили работать в Eclipse Virgo (это такая смесь Equinox & Apache Tomcat). Прикрутили поддержку сессий и получили результат - web onnector к redmine. Буквально "на раз". Так вот я подумал, поскольку конеекторов к майлину много написано уже, может и тебе стоит их прикрутить? А раз ты ищешь способа запустить все на вебе, то наш подход с вирго, вроде бы тоже может помочь.

Alex said...

да, переиспользовать готовые коннекторы было бы хорошо. я смотрел в самом начале коннектор для redmine под MyLyn, он меня тогда не впечатлил. или что-то в нем не понравилось / не подошло, не помню уже сейчас.
если говоришь, что его можно вытащить и использовать вне эклипса - классно. придется на него еще раз посмотреть.

Alex said...

о, припоминаю, что было не так с коннектором Редмайна. вроде он требовал установки доп. плагина в сам редмайн. а это сразу убивает половину потенциальных пользователей.
мой коннектор использует только Redmine REST API.

плюс что-то тот коннектор не предоставлял из нужных мне данных, не помню сейчас... я писал запрос разработчикам тогда с просьбой то ли добавить, то ли открыть АПИ, но ответа не было...

да и вообще сейчас вся логика у меня убрана в "ядро", написать дополнительный коннектор можно часа за 2, плюс еще редактор конфигурации к нему за час (если взять как пример существующий). так что разработка собственно коннекторов - не проблема...

balmaster said...

Проект интересный, готов участвовать.
От себя, могу Web GUI на GWT реализовать например.
iam.balmaster at gmail.com