Instalação / Configuração do Ambiente de Desenvolvimento

Nesta página apresentamos dois métodos alternativos para a configuração do ambiente de desenvolvimento:
  1. Utilizando um development container 
  2. Instalando todo o software manualmente (instalação manual)

1. Development Container

A maneira mais fácil de configurar um ambiente de desenvolvimento funcional é utilizar o dev container fornecido com o projecto. Esta solução requer a instalação do Docker.

Recomendamos também o uso do IDE IntelliJ IDEA (Ultimate Edition), gratuito para alunos do IST. Para instalar o IDE, basta aceder a https://www.jetbrains.com/shop/eform/students, escolher a opção “Apply with university email address”, e preencher os campos, usando o email do IST. Por fim, clicar em “Apply for free products”, e seguir as instruções, para criar conta JetBrains. Depois, aceder a https://account.jetbrains.com/licenses e fazer download do IDE. Por fim, ao iniciar o IDE, fazer login com a conta criada.

Para configurar o ambiente de desenvolvimento utilizando dev containers, os alunos podem seguir os passos descritos no seguinte vídeo.



2. Instalação Manual

Para a realização do projecto é necessário instalar:
  • Java 17
  • Maven
  • PostgreSQL >= 14
  • Node.js 16 (tem que ser esta versão!)

Comandos para instalação em Ubuntu:
sudo apt install openjdk-17-jdk postgresql postgresql-client maven wget

# Node.js:
sudo apt install --no-install-recommends libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
wget -O - https://deb.nodesource.com/setup_16.x | sudo bash - && sudo apt install -y nodejs

# Config da BD
sudo /etc/init.d/postgresql start
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
sudo -u postgres psql -c "CREATE DATABASE hedb;"

Em Mac podem usar o Homebrew:
brew install postgresql maven node@16
brew link node@16

# Config da BD
brew services start postgresql
psql -c "CREATE USER postgres PASSWORD 'postgres';"
psql -c "CREATE DATABASE hedb;"

Em Windows, é necessário WSL 2 c/ suporte GUI (Windows 11 actualizado) para correr os testes do frontend. O resto funciona com WSL 1.

Correr Testes

Podem verificar que a vossa instalação está funcional, correndo os testes:
# estas configurações podem ser colocadas no .bashrc, por exemplo
export POSTGRES_DB=hedb
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=postgres
export POSTGRES_HOST_AUTH_METHOD=trust
export PSQL_INT_TEST_DB_USERNAME=postgres
export PSQL_INT_TEST_DB_PASSWORD=postgres
export cypress_psql_db_name=hedb
export cypress_psql_db_username=postgres
export cypress_psql_db_password=postgres
export cypress_psql_db_host=localhost
export cypress_psql_db_port=5432
 
# Testes de unidade
cd backend
mvn clean -Ptest test

# Testes de integração
mvn clean verify -Ptest-int

# Limpa BD
sudo -u postgres psql -d hedb -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"

# Testes frontend
cd ../frontend
npm install

# Testes end-to-end
cd ../backend
mvn clean -Ptest-int spring-boot:run &
cd ../frontend
npm start &
# Espera que o servidor arranque
wget --tries=0 --timeout=1 --retry-connrefused -q http://localhost:8081
npx cypress run