Plataforma Open Source para criação, gerenciamento, acompanhamento e divulgação de Planos de Desenvolvimento Institucional (PDI).
Website: http://www.forpdi.org/
Table of Contents
- Banco de dados MySQL 5.7
- Hibernate/JPA como framework de persistência
- VRaptor 4 como framework MVC
- Java EE 7 com JDK 1.8, CDI 1.2 (Weld 2) e JPA 2
- Servidor de aplicação: WildFly 9.0.2
- Serviços baseados em REST
- Frontend web desacoplado
- React.js
- Backbone.js
- Webpack
Para a utilização do ForPDI, são necessárias algumas ferramentas para o build e algumas para o runtime do sistema.
Você precisará de no mínimo, as seguintes ferramentas para realizar o build do sistema:
- Apache Maven 3.x
- JDK 1.8
- Node.js 6.x (apenas para rebuilds do front-end e desenvolvimento da plataforma)
- Eclipse (IDE para desenvolvimento)
Com as ferramentas acima você consegue realizar o build da plataforma e desenvolver novos códigos ou apenas gerar um .war para publicação e utilização. Instale as ferramentas listadas acima e siga os passos adiante.
O front-end do projeto está feito utilizando a ferramenta Webpack para bundling e o framework React.js utilizando a arquitetura Flux.
Para realizar build do código do front-end, instale o Node.js versão 6.x e adicione os executáveis à sua variável de ambiente PATH
.
Em seguida abra uma linha de comando e vá até a pasta backend-java/src/main/frontend/
do projeto.
Essa pasta contém todo o código do front-end. Executa o seguintes comandos para instalar as bibliotecas do Node.js necessárias:
npm -g install Webpack
npm install
Após a execução destes 2 comandos, você pode realizar um build para produção ou usar a opção de watch para desenvolvimento. Basta executar os comandos abaixo:
# Para compilar a versão de produção
npm run build
# Para realizar um watch de desenvolvimento
npm run devwatch
Após realizar o build do frontend você já pode construir o arquivo WAR para posterior publicação no servidor de produção.
O ForPDI utiliza o Apache Maven para realizar o processo de packaging da aplicação em um arquivo .war
que pode ser implantado em um servidor de aplicação que suporta Java.
Para esta etapa, considera-se que você já instalou o JDK 1.8 e configurou corretamente a variável de ambiente JAVA_HOME
. A próxima etapa é realizar o download do Maven 3.x.
Após o download do Maven, descompacte o arquivo em uma pasta. Neste passo a passo será considerado que o Maven foi descompactado na pasta /opt/maven
.
Em seguida, confkgure a variável de ambiente MAVEN_HOME
para o caminho onde você descompactou o arquivo. Também coloque na sua variável PATH
o caminho da pasta bin
do Maven (ex: /opt/maven/bin
).
Com os procedimentos de instalação prontos, você já pode realizar o build e packaging da aplicação. O arquivo backend-java/pom.xml
descreve todas as configurações do Maven para o projeto.
O ForPDI está configurado com alguns profiles iniciais, o profile de desenvolvimento (perfil padrão) já vem pronto para uso, com as configurações no arquivo backend-java/dev.properties
:
# dev.properties
war.frontenddir=development
backendUrl=http://localhost:8080/forpdi/
db.host=localhost
db.port=3306
db.name=forpdi_db
db.username=root
db.password=
mail.smtp.from.name=ForPDI
mail.smtp.from.email=noreply@forpdi.org
mail.smtp.url=localhost
mail.smtp.port=25
mail.smtp.username=
mail.smtp.password=
mail.smtp.ssl=false
mail.smtp.tls=false
Note que o perfil de desenvolvimento vem configurado com SMTP local (localhost na porta 25) e o usuário do banco de dados é o root sem senha. Caso seu ambiente de desenvolvimento tenha outras configurações você pode trocá-las nesse arquivo.
Os outros perfis disponíveis são o de teste (test
), espelho (mirror
) e produção (prd
). Os arquivos de propriedades desses ambientes não são sincronizados pelo Git, já que eles contêm informações de senhas e usuários.
Para realizar o build você terá que copiar o arquivo dev.properties
para o nome do ambiente cujo qual você quer realizar build (test.properties
, mirror.properties
e prd.properties
).
Em seguida, edite o arquivo e insira os dados de conexão do banco de dados e SMTP de seu ambiente. Por exemplo, para gerar um arquivo WAR para produção poderíamos fazer da seguinte forma:
# Copie o arquivo dev.properties e edite-o
cd backend-java
cp dev.properties prd.properties
vim prd.properties
# prd.properties
war.frontenddir=production
backendUrl=http://app.forpdi.org/
db.host=localhost
db.port=3306
db.name=forpdi_prd
db.username=forpdi
db.password=SuaSenhaDoBancoDeDados
mail.smtp.from.name=ForPDI
mail.smtp.from.email=noreply@forpdi.org
mail.smtp.url=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=seuemail@gmail.com
mail.smtp.password=SuaSenhaDoEmail
mail.smtp.ssl=false
mail.smtp.tls=true
Acima um exemplo de arquivo para produção. A propriedade war.frontenddir
define qual build do frontend deve ser copiado para a aplicação final, development
ou production
. Essa parte do build foi explicado na seção anterior.
Após configurar o arquivo podemos realizar o packaging do maven para o perfil desejado:
# Realize o build e packaging da aplicação
cd backend-java
mvn clean package -P prd
Após o packaging, o arquivo WAR estará disponível na pasta backend-java/target/forpdi.war
. Esse arquivo é sua aplicação completa, pronta para publicação no Wildfly.
Para o runtime do forpdi você vai precisar:
- Java 1.8 (JDK)
- Servidor de aplicação Java EE: Wildfly 9.0.2
- Banco de Dados MySQL 5.7+
Primeiramente, baixe e instale o JDK 1.8 para seu sistema operacional configurando corretamente a variável JAVA_HOME no seu servidor.
Em seguida faça o download do Wildfly 9.0.2 e descompacte-o em alguma pasta de seu servidor.
Neste passo a passo, será assumido que o Wildfly foi descompactado na pasta /opt/wildfly
.
Antes de publicar a aplicação no Wildfly, é necessário instalar o MySQL versão 5.7 ou superior e criar o banco de dados que irá conter as tabelas do ForPDI.
Esse banco de dados deve possuir o nome definido no arquivo prd.properties
na hora do build (propriedade db.name
). A codificação de caracteres deve ser o UTF-8.
Crie o banco de dados através do comando SQL:
/* Exemplo de criação do banco de dados "forpdi_prd" */
CREATE DATABASE forpdi_prd CHARSET=utf8;
O processo de build do arquivo WAR é coberto nas seções anteriores. Isso inclui dados de conexão com o banco de dados que devem ser passados para o sistema no momento do build. Nessa etapa a única coisa que precisa ser feita é a publicação do arquivo WAR no Wildfly. Existem várias maneiras de fazer isso e o Wildfly possui várias configurações de execução, caso você queira otimizar essas configurações consulta a documentação do Wildfly. A maneira mais simples de executar o sistema é rodas o Wildfly em modo standalone e colocar o seu arquivo WAR na pasta de deployments:
# Copie o arquivo war após o build
cp {caminho_da_pasta_backend-java}/target/forpdi.war /opt/wildfly/standalone/deployments/
# Execute o Wildfly em modo standalone como root
cd /opt/wildfly
/opt/wildfly/bin/standalone.sh &
# Você precisa sair do terminal com o comando exit para não encerrar o processo:
exit
Por padrão o sistema estará disponível em: http://seuservidor.com/forpdi/
.
O primeiro acesso deve ser feito utilizando o usuário administrador de sistema:
E-mail: admin@forpdi.org
Senha: 12345
Para um guia mais detalhado da configuração inicial, acesse o vídeo de instrução dos primeiros passos no ForPDI, que explica as configurações e recursos mínimos para iniciar a utilização do ForPDI.
O ForPDI é disponibilizado sob a licença Apache License 2.0.