Öffentliches Sektor Offenes Projektmanagementsystem

Wir informieren Sie weiterhin über Open Source-Produkte, die im JS-Framework IONDV implementiert sind. Framework Heute werden wir über das Projektmanagementsystem sprechen, das eines unserer ersten Großprojekte war und das wir ursprünglich für die Regierung des russischen Gebiets Chabarowsk umgesetzt haben. Jetzt ist die Webanwendung auf GitHub unter der Apache 2.0- Lizenz geöffnet. Das von uns erstellte System ist stärker auf den regionalen öffentlichen Sektor zugeschnitten und verfügt daher über eine geeignete Metadatenstruktur und eine Reihe von Funktionen. Wir sehen jedoch keine wesentlichen Hindernisse, die verhindern würden, dass das System für bestimmte Aufgaben fertiggestellt wird, und niemand verbietet, es für den beabsichtigten Zweck zu verwenden.


Bevor wir die Erfahrung teilen, werden wir die Fragen beantworten, die auf den ersten Blick offensichtlich sind. Was ist das und warum? Auf der Suche nach einem fertigen oder einem eigenen? Und wir werden unsere Erfahrung in der Implementierung einer technischen Lösung einbringen.



Was und warum?


Was ist ein Projektmanagementsystem und warum brauchen Sie es? Hierbei handelt es sich um eine Reihe von organisatorischen und technologischen Methoden und Tools, mit denen die Projekte der Organisation verwaltet und unterstützt und die Qualität und Effektivität ihrer Implementierung verbessert werden. Für diejenigen, die sich mit dem Thema befassen, habe ich hier nichts Neues gesagt, und Sie können sofort zum technischen Teil des Artikels scrollen. Mit dem System können Sie die Qualität des Managements aller Projekte verbessern und den Anteil erfolgreicher Projekte erhöhen, die in Zeit und Budget passen. Für den Leiter kann dies auch ein Instrument sein, um die Arbeitsbelastung der Mitarbeiter über Projekte hinweg zu steuern. Anschließend kann so die Ressourcen wirtschaftlich dem vorrangigsten oder verzögertesten Projekt zugewiesen werden. Vergessen Sie nicht, dass es sehr wichtig ist, das gesamte Bild des Projekts zu sehen, um schwerwiegende Fehler zu vermeiden. Auf diese Weise können Sie rechtzeitig reagieren, die Taktik ändern und die richtige Managemententscheidung treffen.


Übrigens, für die akribischsten - sie wurden nach dem Standard implementiert, ist es lang - im Spoiler.


Normativ

Vorbehaltlich des Dekrets der Regierung der Russischen Föderation vom 31. Oktober 2018 Nr. 1288 "Über die Organisation von Projektaktivitäten in der Regierung der Russischen Föderation" und der methodischen Empfehlungen zur Umsetzung des Projektmanagements in Exekutivorganen, die auf Anordnung des Ministeriums für wirtschaftliche Entwicklung Russlands vom 14. April 2014 Nr. 26- genehmigt wurden.


Out of the Box oder Entwicklung von Grund auf neu?


Der Softwaremarkt ist mit einer Vielzahl schlüsselfertiger moderner Lösungen gesättigt. Wie sie sagen, ist das Fahrrad bereits erfunden. Aber wer hat gesagt, dass Sie es nicht nach eigenem Ermessen aktualisieren können? Wir sind zu einem Kompromiss bei der Entwicklung von Grund auf neu und sofort einsatzbereit. Auf die eine oder andere Weise wird ein Informationssystem für bestimmte Anforderungen zusammengestellt, jedoch nicht von Grund auf neu, sondern aus vorgefertigten Komponenten wie einem bedingten Konstruktor. Nur der Benutzer entscheidet, was darin enthalten sein soll und was nicht, und der Entwickler entscheidet, mit welchen Komponenten dies implementiert werden soll. Klar formulierte Anforderungen und Erwartungen an das Informationssystem liefern das erwartete Ergebnis.


Die Bedingungen für die Implementierung einer solchen Lösung sind viel niedriger als die für die Entwicklung von Grund auf neu, und es gibt keine Probleme mit strengen Einschränkungen bei Einstellungen und Neuprogrammierungsfunktionen. Und vor allem ist es einfacher und billiger, ein solches System zu warten. Da es auf GitHub öffentlich verfügbar ist, ist es auch kostenlos.


