Esse projeto foi desenvolvido pelos alunos do 3 AII do curso técnico em Informática para a Internet do Instituto Federal de Educação, Ciência e Tecnologia Baiano para o Projeto de Conclusão de Curso
✅ Para executar a aplicação seŕa necessário possuir o runtime Node.js Instalado em sua máquina.
Em Sistemas windows recomendamos realizar o processo por meio da ferramenta chocolatey. Confira a documentação oficial para a realização do processo:
https://chocolatey.org/install
Após a instalação, o node pode ser obtido em seu windows com o seguinte comando:
choco install nodejs.install
Em sistema Linux é possível baixa-lo por meio do gerenciador de pacotes da sua distribuição, poŕem estará desatualizado. O método recomendado é atraves da instalação do Nvm ( Node version manager), que será abordado a seguir.
Para instalar o nvm use um dos seguintes comandos abaixo:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Reinicie o terminal para as mudanças entrarem em vigor.
Execute um comando de teste:
nvm -v
Se receber o output com número de versão, tudo ocorreu corretamente. Em caso de algum problema visite o repositório oficial da ferramenta:
https://github.com/nvm-sh/nvm#installing-and-updating
Com o nvm instalado basta um comando para instalar o Node.js. ( a flag --lts baixa a ultima versão estável, o que recomendamos).
nvm install --lts
Após o processo, reinicie o terminal e você deve conseguir um output de versão para o node ao digitar:
node -v
Se tudo ocorreu bem, você já possui o Node.js instalado e pronto para usar.
Com o Node instalado, é possivel usar seu gerenciador de dependencias, o npm, para instalar as dependencias do projeto.
Vá para a pasta frontend e digite no terminal:
npm install
Aguarde todas as dependencias serem instaladas.
✅ Depois disso, resta apenas configurar as variaveis de ambiente utilizadas no projeto, crie um arquivo .env na pasta frontend e adicione as seguintes linhas de código:
REACT_APP_API_URL=http://localhost:8080
REACT_APP_LOCAL_API_URL=http://localhost:8080
Isso permitirá a conexão com a API do projeto, cujo setup está descrito abaixo.
Agora o projeto está pronto para rodar. Na pasta frontend digite:
npm start
✅ Pronto, o frontend está funcionando. Agora vamos aprender como configurar o backend para que ele tenha de onde consumir dados.
✅ Você precisa ter o Java Development Kit (Versão 11 LTS) instalada em seu computador para conseguir compilar a aplicação. Recomendamos o JDK da Azul, que você pode encontrar aqui: https://www.azul.com/downloads/?package=jdk
✅ Você precisa ter instalado e configurado em sua máquina um banco de dados Postgres para a correta inicialização do sistema.
- Você tem duas formas de realizar tal instalação:
- Por meio da instalação do Postgres de forma normal em sua máquina, por meio do link (note que é recomendável que o usuário do postgres chame-se: 'postgres'): https://www.postgresql.org/download/
- (Recomendada) Por meio da instalação do Container Postgres em seu Docker, utilizando o comando
docker run --name postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres
✅ Para agilizar o processo de configuração e execução da aplicação, recomendamos o uso de uma IDEA. Nós utilizamos o Intellij e Spring Tools Suite para tal. Entretanto, esse tutorial somente abordará a segunda opção. Para execuar a IDEA, descompacte a pasta e abra o arquivo executável.
- Links para download da ferramenta:
- Spring Tools Suite (Windows): https://drive.google.com/file/d/17KTwxMWAMEgTNqNbhY76ETkMDyOUtnS4/view?usp=sharing
- Spring Tools Suite (Linux): https://drive.google.com/file/d/1MFEC6fjdgsBX0qUyM8Da_uVDWyPVU9_r/view?usp=sharing
Com todas as dependências instaladas em sua máquina, clone este repositório e realize o seguinte passo a passo no Spring Tools Suite:
- Vá no canto superior direito em file > import.
- Selecione a opção Existing Maven Projects, e prossiga.
- Clique em Browse e procure a pasta BACKEND do projeto.
- Clique em Finish e espere o STS carregar o projeto e ler as pastas e arquivos.
Com o projeto já importado, siga estes passos:
- Clique com o botão direito encima do nome 'trailsProject'
- Vá na opção 'Run As' e clique em '8 Maven install'
- (Opcional) caso apareça algum aviso sobre o console, clique em Remind me later
- Espere o Maven baixar as dependências.
- Após isso, ele tentará rodar o projeto, mas ocasionará um erro pois as variáveis de ambiente ainda não estão configuradas.
- Vá novamente na opção 'Run As' e clique em 'Run as SpringBootApplication' para ele gerar o perfil de execução do projeto no STS.
- Após o projeto tentar rodar e dar erro, vá em 'Run As' e na opção 'Run Configurations'
- Em Spring Boot App, procure a opção traisProject - TrailsProject e vá na aba 'Environment'.
- Aqui você deverá adicionar as seguintes variáveis de ambiente na opção 'Add' (Uma variável por vez).
Nome | Valor |
---|---|
DATABASEUSER | {Usário do banco de dados Postgres, caso não informado, será por padrão 'postgres'} |
DATABASEPASS | {Senha do banco de dados postgres} |
EMAIl_AUTH_USERNAME | {Endereço de e-mail do g-mail para o envio de mensagens} |
EMAIL_AUTH_PASSWORD | {Senha de app gerada no g-mail para o acesso do projeto ao e-mail} |
SYSTEM_PROFILE | dev |
- Clique em 'Apply'.
Após a realização de todos os passos, a inicialização do projeto é bem simples.
- Inicie o banco de dados Postgres para o projeto realizar a conexão.
- Clique com o botão direito em 'trailsProject' no STS.
- Vá na opção 'Run As' e clique em 'Run as SpringBootApplication'
- Observe no console. Assim que a mensagem 'Started TrailsProjectApplication in X.XXX seconds (JVM running for X.XXX)', aparecer, o projeto estará completamente inicializado e pronto para receber requisições.
- Popule o banco de dados por meio do .sql na pasta /docs do repositório. Ele funcionará corretamente após a execução de todos os passos e te permitirá utilizar a carga de teste. Esse script foi testado com o pgAdmin e o DBeaver. Vá em Query Tool ou "Editor de SQL" de sua ferramenta e cole exatamente o .sql de população do banco.
Note que as requisições devem ser direcionadas para a porta 8080 da sua máquina.
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Please, if you are going to create another project with the same images and artwork, give credit to the authors:
SVG illustrations by Storyset
Blobs SVG made by Blobmaker
Feito com ❤️ por Edmarcos, Emanuel e Giulian