Im sich schnell wandelnden Bereich digitaler Lösungen haben sich Wirksamkeit und Agilität der Webanwendungsentwicklung als entscheidende Erfolgsfaktoren herausgestellt. In dieser Landschaft möchten wir herausfinden, welche architektonische Wahl die beste ist.

In dieser aufschlussreichen Blogbeitragsreihe begeben wir uns auf eine faszinierende Erkundung verschiedener architektonischer Ansätze für Webanwendungen, analysieren jeden einzelnen und bewerten, wie gut er mit den Zielen Effizienz, Innovation und Wettbewerbsvorteil übereinstimmt. Ob ihr erfahrene Entwickler seid, die mit den neuesten Trends Schritt halten möchten, oder Führungskräfte, die Strategien für fundierte Entscheidungen suchen – diese Reise wird wertvolle Einblicke bieten, um den optimalen architektonischen Ansatz für eure einzigartigen Projekte auszuwählen.

Architektonische Ansätze

Betrachten wir die wichtigsten architektonischen Ansätze, die wir für diese Reise ausgewählt haben:

Strapi mit Spring-Boot-Backend und Vue.js-Frontend: Die Eleganz von Strapi, einem leistungsstarken Headless-CMS, in Verbindung mit dem robusten Spring-Boot-Backend und Vue.js-Frontend. Wir gehen davon aus, dass diese Kombination ein dynamisches Ökosystem schafft, das Content-Management und Backend-Operationen mit Vue.js als unserer bevorzugten Wahl für eine nahtlose, responsive und interaktive Benutzererfahrung optimiert.

No-Code Power Platform Suite: Angesichts des Bedarfs an schneller Entwicklung betrachten wir die Möglichkeiten von No-Code-Plattformen wie Microsofts Power Platform Suite. Dieser Ansatz befähigt Unternehmen, Anwendungen mit minimalem Coding-Aufwand zu erstellen, was die Entwicklung beschleunigt, die Agilität verbessert und Einstiegshürden senkt.

React Admin Frontend mit Node.js-Backend: Kombination von React Admin als Frontend-Framework mit einem sauberen Node.js-Backend. Dieser Ansatz fördert modulare, effiziente und schnelle Benutzeroberflächen für Admin-Panels, während Node.js eine skalierbare und ereignisgesteuerte Grundlage für Backend-Operationen bietet.

Ziele

Im Verlauf dieser Erkundung werden wir untersuchen, wie diese architektonischen Ansätze zu folgenden Kernzielen beitragen:

Entwicklungsgeschwindigkeit beschleunigen: Schnelle Anwendungsentwicklung über verschiedene Projekte hinweg. Durch den Einsatz bewährter Frameworks und architektonischer Muster möchten wir die Time-to-Market minimieren und sicherstellen, dass Anwendungen bereit sind, den sich ständig weiterentwickelnden digitalen Anforderungen gerecht zu werden.

Effizienz für vielfältige Projekte: Die Fähigkeit, Projekte verschiedener Größen effizient zu bedienen, von MVPs bis hin zu aufwändigen Prototypen. Dieser Ansatz verbessert die Wettbewerbsfähigkeit durch die prompte Lieferung kosteneffektiver Lösungen, ohne Abstriche bei Qualität, Sicherheit oder Zuverlässigkeit zu machen.

Redundanz eliminieren: Redundante Bemühungen abschaffen. Durch die Befürwortung der Verwendung wiederverwendbarer Komponenten und standardisierter Module möchten wir jedes Projekt in einen Baustein der Innovation verwandeln und ein kumulatives Repository von Best Practices fördern.

Ein einfaches reales Szenario

Jede gute Analyse braucht reale Herausforderungen, um keine theoretische Übung zu werden. Daher haben wir uns das Ziel gesetzt, eine Anwendung zu entwickeln, die folgende Mindestanforderungen erfüllt, um die verschiedenen architektonischen Ansätze zu vergleichen.

