Skip to content
This repository has been archived by the owner on Sep 27, 2024. It is now read-only.

SELab-2/UGent-2

Repository files navigation

UGent-2

De mockup van ons project kan hier gevonden worden.

Project setup

  1. Clone de repository naar je lokale machine met het volgende commando:
    git clone https://github.com/SELab-2/UGent-2

Backend

De backend gebruikt Python 3.12 en Poetry. Volg deze stappen om de backend van het project op te zetten:

  1. Navigeer naar de backend map:

    cd UGent-2/backend
  2. Installeer Poetry

  3. 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
  4. 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
  5. 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.

  6. 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.

  7. Als je de dockertests wil kunnen uitvoeren, moet je ook Docker installeren en de service aanzetten.

  8. 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.

  9. 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.

  10. De testen kunnen uitgevoerd worden met het volgende commando:

    python -m unittest discover tests

Frontend

Volg deze stappen om de frontend van het project op te zetten:

  1. Navigeer naar de frontend map:

    cd UGent-2/frontend
  2. 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
  3. Installeer alle npm dependencies

    npm install
  4. Build de frontend:

    npm run build

    De gecompileerde html/css/js bevindt zich nu in de dist folder.

  5. 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 in server/nginx.conf Je kan ook de developmentserver starten met:

    npm run dev
  6. 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