Instalação Software
Para a realização do projecto é necessário instalar:- JDK >= 11
- Maven
- PostgreSQL >= 10
- Node.js 16 (tem que ser esta versão!)
Comandos para instalação em Ubuntu:
sudo apt install openjdk-11-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 tutordb;"
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 tutordb;"
Em Windows, é necessário WSL 2 c/ suporte GUI (Windows 11 actualizado) para correr os testes do frontend. O resto funciona com WSL 1.
Em alternativa a instalar o software acima, podem usar a imagem de Docker que é usada pelo CI: registry.rnl.tecnico.ulisboa.pt/es/quizzes-tutor.
Aconselha-se ainda a instalação de um IDE, tal com o IntelliJ, Eclipse, VSCode, ou outro. (Nota: O IDE IntelliJ é particularmente bom para desenvolvimento Java e podem obter uma licença educacional para a versão Ultimate. Mais detalhes em https://www.jetbrains.com/community/education/#students).
Repositório código
O projecto será desenvolvido no GitLab da RNL. Para se registarem, basta fazer login via fénix: https://gitlab.rnl.tecnico.ulisboa.ptO código do vosso grupo está disponível em https://gitlab.rnl.tecnico.ulisboa.pt/es/es23-XX (onde XX é o número do grupo). Se ainda não tinham criado conta no GitLab, pode demorar alguns dias até terem permissões de acesso ao vosso projecto.
NB: devem configurar o cliente de git com o vosso nome e email. Se usarem o git na consola, devem correr estes comandos:
git config --global user.name "Nome Apelido" git config --global user.email "o.vosso.email@tecnico.ulisboa.pt"O --global altera a configuração para todos os repositórios. Alternativamente, podem correr o comando só no directório do projecto sem --global.
Correr testes
Devem verificar que a vossa instalação está funcional, correndo os testes:# estas configurações podem ser colocadas no .bashrc, por exemplo export POSTGRES_DB=tutordb 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=tutordb 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 tutordb -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;" # Testes frontend cd ../frontend npm install npm run test:unit # 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
Using the Docker container for development
To use the available Docker container for development, see the attached tutorial.