Übrigens verwenden wir diese Methode selbst. Als sich die Frage nach der Implementierung eines solchen Systems stellte, stellten wir eine Woche lang einen Prototyp mit Metadaten zusammen und verbrachten eine weitere Woche damit, ein neues Gantt-Diagrammmodul zu erstellen - das fertige Framework wurde mit der Kern-API verschraubt.


Dieses Framework war bereits ein funktionsfähiger Prototyp. Und alles, was in Zukunft getan wurde, war, die Metadaten endlos nach immer neuen Anforderungen zu wiederholen. "Und hier ist es - der Schieberegler sollte die Form eines Fortschrittsbalkens haben ...".


Diese Details


IONDV App. Das Projektmanagement wird auf Basis der IONDV- eigenen Technologie implementiert . Framework Dies ist das Open Source-Framework node.js zum Erstellen von Metadaten-basierten Webanwendungen auf hoher Ebene, für das keine ernsthaften Programmierkenntnisse erforderlich sind. Der Kern des Frameworks ist ein unabhängiges Datenmodell, Kernel-APIs, Funktionsbausteine ​​und Präsentationsvorlagen. MongoDb wird für das DBMS verwendet - es speichert Anwendungseinstellungen, Metadaten und die Daten selbst. Das Framework wird in Node.js ausgeführt. Alles zusammen bietet ein plattformübergreifendes Framework.
Die Kombination von IONDV. Studio + IONDV. Framework + IONDV. Apps (Application Builder aus dem Repository) - ist ein Rapid Prototyping-System. In dieser können Sie eine Webanwendung zum Ausarbeiten von Geschäftslogik und Datenstruktur, Sicherheit und einer vorgefertigten REST-API erhalten, damit Sie die Vorderseite mit Ihrem bevorzugten Winkel bearbeiten oder reagieren können. Und SOAP - um die Integration zu erarbeiten.

Systemvorbereitungsprozess


Die Arbeiten am System erfolgten nach einem etablierten technologischen Prozess in 4 Schritten: Vorbereitung, Implementierung, Korrektur und Akzeptanz.


Schauen Sie sich unsere einfache Infografik an, in der wir die Essenz des Prozesses der Zusammenarbeit mit dem Kunden zeichnen.





Details


Das Projektmanagementsystem verwendet Funktionsmodule wie: Geschäftsprozessmodul, Berichts- und Analysemodul, Gantt-Diagrammmodul, Grafikmodul, Geomodul, Personal Cabinet-Modul, Cloud-Speichermodul - alle sind auf dem Github verfügbar. In der Phase der Implementierung des Systems können Sie mit diesen vorgefertigten Modulen die Funktionalität des Systems für ein bestimmtes Tätigkeitsfeld ergänzen, die Implementierung der Geschäftslogik beschleunigen und schnell mit dem Sammeln von Kunden beginnen. Manchmal erstellen wir aus eigener Initiative oder zur Lösung von Arbeitsproblemen neue Module, sodass die Bank der vorgefertigten Module ständig aktualisiert wird.


Das Projektmanagementsystem ist eine Webanwendung, aber mit dem nw.js-Framework haben wir versucht, daraus eine Desktop-Anwendung zu machen.


Was beinhaltet IONDV. Projektmanagement?


  • Buchhaltung für Projekte und Veranstaltungen
  • Trennung von Rechten und Sicherheit
  • Budgetierung
  • Objektüberwachung
  • Visualisierung geografischer Daten
  • Formulare drucken
  • Sammlung von Berichtsinformationen
  • Gantt-Diagramm
  • Speicherung von Projektdokumenten im Dateispeicher.

Als Ergebnis ein System mit einer relativ einfachen Oberfläche, in der mit Modulen zur Lösung von Schlüsselaufgaben gearbeitet wird: Erstellen eines Projekts, Überwachen, Verwalten aller Arten von Indikatoren in jeder Phase seiner Entwicklung. Dateispeicherung und Zusammenarbeit mit Dokumenten sind dank Cloud-Speicher möglich - Nextcloud . Außerdem ist es möglich, eine kostenlose Version von Collabora online zu verbinden, um Dokumente online gemeinsam zu bearbeiten. Lassen Sie uns ein Beispiel zeigen, wie es im Benutzermodus aussieht. Übrigens können Sie es in der Demo testen. Auf der Projektkarte gehen wir im Abschnitt "Informationen" zum Feld "Dateien" und klicken auf die Schaltfläche mit dem Symbol "Freigabe".



