docker run -p 8080:8080 savantly/nexus-command
Puede configurarlos como propiedades o variables de entorno.
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
Consulte las propiedades de la aplicación para obtener más opciones de configuración.
./src/main/resources/application.yml
Nexus Command es una aplicación multiinquilino que proporciona una plataforma para administrar todo tipo de datos comerciales. Está construido sobre el marco Apache Causeway y proporciona un punto de partida para administrar sus propios datos y crear aplicaciones/integraciones personalizadas.
Un caso de uso típico es proporcionar una plataforma para gestionar datos comerciales, proporcionar los datos como contenido e integrarlos con sistemas de terceros.
Vista previa de vídeo
Puede utilizar la aplicación web predeterminada que incluye todos los módulos, o puede crear su propia aplicación web e incluir los módulos que necesite. Los módulos se mantienen en este repositorio y se publican en Maven Central.
Esta es una aplicación de Apache Causeway que utiliza las mejores prácticas y convenciones. Aprovecha las capacidades de rápido desarrollo de Causeway y proporciona funciones de nivel empresarial.
Consta de varios módulos que proporcionan un punto de partida para crear su propia aplicación.
Puede utilizar la aplicación web directamente o puede utilizar los módulos de su propio proyecto de aplicación web y personalizarlo según sus necesidades. La aplicación web predeterminada se puede configurar para incluir o excluir módulos según sea necesario.
Consejo | TODO: agregue un enlace al sitio de demostración aquí |
requisitos previos de instalación:
Java 17 LTS (por ejemplo, adoptar la distribución OpenJDK)
Maven 3.6 o posterior (descargar)
Clonar el repositorio:
git clone [email protected]:savantly-net/nexus-command.git
# or
git clone https://github.com/savantly-net/nexus-command.git
cd nexus-command
Construir usando Maven:
mvn clean install
Ejecutar usando Maven:
mvn -pl webapp spring-boot:run
make build
make run-image
Descargue spring-instrument.jar
para tejer en tiempo de carga (que se analiza con más detalle a continuación):
mvn dependency:get -DgroupId=org.springframework -DartifactId=spring-instrument -Dversion=XXX
Cambie "XXX" al valor que ${spring-framework.version}
resuelve en la aplicación web pom.xml
Ejecutar usando Maven:
mvn -pl webapp spring-boot:run
La aplicación estará disponible en http://localhost:8080.
Vaya a http://localhost:8080.
Inicie sesión usando:
ya sea el superusuario secman:
nombre de usuario: secman-admin
contraseña: pass
como administrador de Nexus Command:
nombre de usuario: admin
contraseña: admin
o como usuario sin privilegios:
nombre de usuario: user
contraseña: user
La aplicación se ejecuta con H2 ejecutándose en memoria, con datos de muestra configurados mediante scripts de dispositivos.
La siguiente tabla explica el contenido de cada uno de los directorios:
Esta versión de la aplicación utiliza EclipseLink JPA como ORM, configurado con tejido en tiempo de carga. Esto requiere que la aplicación se ejecute con un agente Java.
El complemento Spring-boot ya está configurado para ejecutarse con este agente. Si desea ejecutar desde un IDE:
Primero, es posible que desees copiar el archivo localmente:
cp ~ /.m2/repository/org/springframework/spring-instrument/XXX/spring-instrument-XXX.jar lib/spring-instrument.jar
Cambie "XXX" al valor que ${spring-framework.version}
resuelve en la aplicación web pom.xml
Luego especifique el agente como una opción de VM:
-javaagent:lib/spring-instrument.jar
La aplicación cuenta tanto con pruebas unitarias como con pruebas de integración.
Tipo de prueba | Informe | Fase | Saltar usando |
---|---|---|---|
prueba unitaria | | | |
prueba integral | | | |
Estos resultados pueden, por ejemplo, procesarse o publicarse mediante un proceso continuo.
Apache Causeway admite i18n utilizando archivos GNU .po. WEB-INF/translations.po
es el recurso alternativo (un valor vacío significa que la clave se usa "tal cual"), mientras que los archivos WEB-INF/translations-XX.po
proporcionan traducciones para cada configuración regional "XX".
Se requieren traducciones para todas las clases de dominio y todos los miembros (acciones, propiedades y colecciones) de todas las clases. Esta información está disponible en el metamodelo, por lo que se genera una nueva plantilla translations.po
como efecto secundario de ejecutar las pruebas de integración (a través de un registrador log4j2). Una buena prueba de integración para ejecutar es ValidateDomainModel_IntegTest
.
Además, se requieren traducciones para cualquier mensaje de validación activado por la prueba. La ejecución de pruebas de integración que activan validaciones dará como resultado que estos mensajes se capturen como claves, por ejemplo Smoke_IntegTest
.
El archivo generado debe fusionarse con cualquier traducción existente en WEB-INF/translations.po
y obtener traducciones para cualquier clave nueva (existen numerosos servicios en línea que admiten el formato).
La aplicación también demuestra cómo utilizar Flyway para migrar el esquema de la base de datos.
De forma predeterminada, la aplicación se ejecuta utilizando una base de datos en memoria. El ejemplo de Flyway se activa utilizando el perfil Spring Boot "SQLSERVER", por ejemplo:
mvn -Dspring.profiles.active=SQLSERVER -pl webapp install
mvn -Dspring.profiles.active=SQLSERVER -pl webapp spring-boot:run
Esto hace que las propiedades definidas en el archivo config/application-SQLSERVER.properties
se utilicen con preferencia a las del archivo config/application.properties
predeterminado. Define lo siguiente:
spring.flyway.url
, spring.flyway.user
y spring.flyway.password
La presencia de estos es suficiente para permitir la integración de Flyway.
spring.flyway.enabled
Esto se establece explícitamente en true
para anular el valor en config/application.properties
predeterminado.
El perfil Spring Boot también se utiliza para agregar la dependencia al controlador del servidor POSTGRES incluido (está oculto detrás de un perfil Maven).
Los requisitos previos para probar esto son una base de datos del servidor POSTGRES ejecutándose en localhost
y con las credenciales especificadas en config/application-POSTGRESQL.properties
; ajustar según sea necesario.
Nexus Command tiene innumerables casos de uso. Sin embargo, un caso de uso generalizado es proporcionar una plataforma para administrar los datos comerciales principales e integrarla con sistemas de terceros. Al utilizar Nexus como "fuente de verdad" para los datos de su negocio, puede crear fácilmente aplicaciones e integraciones personalizadas que sean específicas para las necesidades de su negocio, sin estar vinculado a un proveedor o plataforma específica.
Las siguientes características están (o estarán) incluidas en la aplicación web predeterminada:
Gestión de sitios web (beta)
Gestión de organizaciones (beta)
Gestión de franquiciados (beta)
Gestión de contenidos (beta)
SEO (beta)
Gestión de empleados (alfa)
Gestión de productos (planificada)
Gestión de inventario (planificada)
Gestión de clientes (planificada)
Gestión de ventas (planificada)
Informes (planificados)
Análisis (planificado)
Comercialización (planificada)
Integración publicitaria (planificada)
Integración de redes sociales (planificada)
Comercio electrónico (considerando)
Administre proyectos y tareas, y realice un seguimiento del progreso.
Genere personas con IA para ayudar a generar mejores historias de usuario y criterios de aceptación.
Generación de personas
Psicografía de personas
Antecedentes profesionales de la persona
Como operador o propietario de una franquicia, un control detallado del contenido y los datos puede facilitar una experiencia de marca consistente en todas las ubicaciones. Nexus Command facilita la delegación de gestión granular de contenidos a un franquiciado o agencia, manteniendo al mismo tiempo el control de la marca.
Gerente de organización
Se trata de un concepto que permite delegar la gestión de contenidos a un franquiciado o agencia.