Open source сервіс для створення інтерактивних Канбан дощок з Github і Bitbucket інтеграцією

Вступ

Здравствуйте, сьогодні я вам розповім про сервісі kanbanonrails.com, що дозволяє створювати Канбан дошки і інтегрувати їх з Github і Bitbucket.

Що таке Kanban методологія?

Я не буду заглиблюватися в подробиці, так як методологія вже була описана на Хабре і не раз, скажу лише що по суті це такий інструмент, який дозволяє ефективно керувати проектом. У даній статті я розповім про картковому Канбане та його реалізації у програмному вигляді.

У нас є набір карток(так званих issues'ів, тобто завдань) і є стовпці, по яким ми переміщаємо наші картки. Як правило при створенні завдання ми помічаємо її яким-небудь тегом, наприклад «backlog» або «ready_to_work», таким чином вона відразу співвідноситься з одним з наших стовпців, в які потрапляють завдання з тегами «backlog» або «ready_to_work» відповідно. Потім, у міру просування роботи з цим завданням, ми переміщуємо її в інші, наприклад, «coding», «testing» і так далі. Ідея в тому, щоб раціонально використовувати свою продуктивність і не допускати скупчення карток в одному з стовпців. Крім того, все це дозволяє бачити хто над чим працює і зрозуміти наскільки проект просувається вперед.

Які є поточні імплементації?

Звичайно ж, зараз існує безліч сервісів, які дозволяють робити те, що я написав вище. Але у кожного з них є свої недоліки(нюанси). Наприклад, більшість з них потрібно платити. Не у всіх з них є інтеграція з Гитхабом або Битбакетом. Не всі вони зручні і володіють нормальним користувальницьким інтерфейсом. Крім того, не всі вони дозволяють ділити «дошки» на секції. Ось, наприклад, досить популярні сервіси waffle.io huboard.com trello.com але у всіх у них є недоліки, описані вище.

Можливості та функціональність мого сервісу

Тому я вирішив створити свій сервіс, який буде досить гнучким і функціональним. Ви можете запросити менеджерів і при цьому їм не потрібно буде надавати доступ безпосередньо до гитхаб/битбакет дерева. Вони можуть бути взагалі там не зареєстровані, наприклад. При створенні інвайту, вам потрібно буде вказати роль в проекті. Зараз доступно три ролі «owner», 'member', 'manager'. Користувач з роллю «owner» може редагувати/видаляти проект, «member» і «manager» — не можуть. Крім того, «owner» і «member» можуть створювати тікети. Дошки можна розбивати на секції і колонки. Ви можете створити секцію з назвою «All»(наприклад) і включити туди всі тікети(потрібно поставити відповідну галочку в чекбоксі). А можете створити секцію «Clients» з тегом «client» і туди будуть потрапляти всі тікети, у яких є тег «client». Далі можна створювати стовпці для секцій. При створенні стовпців враховуйте, що теги не повинні перекриватися. Тобто, наприклад, ви можете створити стовпець Design з тегом «design» і всі тікети, у яких є серед тегів «design» потраплять туди. Крім того, ви можете вказувати висоту і ширину стовпця. Сервіс переведений на 71 мову, правда в основному автоматичним перекладом, але ви завжди можете надіслати Pull Request якщо побачите помилку або неточність в перекладі. Далі я трохи опишу процес синхронізації з Гитхабом і Битбакетом, але при цьому ви завжди можете використовувати мій сервіс та без підключення Гитхаба і Битбакета.

Синхронізація проектів

Для того, щоб засинхронізувати свої проекти з Гитхаба або Битбакета, ви повинні спочатку підключити ці сервіси в своїх настройках або можете просто зайти через них натиснувши в меню по відповідній іконці. Далі вам потрібно буде натиснути на кнопки синхронізації в розділі з проектами. Не забудьте схвалити запит до даними організації при авторизації через Гитхаб, інакше не можна буде синхронізувати репозиторії вашої організації.

Синхронізація тікетів

При синхронізації проектів заодно перенесуться і їх завдання(issues). Варто звернути увагу, що у деяких проектів(репозиторіїв) можуть бути підключені Issues, так що ви не побачите там ніяких тікетів, тому переконайтеся, що розділ Issues'ами у вас включений в Гітхабі або Битбакете.

Створення вебхуков

Після того як проекти і завдання засинхронизируются, через апі сервіс створить хуки, які будуть відправлятися на сервіс при створенні/обнолении завдань.

Чому open source?

По-перше, я завжди був прихильником open source проектів. По-друге, в приватних репозиторіях може міститися дуже важлива інформація, тому я вирішив, що буде правильніше зробити цей сервіс з відкритим вихідним кодом, щоб всі параноїки бажаючі могли задеплоить його на свій сервер і користуватися ним не боячись, що їх код хтось вкраде. Ну і по-третє, я сподіваюся, що спільнота теж буде брати участь у проекті або хоча б ставити зірочки :-)

Стек технологій

В цьому сервісі я використовую мій найулюбленіший стек технологій: Ruby, Ruby on Rails, PostgreSQL, Slim, Sass, CoffeeScript, Sidekiq, Redis, Memcached і безліч інших. Для real-time взаємодії з користувачем використовуються вебсокеты, а саме фреймворк Action Cable. Я ще хотів додати Selenium, тому що я дуже люблю приймальні тести на кукумбере, але вирішив обмежитися інтеграційними тестами, тому що, як ви знаєте, покривати тестами код і рефакторіть його можна до нескінченності, а мені вже дуже хотілося запуститися.

Висновок

Проект я зробив приблизно за 10 днів, працюючи переважно ночами. Роботи зроблено чимало, але багато напрацювань я використовував зі своїх попередніх проектів. Крім того, я зіткнувся з деякими несподіванками(тут як ніколи підходить слово «issues»): наприклад гем, який я використовував для звернення до апі битбакета, видавав помилку при спробі створення вебхука. Довелося зробити форк і дещо в ньому поправити(це скоріше тимчасове рішення, тому що я не став робити Pull Request в репозиторій з гемом). Мій сервіс знаходиться на самому початку свого розвитку і багато що належить зробити, так що якщо є питання, побажання чи зауваження, пишіть в коментарях, я буду радий прочитати і відповім на них по мірі можливості.

Сервіс з відкритим вихідним кодом, тому ви можете задеплоить його на свій сервер і використовувати для вашої компанії, але якщо у вас немає своїх серверів або ви не хочете морочитися з деплоем, ви можете зарееструватися тут kanbanonrails.com (можна зайти через Github або Bitbucket). Реєстрація та створення проектів на сайті поки безкоштовні, можливо, в майбутньому виникнуть тарифи, а може обійдемося і без тарифів, наприклад будемо заробляти на рекламі. У всякому разі ви завжди зможете скопіювати код і задеплоить його на свій сервер, проект буде open source і я не планую його закривати/змінювати ліцензію. До речі, на цей проект і на деякі інші мої проекти я шукаю інвесторів, так що якщо ви зацікавлені в співпраці пишіть сюди partnership@technoelegance.com або сюди kopylov.german@gmail.com

Ну і звичайно ж посилання на гитхаб репозиторій: github.com/technoeleganceteam/kanban_on_rails
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.