De app is een dashboard/webapplicatie om inzicht te verkrijgen in de data uit de BRO. Dit is een handleiding om de code lokaal werkend te krijgen op Windows en Linux
- Python 3.12.2
- Docker of MongoDb (min 4.2.12) + eventueel mongoDb compass
- Node.js 20.12.0
- Maak een virtual environment aan voor het project met
python3 -m venv PAD - Gebruik de virtual environment, dit kan op twee manieren:
- Doe in Visual Studio Code: ctrl+ shift + P, 'Select Interpreter' en kies de venv waarbij het pad overeenkomt met deze repository.
- Indien dit niet werkt, activeer de virtual environment via een commando:
- Windows:
.\PAD\scripts\activate.bat. - Linux:
source PAD/bin/activate
- Windows:
- Verifieer dat je de goede interpreter gebruikt met
python -c "import sys; print(sys.prefix)", deze hoort de map ./PAD aan te geven.
- Kopieër
.env.examplenaar.enven pas de variabeleabsolutePathToRepositoryaan in.env.
- Zet het PYTHONPATH voor Python in de virtual environment goed:
- in Linux met
export PYTHONPATH=$PYTHONPATH:/<repository_parent_path>/BROMonitor/app - in Windows met
set PYTHONPATH=<repository_parent_path>/BROMonitor/app
- in Linux met
- Installeer de benodigde python packages met
pip install -r ./app/backend/requirements.txt -r ./app/etl/requirements.txt -r ./app/bromonitorgenerator/requirements.txt - Matplotlib kan lokaal in een windows omgeving niet gebouwd worden, installeer het los met
python -m pip install -U pippython -m pip install -U matplotlib
- Installeer de benodigde npm packages met
npm install --forcein/app/frontendfolder. TODO: geeft momenteel errors, werkt alleen metnpm install --force.
- Indien je Docker gebruikt: ga naar /db en start de database middels
docker compose up -d. De database is nu beschikbaar oplocalhost:27017. Mongo express, een web-based viewer, is beschikbaar oplocalhost:8081. - Indien je geen Docker gebruikt: ga naar de
.envfile en pas het pad naar de database aan zoals gewenst
- Download de data vanuit Pdok. Run vanuit
app/etl:python extract/main.py - Importeer de data in MongoDb. Run vanuit
app/etl:python load/mongodb/main.py - Start de backend. Run vanuit
app/backend:uvicorn main:app - Creëer statische assets voor de front-end. Run vanuit
app/bromonitorgenerator:python main.py.
- Start de backend met
uvicorn main:appin de/app/backendfolder - Start de frontend met
npm run startin de/app/frontendfolder - De site is nu te bezoeken op
http://localhost:8080