docker run -p 8080:8080 savantly/nexus-command
Vous pouvez les définir en tant que propriétés ou variables d'environnement.
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
Consultez les propriétés de l'application pour plus d'options de configuration.
./src/main/resources/application.yml
Nexus Command est une application multi-tenant qui fournit une plate-forme pour gérer tous les types de données d'entreprise. Il est construit sur le framework Apache Causeway et fournit un point de départ pour gérer vos propres données et créer des applications/intégrations personnalisées.
Un cas d'utilisation typique consiste à fournir une plate-forme pour gérer les données d'entreprise, fournir les données sous forme de contenu et les intégrer à des systèmes tiers.
Aperçu vidéo
Vous pouvez utiliser l'application Web par défaut qui inclut tous les modules, ou vous pouvez créer votre propre application Web et inclure tous les modules dont vous avez besoin. Les modules sont conservés dans ce dépôt et publiés sur Maven Central.
Il s'agit d'une application Apache Causeway, utilisant les meilleures pratiques et conventions. Il tire parti des capacités de développement rapide de Causeway et fournit des fonctionnalités de niveau entreprise.
Il se compose de plusieurs modules qui constituent un point de départ pour créer votre propre application.
Vous pouvez utiliser la webapp directement ou utiliser les modules de votre propre projet Webapp et la personnaliser selon vos besoins. L'application Web par défaut est configurable pour inclure ou exclure des modules selon les besoins.
Conseil | À FAIRE : ajoutez un lien vers le site de démonstration ici |
installer les prérequis :
Java 17 LTS (par exemple, adopter la distribution OpenJDK)
Maven 3.6 ou version ultérieure (télécharger)
Clonez le dépôt :
git clone [email protected]:savantly-net/nexus-command.git
# or
git clone https://github.com/savantly-net/nexus-command.git
cd nexus-command
Construire avec Maven :
mvn clean install
Exécutez avec Maven :
mvn -pl webapp spring-boot:run
make build
make run-image
Téléchargez le spring-instrument.jar
pour le tissage au temps de chargement (discuté plus en détail ci-dessous) :
mvn dependency:get -DgroupId=org.springframework -DartifactId=spring-instrument -Dversion=XXX
Remplacez "XXX" par la valeur à laquelle ${spring-framework.version}
résout dans l'application Web pom.xml
Exécutez avec Maven :
mvn -pl webapp spring-boot:run
L'application sera disponible sur http://localhost:8080.
Accédez à http://localhost:8080.
Connectez-vous en utilisant :
soit le superutilisateur secman :
nom d'utilisateur : secman-admin
mot de passe : pass
en tant qu'administrateur de Nexus Command :
nom d'utilisateur : admin
mot de passe : admin
ou en tant qu'utilisateur non privilégié :
nom d'utilisateur : user
mot de passe : user
L'application fonctionne avec H2 en mémoire, avec des exemples de données configurés à l'aide de scripts de luminaires.
Le tableau suivant explique le contenu de chacun des répertoires :
Cette version de l'application utilise EclipseLink JPA comme ORM, configuré avec le tissage au temps de chargement. Cela nécessite que l'application soit exécutée avec un agent Java.
Le plugin spring-boot est déjà configuré pour s'exécuter avec cet agent. Si vous souhaitez exécuter à partir d'un IDE :
tout d'abord, vous souhaiterez peut-être copier le fichier localement :
cp ~ /.m2/repository/org/springframework/spring-instrument/XXX/spring-instrument-XXX.jar lib/spring-instrument.jar
Remplacez "XXX" par la valeur à laquelle ${spring-framework.version}
résout dans l'application Web pom.xml
Spécifiez ensuite l'agent comme option de VM :
-javaagent:lib/spring-instrument.jar
L'application propose à la fois des tests unitaires et des tests d'intégration.
Type d'essai | Rapport | Phase | Ignorer l'utilisation |
---|---|---|---|
Test unitaire | | | |
Test d'intégration | | | |
Ces sorties peuvent par exemple être traitées/publiées par un pipeline continu.
Apache Causeway prend en charge i18n à l'aide de fichiers GNU .po. Le WEB-INF/translations.po
est la solution de secours (une valeur vide signifie que la clé est utilisée "telle quelle"), tandis que les fichiers WEB-INF/translations-XX.po
fournissent des traductions pour chaque paramètre régional "XX".
Des traductions sont requises pour toutes les classes de domaine et tous les membres (actions, propriétés et collections) de toutes les classes. Ces informations sont disponibles à partir du métamodèle, et donc un nouveau modèle translations.po
est généré comme effet secondaire de l'exécution des tests d'intégration (via un enregistreur log4j2). Un bon test d'intégration à exécuter est ValidateDomainModel_IntegTest
.
De plus, des traductions sont requises pour tout message de validation déclenché par le test. L'exécution de tests d'intégration qui déclenchent des validations entraînera la capture de ces messages sous forme de clés, par exemple Smoke_IntegTest
.
Le fichier généré doit être fusionné avec toutes les traductions existantes dans WEB-INF/translations.po
et les traductions obtenues pour toute nouvelle clé (il existe de nombreux services en ligne prenant en charge ce format).
L'application montre également comment utiliser Flyway pour migrer le schéma de base de données.
Par défaut, l'application s'exécute à l'aide d'une base de données en mémoire. L'exemple Flyway est activé à l'aide du profil Spring Boot "SQLSERVER", par exemple :
mvn -Dspring.profiles.active=SQLSERVER -pl webapp install
mvn -Dspring.profiles.active=SQLSERVER -pl webapp spring-boot:run
Cela entraîne l'utilisation des propriétés définies dans le fichier config/application-SQLSERVER.properties
de préférence à celles du fichier config/application.properties
par défaut. Il définit les éléments suivants :
spring.flyway.url
, spring.flyway.user
et spring.flyway.password
Leur présence est suffisante pour permettre l'intégration de Flyway
spring.flyway.enabled
Ceci est explicitement défini sur true
, pour remplacer la valeur dans le config/application.properties
par défaut.
Le profil Spring Boot est également utilisé pour ajouter la dépendance au pilote du serveur POSTGRES qui est inclus (il est caché derrière un profil Maven).
Les conditions préalables pour essayer ceci sont une base de données de serveur POSTGRES exécutée sur localhost
et avec les informations d'identification spécifiées dans config/application-POSTGRESQL.properties
; ajuster si nécessaire.
Nexus Command a d'innombrables cas d'utilisation. Cependant, un cas d'utilisation généralisé consiste à fournir une plate-forme pour gérer vos données commerciales principales et à l'intégrer à des systèmes tiers. En utilisant Nexus comme « source de vérité » pour vos données d'entreprise, vous pouvez facilement créer des applications et des intégrations personnalisées spécifiques aux besoins de votre entreprise, sans être lié à un fournisseur ou une plate-forme spécifique.
Les fonctionnalités suivantes sont (ou seront) incluses dans la webapp par défaut :
Gestion du site Web (bêta)
Gestion de l'organisation (bêta)
Gestion des franchisés (bêta)
Gestion de contenu (bêta)
SEO (bêta)
Gestion des employés (alpha)
Gestion des produits (prévu)
Gestion des stocks (prévu)
Gestion des clients (prévu)
Gestion des ventes (prévu)
Rapports (prévus)
Analyse (prévue)
Commercialisation (prévue)
Intégration publicitaire (prévue)
Intégration des médias sociaux (prévu)
Commerce électronique (en considérant)
Gérez les projets et les tâches et suivez les progrès.
Générez des personas avec l’IA pour aider à générer de meilleurs user stories et de meilleurs critères d’acceptation.
Génération de personnalité
Psychographie personnelle
Expérience professionnelle personnelle
En tant qu'opérateur ou propriétaire de franchise, un contrôle précis du contenu et des données peut faciliter une expérience de marque cohérente sur tous les sites. Nexus Command facilite la délégation granulaire de la gestion de contenu à un franchisé ou à une agence, tout en gardant le contrôle de la marque.
Responsable de l'organisation
Il s'agit d'une preuve de concept qui permet de déléguer la gestion de contenu à un franchisé ou à une agence.