docker run -p 8080:8080 savantly/nexus-command
Você pode defini-los como propriedades ou variáveis de ambiente.
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 as propriedades do aplicativo para obter mais opções de configuração.
./src/main/resources/application.yml
Nexus Command é um aplicativo multilocatário que fornece uma plataforma para gerenciar todos os tipos de dados de negócios. Ele foi desenvolvido com base na estrutura Apache Causeway e fornece um ponto de partida para gerenciar seus próprios dados e criar aplicativos/integrações personalizados.
Um caso de uso típico é fornecer uma plataforma para gerenciar dados de negócios, fornecendo os dados como conteúdo e integrando-os com sistemas de terceiros.
Pré-visualização do vídeo
Você pode usar o webapp padrão que inclui todos os módulos, ou pode criar seu próprio webapp e incluir todos os módulos necessários. Os módulos são mantidos neste repositório e publicados no Maven Central.
Este é um aplicativo Apache Causeway, usando práticas recomendadas e convenções. Ele aproveita os recursos de rápido desenvolvimento do Causeway e fornece recursos de nível empresarial.
Consiste em vários módulos que fornecem um ponto de partida para construir sua própria aplicação.
Você pode usar o webapp diretamente ou pode usar os módulos em seu próprio projeto de webapp e personalizá-lo de acordo com suas necessidades. O webapp padrão é configurável para incluir ou excluir módulos conforme necessário.
Dica | TODO: adicione um link para o site de demonstração aqui |
pré-requisitos de instalação:
Java 17 LTS (por exemplo, adotar distribuição OpenJDK)
Maven 3.6 ou posterior (baixar)
Clone o repositório:
git clone [email protected]:savantly-net/nexus-command.git
# or
git clone https://github.com/savantly-net/nexus-command.git
cd nexus-command
Construa usando Maven:
mvn clean install
Execute usando Maven:
mvn -pl webapp spring-boot:run
make build
make run-image
Baixe o spring-instrument.jar
para tecelagem em tempo de carregamento (discutido com mais detalhes abaixo):
mvn dependency:get -DgroupId=org.springframework -DartifactId=spring-instrument -Dversion=XXX
Altere "XXX" para o valor que ${spring-framework.version}
resolve no webapp pom.xml
Execute usando Maven:
mvn -pl webapp spring-boot:run
O aplicativo estará disponível em http://localhost:8080.
Navegue até http://localhost:8080.
Faça login usando:
ou o superusuário secman:
nome de usuário: secman-admin
senha: pass
como administrador do Comando Nexus:
nome de usuário: admin
senha: admin
ou como um usuário sem privilégios:
nome de usuário: user
senha: user
O aplicativo é executado com H2 em execução na memória, com dados de amostra configurados usando scripts de fixture.
A tabela a seguir explica o conteúdo de cada um dos diretórios:
Esta versão do aplicativo usa EclipseLink JPA como seu ORM, configurado com tecelagem de tempo de carregamento. Isso requer que o aplicativo seja executado com um agente Java.
O plugin spring-boot já está configurado para ser executado com este agente. Se você deseja executar a partir de um IDE:
primeiro, você pode querer copiar o arquivo localmente:
cp ~ /.m2/repository/org/springframework/spring-instrument/XXX/spring-instrument-XXX.jar lib/spring-instrument.jar
Altere "XXX" para o valor que ${spring-framework.version}
resolve no webapp pom.xml
Em seguida, especifique o agente como uma opção de VM:
-javaagent:lib/spring-instrument.jar
O aplicativo possui testes unitários e testes de integração.
Tipo de teste | Relatório | Fase | Pular usando |
---|---|---|---|
Teste de unidade | | | |
Teste inteiro | | | |
Essas saídas podem, por exemplo, ser processadas/publicadas por um pipeline contínuo.
Apache Causeway suporta i18n usando arquivos GNU .po. O WEB-INF/translations.po
é o substituto (um valor vazio significa que a chave é usada "como está"), enquanto os arquivos WEB-INF/translations-XX.po
fornecem traduções para cada localidade "XX".
As traduções são necessárias para todas as classes de domínio e todos os membros (ações, propriedades e coleções) de todas as classes. Essas informações estão disponíveis no metamodelo e, portanto, um novo modelo translations.po
é gerado como efeito colateral da execução dos testes de integração (por meio de um registrador log4j2). Um bom teste de integração para executar é ValidateDomainModel_IntegTest
.
Além disso, são necessárias traduções para quaisquer mensagens de validação acionadas pelo teste. A execução de testes de integração que acionam validações resultará na captura dessas mensagens como chaves, por exemplo Smoke_IntegTest
.
O arquivo gerado deve ser mesclado com quaisquer traduções existentes em WEB-INF/translations.po
e com as traduções obtidas para quaisquer novas chaves (existem vários serviços online que suportam o formato).
O aplicativo também demonstra como usar o Flyway para migrar o esquema do banco de dados.
Por padrão, o aplicativo é executado usando um banco de dados na memória. O exemplo Flyway é ativado usando o perfil Spring Boot "SQLSERVER", por exemplo:
mvn -Dspring.profiles.active=SQLSERVER -pl webapp install
mvn -Dspring.profiles.active=SQLSERVER -pl webapp spring-boot:run
Isso faz com que as propriedades definidas no arquivo config/application-SQLSERVER.properties
sejam usadas em preferência àquelas no arquivo config/application.properties
padrão. Ele define o seguinte:
spring.flyway.url
, spring.flyway.user
e spring.flyway.password
A presença destes é suficiente para permitir a integração do Flyway
spring.flyway.enabled
Isso é explicitamente definido como true
, para substituir o valor no config/application.properties
padrão.
O perfil Spring Boot também é usado para adicionar a dependência ao driver do servidor POSTGRES incluído (está oculto atrás de um perfil Maven).
Os pré-requisitos para testar isso são um banco de dados do servidor POSTGRES em execução no localhost
e com as credenciais especificadas em config/application-POSTGRESQL.properties
; ajuste conforme necessário.
O Nexus Command tem inúmeros casos de uso. Embora um caso de uso generalizado seja fornecer uma plataforma para gerenciar os dados principais do seu negócio e integrá-la com sistemas de terceiros. Ao usar o Nexus como a "fonte da verdade" para seus dados de negócios, você pode criar facilmente aplicativos personalizados e integrações específicas para suas necessidades de negócios, sem estar vinculado a um fornecedor ou plataforma específica.
Os seguintes recursos estão (ou serão) incluídos no webapp padrão:
Gerenciamento de site (beta)
Gerenciamento da organização (beta)
Gestão de franqueados (beta)
Gerenciamento de conteúdo (beta)
SEO (beta)
Gestão de funcionários (alfa)
Gerenciamento de produto (planejado)
Gerenciamento de estoque (planejado)
Gestão de clientes (planejado)
Gestão de vendas (planejada)
Relatórios (planejados)
Análise (planejada)
Marketing (planejado)
Integração de publicidade (planejada)
Integração de mídia social (planejada)
Comércio eletrônico (considerando)
Gerencie projetos e tarefas e acompanhe o progresso.
Gere personas com IA para ajudar a gerar melhores histórias de usuários e critérios de aceitação.
Geração de Personagem
Psicografia da Persona
Experiência Profissional Persona
Como operador ou proprietário de franquia, o controle refinado de conteúdo e dados pode facilitar uma experiência de marca consistente em todos os locais. O Nexus Command facilita a delegação granular de gerenciamento de conteúdo a um franqueado ou agência, ao mesmo tempo que mantém o controle da marca.
Gerente da Organização
Este é um projeto de conceito que permite delegar a gestão de conteúdo a um franqueado ou agência.