Entwicklung eines Ressourcenreservierungssystems, das für verschiedene Szenarien anwendbar ist. Dieses System ermöglicht es Benutzern, bestimmte Ressourcen innerhalb verschiedener Kategorien für eine konfigurierbare Dauer zu reservieren (anfänglich auf 30 Minuten festgesetzt).

Schlüsselanforderungen:

Informative Website: Das System enthält eine Website, die allgemeine Informationen bietet und Benutzern ermöglicht, Inhalte auf zwei verschiedenen Seiten ohne technisches Fachwissen anzupassen. Die dritte Seite, die nach dem Login zugänglich ist, bietet spezialisierte Details.

Ressourcenreservierung: Sobald Benutzer eingeloggt sind, können sie verfügbare Ressourcen in verschiedenen Kategorien erkunden und Reservierungen für eine definierte Dauer vornehmen. Das Datenmodell umfasst Benutzer (ID, Benutzername, Passwort, E-Mail), Ressourcenkategorie (ID, Kategoriename) und Reservierte Ressource (ID, Kategorie-ID, Nummer, Reserviert bis).

Geplante Aufgabe zur Reservierungsbereinigung: Eine automatisierte Aufgabe löscht regelmäßig reservierte Ressourcen, sobald die angegebene Zeitdauer abgelaufen ist.

Admin-Funktionalität: Administratoren haben zusätzliche Berechtigungen:

  • Ressourcen- und Kategorieverwaltung: Admins können neue Ressourcenkategorien und zugehörige Ressourcen einrichten, was zur effizienten Organisation verfügbarer Ressourcen beiträgt.
  • Benutzerüberwachung: Admins können neue Benutzer erstellen, sowohl mit administrativen als auch nicht-administrativen Rollen. Diese Funktionalität vereinfacht den Benutzerzugang und die Rollenzuweisung im System.

Eine benutzerfreundliche Oberfläche, Ressourcenreservierungsfähigkeiten und administrative Tools sind Schlüsselanforderungen für ein effektives Ressourcenmanagement. Benutzer interagieren mit informativen Inhalten, reservieren Ressourcen kategorienübergreifend und profitieren von der automatischen Reservierungsbereinigung. Admins können Ressourcenkategorien, Ressourcen und Benutzer erstellen und verwalten und bieten damit eine umfassende Lösung für Ressourcenreservierung und -verwaltung.

Zusätzliche (optionale) Anforderungen:

Integration von OIDC (OpenID Connect): Das System soll OpenID Connect integrieren, mit der Möglichkeit, einen Dienst wie Keycloak zu nutzen. Diese Integration soll eine sichere Benutzerauthentifizierung und -autorisierung gewährleisten und die Gesamtsicherheit des Systems verbessern.

Integration eines Zahlungsanbieters: Das Projekt soll eine Integration mit einem Zahlungsanbieter beinhalten. Diese Integration soll nahtlose Transaktionen für Benutzer ermöglichen, die für ihre reservierten Ressourcen bezahlen.

E-Mail-Versand: Das System soll mit der Fähigkeit ausgestattet sein, E-Mails zu versenden. Es soll für die Benachrichtigung von Benutzern über verschiedene Ereignisse wie erfolgreiche Reservierungen, bevorstehende Reservierungsabläufe und andere relevante Mitteilungen verantwortlich sein, um eine effiziente Benutzereinbindung zu gewährleisten.

Responsivität (Desktop + Mobile): Das Design und die Implementierung der Website sollen die Responsivität priorisieren. Die Benutzeroberfläche soll anpassungsfähig und benutzerfreundlich über eine Reihe von Geräten sein, einschließlich Desktop- und Mobilplattformen.

Internationalisierung (i18n): Das Projekt soll i18n-Unterstützung (Internationalisierung) beinhalten. Das System soll so konzipiert sein, dass es verschiedene Sprachen und Regionen berücksichtigt und damit Zugänglichkeit und Benutzerfreundlichkeit für eine vielfältige Benutzerbasis fördert.

Im Verlauf unserer Reise werden wir aufdecken, wie jeder architektonische Ansatz mit diesen übergeordneten Zielen übereinstimmt.

Bleibt dran!