Wenn ein Link gebildet wird, klicken Sie auf das Kontrollkästchen „Zum Bearbeiten zulassen“, und die Voilà-Datei kann gemeinsam bearbeitet werden.


Übrigens haben wir ein Video aufgenommen, in dem wir darüber sprechen, wie Projekte und Ereignisse im System gestartet werden, und die grundlegenden Funktionen gezeigt. Abonnieren Sie den Kanal, Nun, du bekommst den Blick.


Im Projektmanagementsystem ist die Schlüsselklasse natürlich die Projektklasse, die im JSON-Format folgendermaßen aussieht:


{ "isStruct": false, "key": [ "guid" ], "semantic": "name| ( |code| )", "name": "project", "version": "31", "caption": " ", "ancestor": "basicObj", "container": null, "creationTracker": "", "changeTracker": "", "history": 0, "journaling": true, "compositeIndexes": null, "properties": [ { "orderNumber": 20, "name": "code", "caption": " ", "type": 0, "size": null, "decimals": 0, "allowedFileTypes": null, "maxFileCount": 0, "nullable": false, "readonly": false, "indexed": true, "unique": true, "autoassigned": true, "hint": "     .      .    .", "defaultValue": {"if": ["$basicObj", {"concat": ["$basicObj.project_code", "-", {"next": ["$basicObj.project_code"]}]}, ""]}, "refClass": "", "itemsClass": "", "backRef": "", "backColl": "", "binding": "", "semantic": null, "selConditions": [], "selSorting": [], "selectionProvider": null, "indexSearch": false, "eagerLoading": false, "formula": null }, { "orderNumber": 30, "name": "project_code", "caption": "project_code [,   ]", "type": 0, "size": null, "decimals": 0, "allowedFileTypes": null, "maxFileCount": 0, "nullable": false, "readonly": false, "indexed": true, "unique": false, "autoassigned": true, "hint": null, "defaultValue": {"if": ["$basicObj", "$basicObj.project_code", "$code"]}, "refClass": "", "itemsClass": "", "backRef": "", "backColl": "", "binding": "", "semantic": null, "selConditions": [], "selSorting": [], "selectionProvider": null, "indexSearch": false, "eagerLoading": false, "formula": null }, 

Wir haben Ihnen bereits gesagt, dass Metadatenklassen vererbt werden können. Für sie werden Ansichten separat festgelegt, die sich in den verschiedenen Schritten von Geschäftsprozessen und vielem mehr unterscheiden. Die Eigenschaft properties listet die Liste der Attribute auf. Diese Klasse hat mehr als 40 Attribute. Erfahren Sie mehr über Metadaten. Die Vererbungstiefe beträgt 7 Ebenen: das Basisobjekt / Projekt / Ereignisblock / Ereignis / Ereignis des Objekts / Ereignisentwicklung des Objekts / Kontrollpunkts. Und es gibt auch Zweige der Erben. Große Familie...


Die Überwachungsfunktionen von Projektindikatoren werden vom Portal-Modul implementiert:



Außerdem werden rollenbasierte Workstations implementiert, z. B. Workstations des Projektkurators.


Eine Funktion des Projekts sind - spezielle Vorlagen mit zusammenfassenden Informationen zum Projekt.



Dies wird in Form kleiner Vorlagen implementiert. Darüber hinaus sind die Datenquellen:


  • Die Objekt-API ist die langsamste.
  • Zwischengespeicherte Berechnungen des Projekts selbst, die beim Speichern geändert werden.
  • Berichtsmodul-API - Geplante Daten sind der schnellste Weg.

Zum Beispiel das Fortschritts-Widget:


 <% let value = parseInt(item.property('progress').getValue()) || 0; value = value < 0 ? 0 : value > 100 ? 100 : value; let text = value === 100 ? '' : `${value}%`; let css = value === 100 ? 'ready' : ``; %> <div class="form-group mb30 <%= cssFromTags(field) %>"> <div class="col-sm-12"> <div class="attr-content"> <div class="center-progress <%- css %>"> <div class="center-progress-bar" style="width: <%- value %>%"></div> <div class="center-progress-text"> <%- text %> </div> </div> </div> </div> </div> 

Und so wird die Vorlage anstelle des Attributs verbunden:


 { "caption": " ", "type": 7, "property": "totalProgress", "size": 12, "options": { "template": "attrs/project/totalProgress" } } 

Wo suchen und anfassen?


Unter Linux können Sie die Anwendung in einer Zeile installieren, wenn git, node.js und mongodb mithilfe des iondv-app-Installationsprogramms lokal installiert werden. Das Skript installiert die Umgebungsabhängigkeiten, klont alle erforderlichen Repositorys des Frameworks, der Module und Anwendungen von GitHub, sammelt, initiiert und startet die Anwendung:


 bash <(curl -sL https://raw.githubusercontent.com/iondv/iondv-app/master/iondv-app) -q -i -m localhost:27017 pm-gov-ru 

Wo anstelle von localhost: 27017 müssen Sie die Adresse von MongoDb angeben. Beachten Sie, dass das System nextcloud erwartet, verfügbar unter http: // localhost: 8080 und mit dem Demokonto ion-demo password.


Sie können den Docker-Container auch starten:


 #     docker network create iondv #   mongodb    docker run --name mongodb --net iondv -v mongodb_data:/data/db -p 27017:27017 -d mongo #    nextcloud (curl  POST     docker run -d --name nextcloud --net iondv -p 8080:80 nextcloud && \ sleep 120 && \ docker exec -it nextcloud curl -X POST --connect-timeout 90 -k -s -d "install=true&adminlogin=demo&adminpass=ion-demo&adminpass-clone=ion-demo&directory=/var/www/html/data&dbtype=sqlite&dbhost=localhost" -H "Host: nextcloud" http://localhost:80 #  IONDV. PM-GOV docker run -d -p 8888:8888 --net iondv iondv/pm-gov-ru 

Öffnen Sie nach dem Start den Link http: // localhost: 8888 . Für Backoffice Login: Demo, Passwort: Ion-Demo mit Administratorrechten. Der zweite Benutzer mit eingeschränkten Bedienerrechten ist das Bedienerkennwort ion-demo.


Siehe auch das Anwendungshandbuch.


Testen Sie die Demo-App . Login - Demo, Passwort - Ion-Demo.


Die Demo enthält ein Gantt-Modul und eine hierarchische Darstellung von Indikatorverzeichnissen (TreeGrid aus der zusätzlichen viewlib-extra-Anwendung) in einer Reihe von Objekten. Leider enthalten diese Module proprietäre Komponenten und wir können sie nicht auf GitHub veröffentlichen (denken Sie daran, wir hatten es eilig, den Prototyp zu zeigen ???), daher enthalten die Anwendungsversion und der öffentliche Docker-Container diese nicht.


Weiterentwicklung


Die Entscheidung zur Implementierung eines Projektmanagementsystems ist ein multilateraler Prozess, der häufig von Faktoren abhängt, die auf den ersten Blick nicht offensichtlich sind. Wenn Sie sich für ein System entscheiden, wählen Sie auch ein Team aus, das Sie bei der Implementierung unterstützt. Wenn Sie von Ihren Fähigkeiten und Kollegen überzeugt sind, handeln Sie und wir werden Sie technisch und moralisch unterstützen .


Alle Anstrengungen und Kosten zahlen sich aus, wenn Sie dank des Systems beginnen, Zeit, Personal und finanzielle Ressourcen effektiver zu verwalten, um die Unternehmensziele zu erreichen. Und vor allem können Sie alles wiederholen - genau so, wie es für Sie funktioniert.


Wir hoffen, dass Sie einige Ideen für Ihre weitere Entwicklung haben, und wir haben Ihnen gezeigt, dass es nicht erforderlich ist, einen unbescheidenen Betrag für ein System zu zahlen, das Sie selbst sammeln und ändern können. Es ist interessant zu hören, wie allgemein Sie ein solches Open Core- Modell unter modernen Bedingungen für realisierbar halten, insbesondere bei solchen Schwergewichts-Systemen wie IONDV. Projektmanagement .

Source: https://habr.com/ru/post/de459578/


All Articles