Zum Inhalt springen

Entwicklungsblog

GODAV Pro — ein Projektmanagementsystem entsteht

Ich baue Schritt für Schritt ein Projektmanagementsystem. Hier schreibe ich auf, was dabei entsteht und warum.

Aktuelle Version0.9.6Als Nächstes: 0.9.7
Roadmap49 / 7070 % der Key-Features erledigt

Einleitung

In den letzten 20 Jahren habe ich mit unterschiedlichen Projektmanagement- und Aufgabentools gearbeitet. Egal ob Excellisten, Aufgaben in Outlook, Wasserfallmodell mit MS Project oder agil mit Targetprocess oder Jira. Jedes Programm und jede Methode hatte seine Vor- und Nachteile.

Ich komme aus der Softwareentwicklung und SCRUM hat es mir besonders angetan. Eins habe ich jedoch immer wieder festgestellt. Kein Geschäftsführer interessiert sich dafür wie hoch die Geschwindigkeit innerhalb einer Iteration ist und wie viele Story Points man erledigt hat.

Wichtig ist nur: Wann sind die Projekte erledigt, welche Auswirkungen haben Änderungen an den Priorisierungen für den Zeitplan und wie viel Geld muss ich für zusätzliche Kapazitäten bereitstellen.

Hier kommt SCRUM das eine oder andere Mal an seine Grenzen. Kurz gesagt: MEINE eierlegende Wollmilchsau unter den Projektmanagementtools habe ich noch nicht gefunden.

Daher wollte ich ursprünglich ein kleines Tool entwickeln, dass die Daten per API aus einem Projektmanagementtool zieht, nach meinen Vorstellungen plant und auswertet und anschließend wieder zurückspielt. Und wenn wir schon einmal dabei sind, dann können wir das ganze mit KI machen und uns in das Thema einarbeiten.

Die Nutzung von KI war für mich der Aufbruch in eine neue Welt. Bei jeder Aufgabe, die ich übergab, wusste ich nicht ob ich heulen oder lachen sollte. Ich liebe es zu programmieren, jeden Tag Rätsel zu lösen und kreative Lösungen für Probleme zu finden. Das ist meine Leidenschaft, das macht mich stolz.

KI nimmt mir das weg. Gleichzeitig gibt es mir die Möglichkeit Projekte in Wochen zu bearbeiten für die ich Jahre brauchen würde.

Als ich noch ein Kind war, musste ich zu Weihnachten in meinem Zimmer warten, bis meine Eltern die Geschenke unter dem Weihnachtsbaum verteilt hatten. Oft waren es nur Minuten, aber bis die Tür endlich geöffnet wurde und ich rauskommen konnte, fühlte es sich wie Stunden an. Mit KI ist jeden Tag und zu jeder Stunde Weihnachten. Ich habe eine Idee und setze sie um. Das Ergebnis sehe ich in kürzester Zeit und kann direkt mit der nächsten Idee fortfahren (entsprechende Tests und Code-Reviews vorausgesetzt).

Das ist neu. Das ist anders. Das ist genauso überragend wie selbst programmieren.

Also habe ich meine Idee geändert. Ich baue jetzt meine eigene eierlegende Wollmilchsau. Und GODAV Pro ist geboren.

Worum es geht

GODAV Pro ist ein Projektmanagementsystem für Organisationen, in denen mehrere Teams an vielen Projekten gleichzeitig arbeiten. Es steuert Projekte, Aufgaben, Requests, Risiken, Termine und Ressourcen an einem Ort. Gedacht ist es für Projektleitungen, Fachabteilungen, Management und die Teams, die die eigentliche Arbeit machen.

Der Anspruch ist schlicht: Jede Seite soll sofort beantworten, wo ich bin, was wichtig ist, was Aufmerksamkeit braucht und was ich als Nächstes tun kann. GODAV Pro ist ein Arbeitswerkzeug, keine Marketing-Webseite. Tabellen und Listen stehen im Mittelpunkt, Dekoration nicht.

Wo es steht

Aktuell steht GODAV Pro auf Version 0.9.6. Von der ersten Projektliste bis hierher sind Boards, Zeiterfassung, Iterationen, Planning Poker, Gantt, Risikomanagement, Berichte, ein Import aus einem anderen System und eine GitHub-Anbindung dazugekommen, dazu ein ganzes Intranet. Was bis zur Version 1.0.0 noch fehlt, steht in einer Roadmap, die ich in der Anwendung selbst pflege. Vor 1.0.0 kommen vor allem Sicherheitsprüfung, Codereview und Fehlerbehebung, also weniger neue Funktionen und mehr Sorgfalt.

Wie ich entwickle

Ein paar Grundsätze ziehen sich durch das ganze Projekt:

  • Klarheit vor Dekoration. Farben haben genau eine Bedeutung, Icons sind einheitlich, und jeder Screen folgt derselben Vorlage. Lieber gut lesbar als schick.
  • Jede Regel hat einen Grund, und der Grund steht immer dabei. Regeln ohne Begründung werden zu Ritualen und irgendwann umgangen. Deshalb hat jeder Bereich eine Fachakte, die erklärt, wie er gebaut ist und warum.
  • Architektur, die sich prüfen lässt. Fachlogik liegt in Services, nicht in Controllern, und die Schichtgrenzen setzt der Linter durch, nicht nur ein Dokument.
  • Tests für die Entscheidungslogik. Neue Funktionen kommen mit Tests, und vor jedem Commit laufen Linter, Typprüfung und Testsuite.
  • Keine Attrappen. Was nicht fertig ist, erscheint nicht in der Oberfläche. Ein Knopf, der nichts tut, verspricht etwas, das es nicht gibt.

Ich entwickle GODAV Pro zusammen mit Claude Code als KI-Pair-Programmer. Die fachlichen Entscheidungen treffe ich, aber beim Lesen, Schreiben und Prüfen von Code arbeiten wir eng zusammen. Wie das im Alltag aussieht, ist selbst ein Thema für diesen Blog.

Was dich hier erwartet

In diesem Blog berichte ich über neue Funktionen und die Überlegungen dahinter, über Fehler, die erst spät aufgefallen sind, und über Entscheidungen, die ich später anders getroffen hätte. Zusätzlich gebe ich Einblicke in meine Arbeit mit KI und welche Erfahrungen ich gesammelt habe. Manche Beiträge sind eher fachlich, etwa wie eine Planung mit echter Kapazität rechnet. Andere sind technisch, etwa warum ein Kalendertag anders behandelt werden muss als ein Zeitpunkt.

Weiter unten findest du eine Übersicht über alle Werkzeuge, mit denen GODAV Pro gebaut wird.

Neueste Beiträge

In eigener Sache: Wie dieser Blog gebaut ist

Ein Blog über die Entwicklung von GODAV Pro sollte selbst ordentlich gebaut sein: statische Seiten, ein Kontaktformular ohne Drittanbieter, ein lokales Backend zum Schreiben und Veröffentlichen — und ein Werkzeug, das Bildschirmfotos verpixelt, bevor sie online gehen.

  • DevBlog
  • Architektur
  • Datenschutz

GODAV Verwaltung: viele Instanzen, ein Überblick

Für den Cloudbetrieb bekommt jeder Kunde eine eigene GODAV-Instanz. Damit das beherrschbar bleibt, habe ich ein eigenes Verwaltungsprogramm gebaut: Instanzen, Lizenzen, Updates mit Rücksprung, Sicherungen, Verfügbarkeit und Ressourcen an einem Ort.

  • Cloud
  • Betrieb
  • Verwaltung
Version 0.9.8

Das Intranet: Kalender, Wiki, Personen und Schulungen

Nach den Beiträgen im Magazin-Layout hat das Intranet in GODAV seine Werkzeuge bekommen: einen Kalender mit Kalenderwochen, ein Wiki mit Fassungen, ein Personenverzeichnis und buchbare Schulungen mit Warteliste.

  • Intranet
  • Zusammenarbeit
  • Datenschutz
Alle Beiträge ansehen →

Werkzeuge und Software

