Open-Source-Service zur Erstellung interaktiver Kanban-Boards mit Github-, Bitbucket- und Gitlab-Integration

    Eintrag


    Hallo, heute will ich Ihnen sagen , über meinen Service kanbanonrails.com , so dass ein Kanban Board erstellen und integrieren sie mit Github und Bitbucket.

    Was ist die Kanban-Methodik?


    Ich werde nicht auf Details eingehen, da die Methodik bereits bei Habré beschrieben wurde und ich mehr als einmal sagen möchte, dass es sich um ein Tool handelt, mit dem Sie das Projekt effektiv verwalten können. In diesem Artikel werde ich über Kartenkanban und dessen Implementierung in einer Programmform sprechen.

    Wir haben einen Kartensatz (die sogenannten Probleme, also Aufgaben) und es gibt Spalten, auf denen wir unsere Karten verschieben. In der Regel markieren wir eine Aufgabe beim Erstellen mit einem Tag, z. B. "backlog" oder "ready_to_work", sodass sie sofort mit einer unserer Spalten korreliert, die Aufgaben mit den Tags "backlog" bzw. "ready_to_work" erhalten. Während wir mit dieser Aufgabe fortfahren, verschieben wir sie in andere Spalten, z. B. "Codierung", "Testen" usw. Die Idee ist, Ihre Leistung rational zu nutzen und die Ansammlung von Karten in einer der Spalten zu verhindern. Darüber hinaus können Sie so sehen, wer an was arbeitet, und nachvollziehen, wie das Projekt voranschreitet.

    Was sind die aktuellen Implementierungen?


    Natürlich gibt es jetzt viele Dienste, mit denen Sie das tun können, was ich oben geschrieben habe. Aber jeder von ihnen hat seine Nachteile (Nuancen). Zum Beispiel müssen die meisten von ihnen bezahlt werden. Nicht alle von ihnen sind in Github oder Bitbucket integriert. Nicht alle von ihnen sind bequem und haben eine normale Benutzeroberfläche. Darüber hinaus erlauben nicht alle das Unterteilen von „Brettern“ in Abschnitte. Hier sind beispielsweise Dienste waffle.io huboard.com trello.com recht beliebt, die jedoch alle die oben beschriebenen Nachteile aufweisen.

    Merkmale und Funktionen meines Dienstes


    Aus diesem Grund habe ich mich entschlossen, einen eigenen Service zu erstellen, der sehr flexibel und funktional sein wird. Sie können Manager einladen, die keinen direkten Zugriff auf das Github / Bitbucket-Repository benötigen. Sie dürfen dort beispielsweise gar nicht registriert sein. Beim Erstellen einer Einladung müssen Sie die Rolle des Benutzers im Projekt angeben. Derzeit sind drei Rollen verfügbar: Eigentümer, Mitglied, Manager. Ein Benutzer mit der Rolle "Eigentümer" kann ein Projekt bearbeiten / löschen, "Mitglied" und "Manager" nicht. Außerdem können "Eigentümer" und "Mitglied" Tickets erstellen. Boards können in Abschnitte und Spalten unterteilt werden. Sie können einen Abschnitt mit dem Namen "Alle" erstellen (zum Beispiel) und alle Tickets dort einschließen (Sie müssen das entsprechende Kontrollkästchen im Kontrollkästchen aktivieren). Sie können auch einen Abschnitt "Kunden" mit einem "Kunden" -Tag erstellen, und alle Tickets, die ein "Kunden" -Tag haben, werden dort abgelegt. Als Nächstes können Sie Spalten für Abschnitte erstellen. Beachten Sie beim Erstellen von Spalten, dass sich Tags nicht überlappen dürfen. Das heißt, Sie können beispielsweise eine Design-Spalte mit dem Tag "design" erstellen, und alle Tickets, die unter den Tags "design" aufgeführt sind, werden dort abgelegt. Außerdem können Sie die Höhe und Breite der Spalte angeben. Der Service ist in 71 Sprachen übersetzt, obwohl es sich meistens um eine automatische Übersetzung handelt. Sie können jedoch jederzeit eine Pull-Anfrage senden, wenn Sie einen Fehler oder eine Ungenauigkeit in der Übersetzung feststellen. Als nächstes beschreibe ich ein wenig den Synchronisationsprozess mit Github und Bitbucket, aber gleichzeitig können Sie meinen Service immer nutzen, ohne Github und Bitbucket zu verbinden. welche unter den design tags haben kommen da hin. Außerdem können Sie die Höhe und Breite der Spalte angeben. Der Service ist in 71 Sprachen übersetzt, obwohl es sich meistens um eine automatische Übersetzung handelt. Sie können jedoch jederzeit eine Pull-Anfrage senden, wenn Sie einen Fehler oder eine Ungenauigkeit in der Übersetzung feststellen. Als nächstes beschreibe ich ein wenig den Synchronisationsprozess mit Github und Bitbucket, aber gleichzeitig können Sie meinen Service immer nutzen, ohne Github und Bitbucket zu verbinden. welche unter den design tags haben kommen da hin. Außerdem können Sie die Höhe und Breite der Spalte angeben. Der Service ist in 71 Sprachen übersetzt, obwohl es sich meistens um eine automatische Übersetzung handelt. Sie können jedoch jederzeit eine Pull-Anfrage senden, wenn Sie einen Fehler oder eine Ungenauigkeit in der Übersetzung feststellen. Als nächstes beschreibe ich ein wenig den Synchronisationsprozess mit Github und Bitbucket, aber gleichzeitig können Sie meinen Service immer nutzen, ohne Github und Bitbucket zu verbinden.

    Project Sync


    Um Ihre Projekte mit Github oder Bitbucket zu synchronisieren, müssen Sie diese Dienste zunächst in Ihren Einstellungen verbinden oder Sie können sie einfach durch Klicken auf das entsprechende Symbol im Menü durchgehen. Als nächstes müssen Sie auf die Synchronisierungsschaltflächen im Bereich "Projekte" klicken. Vergessen Sie nicht, die Anforderung der Organisationsdaten bei der Autorisierung über Github zu genehmigen, da sonst die Repositorys Ihrer Organisation nicht synchronisiert werden können.

    Ticket Sync


    Bei der Synchronisation von Projekten werden deren Aufgaben (Issues) gleichzeitig übertragen. Es ist zu beachten, dass bei einigen Projekten (Repositories) möglicherweise keine Probleme verbunden sind, sodass dort keine Tickets angezeigt werden. Stellen Sie daher sicher, dass der Abschnitt mit Problemen in Ihrem Github oder Bitbucket enthalten ist.

    Webhook-Erstellung


    Nachdem die Projekte und Aufgaben synchronisiert wurden, erstellt der API-Dienst Hooks, die beim Erstellen / Aktualisieren von Aufgaben an den Dienst gesendet werden.

    Warum Open Source?


    Erstens war ich immer ein Unterstützer von Open Source-Projekten. Zweitens können private Repositorys sehr wichtige Informationen enthalten. Daher habe ich beschlossen, dass es besser ist, diesen Service als Open Source zu gestalten, damit alles funktioniertparanoidWer möchte, kann es auf seinem Server installieren und verwenden, ohne befürchten zu müssen, dass jemand seinen Code stiehlt. Und drittens hoffe ich, dass die Community auch am Projekt teilnimmt, oder zumindest Stars setzt :-)

    Technologie-Stack


    In diesem Dienst verwende ich meinen bevorzugten Technologie-Stack: Ruby, Ruby on Rails, PostgreSQL, Slim, Sass, CoffeeScript, Sidekiq, Redis, Memcached und viele andere. Für die Benutzerinteraktion in Echtzeit verwenden wir Web-Sockets, das Action Cable-Framework. Ich wollte auch Selen hinzufügen, weil ich Akzeptanztests für die Cuckumber wirklich mag, aber ich habe mich entschieden, mich auf Integrationstests zu beschränken, weil Sie, wie Sie wissen, den Code mit Tests abdecken und ihn ad infinitum refaktorieren können, und ich wollte wirklich anfangen.

    Fazit


    Ich habe das Projekt in ungefähr 10 Tagen abgeschlossen und hauptsächlich nachts gearbeitet. Es wurde viel Arbeit geleistet, aber ich habe eine Menge Grundlagen aus meinen vorherigen Projekten verwendet. Außerdem bin ich auf einige Überraschungen gestoßen (das Wort "Issues" ist hier besser geeignet): Das Juwel, mit dem ich auf die Bitpack-API zugegriffen habe, hat beispielsweise beim Versuch, einen Web-Hook zu erstellen, einen Fehler generiert. Ich musste etwas darin zerlegen und reparieren (dies ist eher eine vorübergehende Lösung, daher habe ich keine Pull-Anfrage an das Edelstein-Repository gestellt). Mein Service steht am Anfang seiner Entwicklung und es bleibt noch viel zu tun. Wenn Sie also Fragen, Vorschläge oder Kommentare haben, schreiben Sie in die Kommentare, ich werde sie gerne lesen und so weit wie möglich beantworten.

    Der Dienst ist Open Source, sodass Sie ihn auf Ihrem Server bereitstellen und für Ihr Unternehmen verwenden können. Wenn Sie jedoch keine eigenen Server haben oder sich nicht um die Bereitstellung kümmern möchten, können Sie sich hier bei kanbanonrails.com registrieren (Sie können Github oder Bitbucket verwenden). . Die Registrierung und Erstellung von Projekten auf der Website ist noch kostenlos, möglicherweise wird es in Zukunft Tarife geben, oder wir können auf Tarife verzichten, die wir zum Beispiel durch Werbung verdienen werden. In jedem Fall können Sie den Code immer klonen und auf Ihrem Server bereitstellen. Das Projekt ist Open Source und ich plane nicht, die Lizenz zu schließen / zu ändern. Übrigens suche ich Investoren für dieses Projekt und für einige meiner anderen Projekte. Wenn Sie an einer Zusammenarbeit interessiert sind, schreiben Sie hier partnership@technoelegance.com oder hier kopylov.german@gmail.com

    Und natürlich der Link zum Github-Repository: github.com/technoeleganceteam/kanban_on_rails

    UPD (10.07.2016): Ich habe die Integration mit Gitlab durchgeführt und in README.md darüber geschrieben . Kurz gesagt: Mit dem Haupt-Gitlab-Server (https://gitlab.com) habe ich die Standardintegration durchgeführt und festgestellt, dass der Benutzer KanbanOnRails höchstwahrscheinlich auch auf seinem Server bereitstellen und verwenden kann, wenn er seinen eigenen Server für Gitlab verwendet , aber dafür muss er einige Parameter in den Einstellungen registrieren, über die ich in README.md geschrieben habe.

    Jetzt auch beliebt: