De mockup van ons project kan hier gevonden worden.
- Clone de repository naar je lokale machine met het volgende commando:
git clone https://github.com/SELab-2/UGent-2
De backend gebruikt Python 3.12 en Poetry. Volg deze stappen om de backend van het project op te zetten:
-
Navigeer naar de backend map:
cd UGent-2/backend
-
Installeer Poetry
-
Installeer de benodigde Python packages met behulp van Poetry en voer de rest van de stappen uit in die virtual environment:
poetry install poetry shell
-
Installeer PostgreSQL:
Ubuntu
sudo apt-get install postgresql postgresql-contrib sudo service postgresql start
Fedora
sudo dnf install postgresql postgresql-server sudo postgresql-setup --initdb --unit postgresql sudo systemctl enable --now postgresql
Arch
sudo pacman -S postgresql sudo su - postgres -c "initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'" sudo systemctl start postgresql.service sudo systemctl enable postgresql.service
-
Maak een nieuwe database genaamd
delphi
en stel het standaardwachtwoord in:sudo -u postgres psql -c "CREATE DATABASE delphi;" sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Het is ook mogelijk om zelf de connectieparameters in te stellen met de environment variabelen DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD en DB_DATABASE.
-
Voer het
fill_database_mock.py
script uit als een module om de database te vullen met mock data:python fill_database_mock.py
Je kan ook een lege databank initialiseren met het
create_database_tables.py
script als volgt:python create_database_tables.py
Opgelet: beide scripts zullen de huidige databankinhoud verwijderen indien die bestaat en daarna de tabellen opnieuw aanmaken.
-
Als je de dockertests wil kunnen uitvoeren, moet je ook Docker installeren en de service aanzetten.
-
Start de API door het
app.py
script uit te voeren:python app.py
Als je het project lokaal uitvoert, is het aangeraden om de DELPHI_DEBUG environment variable in te stellen.
-
Om meer Info te krijgen over de mogelijke requests die je kan maken naar de API, kan je de swagger documentatie raadplegen op de
/api/docs
route. -
De testen kunnen uitgevoerd worden met het volgende commando:
python -m unittest discover tests
Volg deze stappen om de frontend van het project op te zetten:
-
Navigeer naar de frontend map:
cd UGent-2/frontend
-
Installeer Node:
Ubuntu
sudo apt update sudo apt install ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=20 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list sudo apt update sudo apt install nodejs
Fedora
sudo dnf install nodejs
Arch
sudo pacman -S nodejs-lts-iron
-
Installeer alle npm dependencies
npm install
-
Build de frontend:
npm run build
De gecompileerde html/css/js bevindt zich nu in de
dist
folder. -
Deploy: Zet de inhoud van de
dist
folder op de juiste plaats, zodat het geserveerd kan worden. Je kan nginx gebruiken als webserver, de configuratie hiervoor vind je inserver/nginx.conf
Je kan ook de developmentserver starten met:npm run dev
-
De testen kunnen uitgevoerd worden met:
npm run tests
Dit draait zowel de unit als de e2e testen. De e2e testen kun je ook debuggen met een UI in je browser via:
npm run test:e2e:ui