Sprache & Monorepo

  • TypeScriptDie eine Sprache für Backend, Frontend und gemeinsame Verträge, durchgehend im strengsten Modus.
  • Node.jsDie Laufzeitumgebung für Server und Werkzeuge.
  • pnpmPaketverwaltung und Workspaces für das Monorepo aus zwei Apps und zwei gemeinsamen Paketen.
  • TurborepoFührt Bau, Typprüfung und Tests über alle Pakete in der richtigen Reihenfolge aus.

Backend

  • NestJSDas Server-Framework, aufgeteilt in Module mit Controllern, Services und Repositories.
  • ExpressDie HTTP-Schicht unter NestJS.
  • class-validatorPrüft jede Eingabe an der API, bevor sie die Fachlogik erreicht.
  • ZodPrüft die Konfiguration beim Start, damit eine fehlende Einstellung sofort auffällt.
  • Swagger / OpenAPIBeschreibt die API maschinenlesbar und erzeugt daraus eine Dokumentation.
  • HelmetSetzt sicherheitsrelevante HTTP-Header.
  • PinoStrukturiertes, schnelles Logging.
  • NodemailerVersendet die Benachrichtigungsmails über SMTP.
  • ImapFlowLiest Postfächer per IMAP, damit aus eingehenden Mails Requests werden.
  • sanitize-htmlBereinigt HTML aus eingehenden Mails, bevor es weiterverarbeitet wird.
  • TurndownWandelt HTML aus Mails in Markdown um, damit Formatierungen erhalten bleiben.

Datenbank

  • PostgreSQLDie relationale Datenbank für alle Daten der Anwendung.
  • Drizzle ORMTypsicherer Datenbankzugriff und Migrationen, die als SQL geprüft und versioniert werden.

Frontend

  • ReactDie Bibliothek, aus der die gesamte Oberfläche gebaut ist.
  • ViteDev-Server mit sofortigem Neuladen und Bau der ausgelieferten Oberfläche.
  • TanStack RouterTypsicheres, dateibasiertes Routing.
  • TanStack QueryLädt, cacht und aktualisiert alle Daten vom Server.
  • Tailwind CSSGestaltung über Farbtoken und Utility-Klassen, im hellen und dunklen Schema.
  • shadcn/uiGrundbausteine der Oberfläche, die im Projekt liegen und angepasst werden.
  • Radix UIZugängliche Grundlagen für Menüs, Popover und Kontextmenüs.
  • dnd kitDrag and Drop auf den Boards, auch per Tastatur bedienbar.
  • LucideAllgemeine Bediensymbole neben den eigenen Icons der Anwendung.
  • InterDie Schrift der Oberfläche, selbst ausgeliefert statt von einem externen Dienst geladen.

Tests & Qualität

  • JestUnit- und End-to-End-Tests im Backend.
  • SupertestPrüft die HTTP-Schnittstelle in den Backend-Tests.
  • VitestTests für die Oberfläche.
  • Testing LibraryTestet Komponenten so, wie Nutzer und Screenreader sie wahrnehmen.
  • PlaywrightSteuert einen echten Browser für Tests und Bildschirmfotos der Hilfe.
  • ESLintPrüft den Code und setzt die Architekturregeln maschinell durch.
  • PrettierEinheitliche Formatierung ohne Diskussion.
  • Husky & lint-stagedPrüfen geänderte Dateien vor jedem Commit.
  • commitlintHält Commit-Nachrichten im Format der Conventional Commits.

Betrieb

  • DockerContainer für Entwicklung und Cloudbetrieb.
  • nginxLiefert die Oberfläche aus und leitet API-Anfragen an den Server weiter.
  • systemdBetreibt den Dienst auf einem Linux-Server und startet Updates.
  • MailpitFängt in der Entwicklung alle Mails ab, damit niemand versehentlich Post bekommt.

Entwicklungswerkzeuge

  • Claude CodeMein KI-Pair-Programmer: Ich entwickle GODAV Pro gemeinsam mit Claude Code, von der Fachakte über den Code bis zu den Tests.
  • tsxFührt TypeScript-Skripte direkt aus, etwa für Datenbankwerkzeuge.
  • VS CodeEntwicklungsumgebung und Code Editor