docker run -p 8080:8080 savantly/nexus-command
Sie können diese als Eigenschaften oder Umgebungsvariablen festlegen.
nexus.modules.organizations.enabled : true # enable the organizations module
nexus.modules.projects.enabled : true # enable the projects module
nexus.modules.franchise.enabled : true # enable the franchise module
nexus.modules.web.enabled : true # enable the web module
nexus.modules.org-web.enabled : true # enable the org-web module
nexus.modules.security.enabled : true # enable the security module
Weitere Konfigurationsoptionen finden Sie in den Anwendungseigenschaften.
./src/main/resources/application.yml
Nexus Command ist eine mandantenfähige Anwendung, die eine Plattform für die Verwaltung aller Arten von Geschäftsdaten bietet. Es basiert auf dem Apache Causeway-Framework und bietet einen Ausgangspunkt für die Verwaltung Ihrer eigenen Daten und die Erstellung benutzerdefinierter Anwendungen/Integrationen.
Ein typischer Anwendungsfall ist die Bereitstellung einer Plattform für die Verwaltung von Geschäftsdaten, die Bereitstellung der Daten als Inhalt und die Integration in Drittsysteme.
Videovorschau
Sie können die Standard-Webanwendung verwenden, die alle Module enthält, oder Sie können Ihre eigene Webanwendung erstellen und alle benötigten Module einbinden. Die Module werden in diesem Repo verwaltet und in Maven Central veröffentlicht.
Dies ist eine Apache Causeway-Anwendung, die Best Practices und Konventionen verwendet. Es nutzt die schnellen Entwicklungsfunktionen von Causeway und bietet Funktionen der Enterprise-Klasse.
Es besteht aus mehreren Modulen, die einen Ausgangspunkt für die Erstellung Ihrer eigenen Anwendung bieten.
Sie können die Webapp direkt verwenden oder die Module in Ihrem eigenen Webapp-Projekt verwenden und es an Ihre Bedürfnisse anpassen. Die Standard-Webanwendung kann so konfiguriert werden, dass sie je nach Bedarf Module einschließt oder ausschließt.
Tipp | TODO: Fügen Sie hier einen Link zur Demo-Site hinzu |
Installationsvoraussetzungen:
Java 17 LTS (z. B. OpenJDK-Distribution übernehmen)
Maven 3.6 oder höher (Download)
Klonen Sie das Repository:
git clone [email protected]:savantly-net/nexus-command.git
# or
git clone https://github.com/savantly-net/nexus-command.git
cd nexus-command
Erstellen Sie mit Maven:
mvn clean install
Mit Maven ausführen:
mvn -pl webapp spring-boot:run
make build
make run-image
Laden Sie die Datei spring-instrument.jar
für das Load-Time-Weben herunter (wird weiter unten ausführlicher besprochen):
mvn dependency:get -DgroupId=org.springframework -DartifactId=spring-instrument -Dversion=XXX
Ändern Sie „XXX“ in den Wert, den ${spring-framework.version}
in der Webanwendung pom.xml
auflöst
Mit Maven ausführen:
mvn -pl webapp spring-boot:run
Die Anwendung wird unter http://localhost:8080 verfügbar sein.
Navigieren Sie zu http://localhost:8080.
Melden Sie sich an mit:
entweder der Secman-Superuser:
Benutzername: secman-admin
Passwort: pass
als Nexus Command-Administrator:
Benutzername: admin
Passwort: admin
oder als unprivilegierter Benutzer:
Benutzername: user
Passwort: user
Die App wird mit H2 im Arbeitsspeicher ausgeführt, wobei Beispieldaten mithilfe von Fixture-Skripten eingerichtet werden.
In der folgenden Tabelle werden die Inhalte der einzelnen Verzeichnisse erläutert:
Diese Version der Anwendung verwendet EclipseLink JPA als ORM, konfiguriert mit Load-Time-Weaving. Dies erfordert, dass die Anwendung mit einem Java-Agenten ausgeführt wird.
Das Spring-Boot-Plugin ist bereits für die Ausführung mit diesem Agenten konfiguriert. Wenn Sie von einer IDE ausführen möchten:
Zunächst möchten Sie möglicherweise die Datei lokal kopieren:
cp ~ /.m2/repository/org/springframework/spring-instrument/XXX/spring-instrument-XXX.jar lib/spring-instrument.jar
Ändern Sie „XXX“ in den Wert, den ${spring-framework.version}
in der Webanwendung pom.xml
auflöst
Geben Sie dann den Agenten als VM-Option an:
-javaagent:lib/spring-instrument.jar
Die Anwendung verfügt sowohl über Unit-Tests als auch über Integrationstests.
Testtyp | Bericht | Phase | Überspringen Sie die Verwendung |
---|---|---|---|
Unit-Test | | | |
Integraler Test | | | |
Diese Ausgaben können beispielsweise innerhalb einer kontinuierlichen Pipeline verarbeitet/veröffentlicht werden.
Apache Causeway unterstützt i18n mit GNU .po-Dateien. Die WEB-INF/translations.po
ist der Fallback (ein leerer Wert bedeutet, dass der Schlüssel „wie er ist“) verwendet wird, während die Dateien WEB-INF/translations-XX.po
Übersetzungen für jedes „XX“-Gebietsschema bereitstellen.
Übersetzungen sind für alle Domänenklassen und alle Mitglieder (Aktionen, Eigenschaften und Sammlungen) aller Klassen erforderlich. Diese Informationen sind im Metamodell verfügbar und daher wird als Nebeneffekt der Ausführung der Integrationstests (über einen log4j2-Logger) eine neue Vorlage translations.po
generiert. Ein guter Integrationstest ist ValidateDomainModel_IntegTest
.
Darüber hinaus sind Übersetzungen für alle vom Test ausgelösten Validierungsmeldungen erforderlich. Das Ausführen von Integrationstests, die Validierungen auslösen, führt dazu, dass diese Nachrichten als Schlüssel erfasst werden, beispielsweise Smoke_IntegTest
.
Die generierte Datei sollte mit allen vorhandenen Übersetzungen in WEB-INF/translations.po
zusammengeführt und Übersetzungen für alle neuen Schlüssel erhalten werden (es gibt zahlreiche Online-Dienste, die das Format unterstützen).
Die Anwendung demonstriert außerdem, wie Flyway zum Migrieren des Datenbankschemas verwendet wird.
Standardmäßig wird die App mit einer In-Memory-Datenbank ausgeführt. Das Flyway-Beispiel wird mit dem Spring Boot-Profil „SQLSERVER“ aktiviert, z. B.:
mvn -Dspring.profiles.active=SQLSERVER -pl webapp install
mvn -Dspring.profiles.active=SQLSERVER -pl webapp spring-boot:run
Dadurch werden die in der Datei config/application-SQLSERVER.properties
definierten Eigenschaften vorrangig gegenüber denen in der Standarddatei config/application.properties
verwendet. Es definiert Folgendes:
spring.flyway.url
, spring.flyway.user
und spring.flyway.password
Das Vorhandensein dieser reicht aus, um die Flyway-Integration zu ermöglichen
spring.flyway.enabled
Dies wird explizit auf true
gesetzt, um den Wert in der Standardeinstellung config/application.properties
zu überschreiben.
Das Spring Boot-Profil wird auch verwendet, um die Abhängigkeit zum enthaltenen POSTGRES-Servertreiber hinzuzufügen (er ist hinter einem Maven-Profil verborgen).
Die Voraussetzungen, um dies auszuprobieren, sind eine POSTGRES-Serverdatenbank, die auf localhost
ausgeführt wird und über die in config/application-POSTGRESQL.properties
angegebenen Anmeldeinformationen verfügt. nach Bedarf anpassen.
Nexus Command bietet unzählige Anwendungsfälle. Ein allgemeiner Anwendungsfall besteht jedoch darin, eine Plattform für die Verwaltung Ihrer Kerngeschäftsdaten bereitzustellen und diese in Drittsysteme zu integrieren. Indem Sie Nexus als „Quelle der Wahrheit“ für Ihre Geschäftsdaten nutzen, können Sie ganz einfach benutzerdefinierte Anwendungen und Integrationen erstellen, die speziell auf Ihre Geschäftsanforderungen zugeschnitten sind, ohne an einen bestimmten Anbieter oder eine bestimmte Plattform gebunden zu sein.
Die folgenden Funktionen sind (oder werden) in der Standard-Webanwendung enthalten:
Website-Verwaltung (Beta)
Organisationsmanagement (Beta)
Franchisenehmer-Management (Beta)
Inhaltsverwaltung (Beta)
SEO (Beta)
Mitarbeiterführung (Alpha)
Produktmanagement (geplant)
Bestandsverwaltung (geplant)
Kundenmanagement (geplant)
Vertriebsleitung (geplant)
Berichterstattung (geplant)
Analytics (geplant)
Marketing (geplant)
Werbeintegration (geplant)
Social-Media-Integration (geplant)
E-Commerce (überlegt)
Verwalten Sie Projekte und Aufgaben und verfolgen Sie den Fortschritt.
Generieren Sie Personas mit KI, um bessere User Stories und Akzeptanzkriterien zu generieren.
Persona-Generierung
Persona-Psychographie
Persona-Berufshintergrund
Als Franchise-Betreiber oder -Eigentümer kann eine differenzierte Kontrolle von Inhalten und Daten ein einheitliches Markenerlebnis an allen Standorten ermöglichen. Nexus Command ermöglicht die detaillierte Delegation von Content-Management an einen Franchisenehmer oder eine Agentur und behält gleichzeitig die Kontrolle über die Marke.
Organisationsmanager
Hierbei handelt es sich um einen Konzeptentwurf, der es ermöglicht, das Content-Management an einen Franchisenehmer oder eine Agentur zu delegieren.